From bfa7b5a4641f387ca7efc2df7a9d04a03ca937db Mon Sep 17 00:00:00 2001 From: Mitch Curtis Date: Mon, 11 Jan 2021 17:36:30 +0100 Subject: Ensure that C++ Qt Quick tests are run with all applicable styles Since 8b534487044dfb3b464431ecb91ef4e0864af4ed, the C++ tests were only being run with the default style for the platform that they were run on. Fix this by keeping track of whether a default style is in use and checking it in the tests. Change-Id: I4ddd90aba12ede83fff0d3d1002534e79fce8c87 Reviewed-by: Fabian Kosmale (cherry picked from commit 4b66c0bd7de6063982459fe45f69278fd0519b1b) Reviewed-by: Qt Cherry-pick Bot --- tests/auto/qquickstyle/tst_qquickstyle.cpp | 1 + tests/auto/shared/qtest_quickcontrols.h | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/auto/qquickstyle/tst_qquickstyle.cpp b/tests/auto/qquickstyle/tst_qquickstyle.cpp index b9497500..97259051 100644 --- a/tests/auto/qquickstyle/tst_qquickstyle.cpp +++ b/tests/auto/qquickstyle/tst_qquickstyle.cpp @@ -137,6 +137,7 @@ void tst_QQuickStyle::configurationFile() QVERIFY2(!object.isNull(), qPrintable(labelComponent.errorString())); QCOMPARE(QQuickStyle::name(), expectedStyle); + QVERIFY(!QQuickStylePrivate::isUsingDefaultStyle()); // Test that fonts and palettes specified in configuration files are respected. QQuickLabel *label = qobject_cast(object.data()); diff --git a/tests/auto/shared/qtest_quickcontrols.h b/tests/auto/shared/qtest_quickcontrols.h index acd0304c..8eadd979 100644 --- a/tests/auto/shared/qtest_quickcontrols.h +++ b/tests/auto/shared/qtest_quickcontrols.h @@ -46,7 +46,11 @@ static QStringList testStyles() { - if (QQuickStyle::name().isEmpty()) + // It's not enough to check if the name is empty, because since Qt 6 + // we set an appropriate style for the platform if no style was specified. + // Also, we need the name check to come first, as isUsingDefaultStyle() does not do any resolving, + // and so its return value wouldn't be correct otherwise. + if (QQuickStyle::name().isEmpty() || QQuickStylePrivate::isUsingDefaultStyle()) return QQuickStylePrivate::builtInStyles(); return QStringList(QQuickStyle::name()); } -- cgit v1.2.3