diff options
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/controls/data/tst_tumbler.qml | 8 | ||||
-rw-r--r-- | tests/auto/qquickstyle/tst_qquickstyle.cpp | 111 |
2 files changed, 112 insertions, 7 deletions
diff --git a/tests/auto/controls/data/tst_tumbler.qml b/tests/auto/controls/data/tst_tumbler.qml index f62c62c2..18f63ed4 100644 --- a/tests/auto/controls/data/tst_tumbler.qml +++ b/tests/auto/controls/data/tst_tumbler.qml @@ -298,13 +298,7 @@ TestCase { tryCompare(tumbler, "currentIndex", data.currentIndex); tumblerView = findView(tumbler); - // TODO: replace once QTBUG-19708 is fixed. - for (var delay = 1000; delay >= 0; delay -= 50) { - if (tumblerView.currentItem) - break; - wait(50); - } - verify(tumblerView.currentItem); + tryVerify(function() { return tumblerView.currentItem }); compare(tumblerView.currentIndex, data.currentIndex); compare(tumblerView.currentItem.text, data.currentIndex.toString()); diff --git a/tests/auto/qquickstyle/tst_qquickstyle.cpp b/tests/auto/qquickstyle/tst_qquickstyle.cpp index 324d0b08..2210bf69 100644 --- a/tests/auto/qquickstyle/tst_qquickstyle.cpp +++ b/tests/auto/qquickstyle/tst_qquickstyle.cpp @@ -57,6 +57,8 @@ private slots: void availableStyles(); void qrcStylePaths_data(); void qrcStylePaths(); + void qrcInQtQuickControlsStylePathEnvVar_data(); + void qrcInQtQuickControlsStylePathEnvVar(); private: void loadControls(); @@ -69,6 +71,7 @@ void tst_QQuickStyle::cleanup() QGuiApplicationPrivate::styleOverride.clear(); qunsetenv("QT_QUICK_CONTROLS_STYLE"); + qunsetenv("QT_QUICK_CONTROLS_STYLE_PATH"); qunsetenv("QT_QUICK_CONTROLS_FALLBACK_STYLE"); qunsetenv("QT_QUICK_CONTROLS_CONF"); } @@ -206,6 +209,114 @@ void tst_QQuickStyle::qrcStylePaths() } } +void tst_QQuickStyle::qrcInQtQuickControlsStylePathEnvVar_data() +{ + QTest::addColumn<QString>("environmentVariable"); + QTest::addColumn<QStringList>("expectedAvailableStyles"); + + const QChar listSeparator = QDir::listSeparator(); + const QStringList defaultAvailableStyles = QQuickStyle::availableStyles(); + + { + QString environmentVariable; + QDebug stream(&environmentVariable); + stream.noquote().nospace() << "/some/bogus/path/" << listSeparator + << ":/qrcStyles1"; + + QStringList expectedAvailableStyles = defaultAvailableStyles; + // We need to move the Default style to the start of the list, + // as that's what availableStyles() does. + expectedAvailableStyles.insert(1, QLatin1String("QrcStyle1")); + + QTest::addRow("%s", qPrintable(environmentVariable)) + << environmentVariable << expectedAvailableStyles; + } + + { + QString environmentVariable; + QDebug stream(&environmentVariable); + stream.noquote().nospace() << ":/qrcStyles2" << listSeparator + << "/some/bogus/path"; + + QStringList expectedAvailableStyles = defaultAvailableStyles; + expectedAvailableStyles.insert(1, QLatin1String("QrcStyle2")); + + QTest::addRow("%s", qPrintable(environmentVariable)) + << environmentVariable << expectedAvailableStyles; + } + + { + QString environmentVariable; + QDebug stream(&environmentVariable); + stream.noquote().nospace() << ":/qrcStyles1" << listSeparator + << ":/qrcStyles2" << listSeparator + << QFINDTESTDATA("data"); + + QStringList expectedAvailableStyles = defaultAvailableStyles; + expectedAvailableStyles.insert(1, QLatin1String("DummyStyle")); + expectedAvailableStyles.insert(1, QLatin1String("QrcStyle2")); + expectedAvailableStyles.insert(1, QLatin1String("QrcStyle1")); + + QTest::addRow("%s", qPrintable(environmentVariable)) + << environmentVariable << expectedAvailableStyles; + } + + { + QString environmentVariable; + QDebug stream(&environmentVariable); + stream.noquote().nospace() << QFINDTESTDATA("data") << listSeparator + << ":/qrcStyles1" << listSeparator + << ":/qrcStyles2"; + + QStringList expectedAvailableStyles = defaultAvailableStyles; + expectedAvailableStyles.insert(1, QLatin1String("QrcStyle2")); + expectedAvailableStyles.insert(1, QLatin1String("QrcStyle1")); + expectedAvailableStyles.insert(1, QLatin1String("DummyStyle")); + + QTest::addRow("%s", qPrintable(environmentVariable)) + << environmentVariable << expectedAvailableStyles; + } + + { + QString environmentVariable; + 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; + + QStringList expectedAvailableStyles = defaultAvailableStyles; + expectedAvailableStyles.insert(1, QLatin1String("QrcStyle2")); + expectedAvailableStyles.insert(1, QLatin1String("QrcStyle1")); + expectedAvailableStyles.insert(1, QLatin1String("DummyStyle")); + + QTest::addRow("%s", qPrintable(environmentVariable)) + << environmentVariable << expectedAvailableStyles; + } +} + +/* + Tests that qrc paths work with QT_QUICK_CONTROLS_STYLE_PATH. +*/ +void tst_QQuickStyle::qrcInQtQuickControlsStylePathEnvVar() +{ + QFETCH(QString, environmentVariable); + QFETCH(QStringList, expectedAvailableStyles); + + qputenv("QT_QUICK_CONTROLS_STYLE_PATH", environmentVariable.toLocal8Bit()); + + const QStringList availableStyles = QQuickStyle::availableStyles(); + if (availableStyles != expectedAvailableStyles) { + QString failureMessage; + QDebug stream(&failureMessage); + stream << "Mismatch in actual vs expected available styles:" + << "\n Expected:" << expectedAvailableStyles + << "\n Actual:" << availableStyles; + QFAIL(qPrintable(failureMessage)); + } +} + QTEST_MAIN(tst_QQuickStyle) #include "tst_qquickstyle.moc" |