aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-05-17 21:07:34 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2017-05-18 20:15:34 +0000
commit82310bc78b5c52bfe0a2eca5d3a67bdfc81d1dd9 (patch)
tree190707f98e9ca5360cbaa7d3a1edb1398db185bc /tests
parentd0748129835e5977c144874e5ccaf8a7e4fb0b54 (diff)
ApplicationWindow: fix access to revisioned members in base classes
The inheritance hierarcy is: QWindow <- QQuickWindow <- QQuickWindowQmlImpl <- QQuickAppWindow Each base class has its own set of revisioned members. Import the revisioned members in the base classes to the templates/controls namespace by calling qmlRegisterRevision() with the revision of the base class and the respective templates/controls version. Task-number: QTBUG-60893 Change-Id: I6d91209dc5b2eb17c2b3845675a5ddbffb7e8b72 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/revisions/tst_revisions.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/auto/revisions/tst_revisions.cpp b/tests/auto/revisions/tst_revisions.cpp
index 8a7a5d6e..606cea33 100644
--- a/tests/auto/revisions/tst_revisions.cpp
+++ b/tests/auto/revisions/tst_revisions.cpp
@@ -46,6 +46,9 @@ class tst_revisions : public QObject
private slots:
void revisions_data();
void revisions();
+
+ void window_data();
+ void window();
};
void tst_revisions::revisions_data()
@@ -77,6 +80,34 @@ void tst_revisions::revisions()
QVERIFY2(!object.isNull(), qPrintable(component.errorString()));
}
+void tst_revisions::window_data()
+{
+ QTest::addColumn<int>("revision");
+ QTest::addColumn<QString>("qml");
+ QTest::addColumn<QString>("error");
+
+ // Qt 5.7: 2.0, Qt 5.8: 2.1
+ for (int i = 0; i <= 1; ++i)
+ QTest::newRow(qPrintable(QString("screen:2.%1").arg(i))) << i << "screen: null" << QString(":1 \"ApplicationWindow.screen\" is not available in QtQuick.Templates 2.%1").arg(i);
+
+ // Qt 5.9: 2.2, Qt 5.10: 2.3...
+ for (int i = 2; i <= QT_VERSION_MINOR - 7; ++i)
+ QTest::newRow(qPrintable(QString("screen:2.%1").arg(i))) << i << "screen: null" << "";
+}
+
+void tst_revisions::window()
+{
+ QFETCH(int, revision);
+ QFETCH(QString, qml);
+ QFETCH(QString, error);
+
+ QQmlEngine engine;
+ QQmlComponent component(&engine);
+ component.setData(QString("import QtQuick.Templates 2.%1; ApplicationWindow { %2 }").arg(revision).arg(qml).toUtf8(), QUrl());
+ QScopedPointer<QObject> window(component.create());
+ QCOMPARE(window.isNull(), !error.isEmpty());
+}
+
QTEST_MAIN(tst_revisions)
#include "tst_revisions.moc"