diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-05-17 21:07:34 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-05-18 20:15:34 +0000 |
commit | 82310bc78b5c52bfe0a2eca5d3a67bdfc81d1dd9 (patch) | |
tree | 190707f98e9ca5360cbaa7d3a1edb1398db185bc /tests/auto | |
parent | d0748129835e5977c144874e5ccaf8a7e4fb0b54 (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/auto')
-rw-r--r-- | tests/auto/revisions/tst_revisions.cpp | 31 |
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" |