aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qquickstyle/tst_qquickstyle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qquickstyle/tst_qquickstyle.cpp')
-rw-r--r--tests/auto/qquickstyle/tst_qquickstyle.cpp83
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))