diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-07-14 01:02:04 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2018-07-16 09:38:30 +0200 |
commit | 43645fd59c6bcb0a3e37eef530ef970f51ed48af (patch) | |
tree | d377a19c36e9e853377db59b58d937db0ea67e0d /tests/auto/quick/qquickloader | |
parent | ad0f200df54e5afcb1fdcb977794259bdb9216b5 (diff) | |
parent | f42207cbdb0cbe5e345bfd9e000b3e77b34a503c (diff) |
Merge remote-tracking branch 'origin/5.11' into dev
Conflicts:
src/quick/items/qquickloader.cpp
tests/auto/quick/qquickanimations/tst_qquickanimations.cpp
Change-Id: I0cb9f637d24ccd0ecfb50c455cc210119f744b02
Diffstat (limited to 'tests/auto/quick/qquickloader')
-rw-r--r-- | tests/auto/quick/qquickloader/tst_qquickloader.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/auto/quick/qquickloader/tst_qquickloader.cpp b/tests/auto/quick/qquickloader/tst_qquickloader.cpp index fd9fed39b5..fbdd87905b 100644 --- a/tests/auto/quick/qquickloader/tst_qquickloader.cpp +++ b/tests/auto/quick/qquickloader/tst_qquickloader.cpp @@ -126,6 +126,8 @@ private slots: void parentErrors(); void rootContext(); + void sourceURLKeepComponent(); + }; Q_DECLARE_METATYPE(QList<QQmlError>) @@ -1388,6 +1390,57 @@ void tst_QQuickLoader::rootContext() QCOMPARE(objectInRootContext.didIt, 2); } +void tst_QQuickLoader::sourceURLKeepComponent() +{ + QQmlEngine engine; + QQmlComponent component(&engine); + component.setData(QByteArray( + "import QtQuick 2.0\n" + " Loader { id: loader\n }"), + dataDirectoryUrl()); + + QScopedPointer<QQuickLoader> loader(qobject_cast<QQuickLoader*>(component.create())); + loader->setSource(testFileUrl("/Rect120x60.qml")); + + QVERIFY(loader); + QVERIFY(loader->item()); + QVERIFY(loader->sourceComponent()); + QCOMPARE(loader->progress(), 1.0); + + const QPointer<QQmlComponent> sourceComponent = loader->sourceComponent(); + + //Ensure toggling active status does not recreate component + loader->setActive(false); + QVERIFY(!loader->item()); + QVERIFY(loader->sourceComponent()); + QCOMPARE(sourceComponent.data(), loader->sourceComponent()); + + loader->setActive(true); + QVERIFY(loader->item()); + QVERIFY(loader->sourceComponent()); + QCOMPARE(sourceComponent.data(), loader->sourceComponent()); + + loader->setActive(false); + QVERIFY(!loader->item()); + QVERIFY(loader->sourceComponent()); + QCOMPARE(sourceComponent.data(), loader->sourceComponent()); + + //Ensure changing source url causes component to be recreated when inactive + loader->setSource(testFileUrl("/BlueRect.qml")); + + loader->setActive(true); + QVERIFY(loader->item()); + QVERIFY(loader->sourceComponent()); + + const QPointer<QQmlComponent> newSourceComponent = loader->sourceComponent(); + QVERIFY(sourceComponent.data() != newSourceComponent.data()); + + //Ensure changing source url causes component to be recreated when active + loader->setSource(testFileUrl("/Rect120x60.qml")); + QVERIFY(loader->sourceComponent() != newSourceComponent.data()); + +} + QTEST_MAIN(tst_QQuickLoader) #include "tst_qquickloader.moc" |