diff options
Diffstat (limited to 'tests/auto/quick/qquickpalette/tst_qquickpalette.cpp')
-rw-r--r-- | tests/auto/quick/qquickpalette/tst_qquickpalette.cpp | 68 |
1 files changed, 67 insertions, 1 deletions
diff --git a/tests/auto/quick/qquickpalette/tst_qquickpalette.cpp b/tests/auto/quick/qquickpalette/tst_qquickpalette.cpp index e211a034ee..cca7b54a8a 100644 --- a/tests/auto/quick/qquickpalette/tst_qquickpalette.cpp +++ b/tests/auto/quick/qquickpalette/tst_qquickpalette.cpp @@ -40,11 +40,22 @@ #include <QtTest/qtest.h> #include <QtTest/QSignalSpy> +#include <QtQml/qqmlcomponent.h> +#include <QtQml/qqmlengine.h> + #include <QtQuick/private/qquickpalette_p.h> #include <QtQuick/private/qquickabstractpaletteprovider_p.h> #include <QtQuick/private/qquickpalettecolorprovider_p.h> -class tst_QQuickPalette : public QObject +#include "../../shared/util.h" + +// Use this to get a more descriptive failure message (QTBUG-87039). +#define COMPARE_PALETTES(actualPalette, expectedPalette) \ + QVERIFY2(actualPalette == expectedPalette, \ + qPrintable(QString::fromLatin1("\n Actual: %1\n Expected: %2") \ + .arg(QDebug::toString(actualPalette)).arg(QDebug::toString(expectedPalette)))); + +class tst_QQuickPalette : public QQmlDataTest { Q_OBJECT @@ -73,6 +84,9 @@ private Q_SLOTS: void createFromQtPalette(); void convertToQtPalette(); + + void qml_data(); + void qml(); }; using GroupGetter = QQuickColorGroup* (QQuickPalette::* )() const; @@ -299,6 +313,58 @@ void tst_QQuickPalette::convertToQtPalette() QCOMPARE(palette.toQPalette(), somePalette.resolve(pp->defaultPalette())); } +// QTBUG-93691 +void tst_QQuickPalette::qml_data() +{ + QTest::addColumn<QString>("testFile"); + QTest::addColumn<QPalette>("expectedPalette"); + + const QPalette defaultPalette; + QTest::newRow("Item") << "palette-item-default.qml" << defaultPalette; + QTest::newRow("Window") << "palette-window-default.qml" << defaultPalette; + + QPalette customPalette; + customPalette.setColor(QPalette::AlternateBase, QColor("aqua")); + customPalette.setColor(QPalette::Base, QColor("azure")); + customPalette.setColor(QPalette::BrightText, QColor("beige")); + customPalette.setColor(QPalette::Button, QColor("bisque")); + customPalette.setColor(QPalette::ButtonText, QColor("chocolate")); + customPalette.setColor(QPalette::Dark, QColor("coral")); + customPalette.setColor(QPalette::Highlight, QColor("crimson")); + customPalette.setColor(QPalette::HighlightedText, QColor("fuchsia")); + customPalette.setColor(QPalette::Light, QColor("gold")); + customPalette.setColor(QPalette::Link, QColor("indigo")); + customPalette.setColor(QPalette::LinkVisited, QColor("ivory")); + customPalette.setColor(QPalette::Mid, QColor("khaki")); + customPalette.setColor(QPalette::Midlight, QColor("lavender")); + customPalette.setColor(QPalette::Shadow, QColor("linen")); + customPalette.setColor(QPalette::Text, QColor("moccasin")); + customPalette.setColor(QPalette::ToolTipBase, QColor("navy")); + customPalette.setColor(QPalette::ToolTipText, QColor("orchid")); + customPalette.setColor(QPalette::Window, QColor("plum")); + customPalette.setColor(QPalette::WindowText, QColor("salmon")); + + QTest::newRow("Item:custom") << "palette-item-custom.qml" << customPalette; + QTest::newRow("Window:custom") << "palette-window-custom.qml" << customPalette; +} + +void tst_QQuickPalette::qml() +{ + QFETCH(QString, testFile); + QFETCH(QPalette, expectedPalette); + + QQmlEngine engine; + QQmlComponent component(&engine); + component.loadUrl(testFileUrl(testFile)); + + QScopedPointer<QObject> object(component.create()); + QVERIFY2(!object.isNull(), qPrintable(component.errorString())); + + const QVariant var = object->property("palette"); + QVERIFY(var.isValid()); + COMPARE_PALETTES(var.value<QQuickPalette*>()->toQPalette(), expectedPalette); +} + QTEST_MAIN(tst_QQuickPalette) #include "tst_qquickpalette.moc" |