diff options
Diffstat (limited to 'tests/auto/qquickstyle/tst_qquickstyle.cpp')
-rw-r--r-- | tests/auto/qquickstyle/tst_qquickstyle.cpp | 83 |
1 files changed, 62 insertions, 21 deletions
diff --git a/tests/auto/qquickstyle/tst_qquickstyle.cpp b/tests/auto/qquickstyle/tst_qquickstyle.cpp index 8b2358f8..8d09a293 100644 --- a/tests/auto/qquickstyle/tst_qquickstyle.cpp +++ b/tests/auto/qquickstyle/tst_qquickstyle.cpp @@ -55,6 +55,8 @@ private slots: void commandLineArgument(); void environmentVariables(); void availableStyles(); + void qrcStylePaths_data(); + void qrcStylePaths(); void qrcInQtQuickControlsStylePathEnvVar_data(); void qrcInQtQuickControlsStylePathEnvVar(); @@ -154,8 +156,8 @@ void tst_QQuickStyle::availableStyles() { QString path = QFINDTESTDATA("data"); QVERIFY(!path.isEmpty()); - qputenv("QT_QUICK_CONTROLS_STYLE_PATH", path.toLocal8Bit()); + QQuickStyle::addStylePath(path); QStringList paths = QQuickStylePrivate::stylePaths(); QVERIFY(paths.contains(path)); @@ -170,6 +172,43 @@ void tst_QQuickStyle::availableStyles() } } +void tst_QQuickStyle::qrcStylePaths_data() +{ + QTest::addColumn<QString>("stylePath"); + QTest::addColumn<QString>("expectedStyleName"); + + QTest::addRow("qrc:/qrcStyles1") << QString::fromLatin1("qrc:/qrcStyles1") << QString::fromLatin1("QrcStyle1"); + QTest::addRow(":/qrcStyles2") << QString::fromLatin1(":/qrcStyles2") << QString::fromLatin1("QrcStyle2"); +} + +void tst_QQuickStyle::qrcStylePaths() +{ + QFETCH(QString, stylePath); + QFETCH(QString, expectedStyleName); + + QQuickStyle::addStylePath(stylePath); + + const QStringList paths = QQuickStylePrivate::stylePaths(); + QString expectedStylePath = stylePath; + if (expectedStylePath.startsWith(QLatin1String("qrc"))) + expectedStylePath.remove(0, 3); + if (!paths.contains(expectedStylePath)) { + QString message; + QDebug stream(&message); + stream.nospace() << "QQuickStylePrivate::stylePaths() doesn't contain " << expectedStylePath << ":\n" << paths; + QFAIL(qPrintable(message)); + } + + const QStringList styles = QQuickStyle::availableStyles(); + QVERIFY(!styles.isEmpty()); + if (!styles.contains(expectedStyleName)) { + QString message; + QDebug stream(&message); + stream.nospace() << "QQuickStyle::availableStyles() doesn't contain " << expectedStyleName << ":\n" << styles; + QFAIL(qPrintable(message)); + } +} + void tst_QQuickStyle::qrcInQtQuickControlsStylePathEnvVar_data() { QTest::addColumn<QString>("environmentVariable"); @@ -181,13 +220,15 @@ void tst_QQuickStyle::qrcInQtQuickControlsStylePathEnvVar_data() { QString environmentVariable; QDebug stream(&environmentVariable); + // We use qrcStyles3 and qrcStyles4 in order to not conflict with + // qrcStylePaths(), since we currently have no way of clearing customStylePaths. stream.noquote().nospace() << "/some/bogus/path/" << listSeparator - << ":/qrcStyles1"; + << ":/qrcStyles3"; QStringList expectedAvailableStyles = defaultAvailableStyles; - // We need to move the Default style to the start of the list, + // We need to keep the Default style at the start of the list, // as that's what availableStyles() does. - expectedAvailableStyles.insert(1, QLatin1String("QrcStyle1")); + expectedAvailableStyles.insert(1, QLatin1String("QrcStyle3")); QTest::addRow("%s", qPrintable(environmentVariable)) << environmentVariable << expectedAvailableStyles; @@ -196,11 +237,11 @@ void tst_QQuickStyle::qrcInQtQuickControlsStylePathEnvVar_data() { QString environmentVariable; QDebug stream(&environmentVariable); - stream.noquote().nospace() << ":/qrcStyles2" << listSeparator + stream.noquote().nospace() << ":/qrcStyles4" << listSeparator << "/some/bogus/path"; QStringList expectedAvailableStyles = defaultAvailableStyles; - expectedAvailableStyles.insert(1, QLatin1String("QrcStyle2")); + expectedAvailableStyles.insert(1, QLatin1String("QrcStyle4")); QTest::addRow("%s", qPrintable(environmentVariable)) << environmentVariable << expectedAvailableStyles; @@ -209,14 +250,14 @@ void tst_QQuickStyle::qrcInQtQuickControlsStylePathEnvVar_data() { QString environmentVariable; QDebug stream(&environmentVariable); - stream.noquote().nospace() << ":/qrcStyles1" << listSeparator - << ":/qrcStyles2" << listSeparator - << QFINDTESTDATA("data"); + stream.noquote().nospace() << ":/qrcStyles3" << listSeparator + << ":/qrcStyles4" << listSeparator + << QFINDTESTDATA("data/dummyStyles"); QStringList expectedAvailableStyles = defaultAvailableStyles; expectedAvailableStyles.insert(1, QLatin1String("DummyStyle")); - expectedAvailableStyles.insert(1, QLatin1String("QrcStyle2")); - expectedAvailableStyles.insert(1, QLatin1String("QrcStyle1")); + expectedAvailableStyles.insert(1, QLatin1String("QrcStyle4")); + expectedAvailableStyles.insert(1, QLatin1String("QrcStyle3")); QTest::addRow("%s", qPrintable(environmentVariable)) << environmentVariable << expectedAvailableStyles; @@ -225,13 +266,13 @@ void tst_QQuickStyle::qrcInQtQuickControlsStylePathEnvVar_data() { QString environmentVariable; QDebug stream(&environmentVariable); - stream.noquote().nospace() << QFINDTESTDATA("data") << listSeparator - << ":/qrcStyles1" << listSeparator - << ":/qrcStyles2"; + stream.noquote().nospace() << QFINDTESTDATA("data/dummyStyles") << listSeparator + << ":/qrcStyles3" << listSeparator + << ":/qrcStyles4"; QStringList expectedAvailableStyles = defaultAvailableStyles; - expectedAvailableStyles.insert(1, QLatin1String("QrcStyle2")); - expectedAvailableStyles.insert(1, QLatin1String("QrcStyle1")); + expectedAvailableStyles.insert(1, QLatin1String("QrcStyle4")); + expectedAvailableStyles.insert(1, QLatin1String("QrcStyle3")); expectedAvailableStyles.insert(1, QLatin1String("DummyStyle")); QTest::addRow("%s", qPrintable(environmentVariable)) @@ -243,13 +284,13 @@ void tst_QQuickStyle::qrcInQtQuickControlsStylePathEnvVar_data() QDebug stream(&environmentVariable); // Same as the last row, except it adds a superfluous separator // to ensure that it handles it gracefully rather than failing an assertion. - stream.noquote().nospace() << QFINDTESTDATA("data") << listSeparator - << ":/qrcStyles1" << listSeparator - << ":/qrcStyles2" << listSeparator; + stream.noquote().nospace() << QFINDTESTDATA("data/dummyStyles") << listSeparator + << ":/qrcStyles3" << listSeparator + << ":/qrcStyles4" << listSeparator; QStringList expectedAvailableStyles = defaultAvailableStyles; - expectedAvailableStyles.insert(1, QLatin1String("QrcStyle2")); - expectedAvailableStyles.insert(1, QLatin1String("QrcStyle1")); + expectedAvailableStyles.insert(1, QLatin1String("QrcStyle4")); + expectedAvailableStyles.insert(1, QLatin1String("QrcStyle3")); expectedAvailableStyles.insert(1, QLatin1String("DummyStyle")); QTest::addRow("%s", qPrintable(environmentVariable)) |