diff options
author | Matthew Vogt <matthew.vogt@nokia.com> | 2012-07-30 11:10:28 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-07-30 04:23:40 +0200 |
commit | 9a8f869ef0c5a7cbd7b7b77cdbdff213176cf8d7 (patch) | |
tree | fc46a2fee8dc4b43b600276fc45a2a5aed98220e /tests | |
parent | 3344e950d85c130e8be45ec78fa0b25e6f8f7f3a (diff) |
Stabilize tst_qquickloader test case
Ensure cases are not affected by timer events of incubation controllers
created in previous cases.
Change-Id: Ia633ed142242d000de5f497896a685ca2f26e143
Reviewed-by: Chris Adams <christopher.adams@nokia.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/quick/qquickloader/tst_qquickloader.cpp | 36 |
1 files changed, 22 insertions, 14 deletions
diff --git a/tests/auto/quick/qquickloader/tst_qquickloader.cpp b/tests/auto/quick/qquickloader/tst_qquickloader.cpp index 99ae42b3d5..ba5b672148 100644 --- a/tests/auto/quick/qquickloader/tst_qquickloader.cpp +++ b/tests/auto/quick/qquickloader/tst_qquickloader.cpp @@ -56,10 +56,9 @@ class PeriodicIncubationController : public QObject, public QQmlIncubationController { public: - PeriodicIncubationController() { - incubated = false; - startTimer(16); - } + PeriodicIncubationController() : incubated(false) {} + + void start() { startTimer(20); } bool incubated; @@ -901,10 +900,11 @@ void tst_QQuickLoader::asynchronous() QFETCH(QUrl, qmlFile); QFETCH(QStringList, expectedWarnings); - if (!engine.incubationController()) - engine.setIncubationController(new PeriodicIncubationController); - PeriodicIncubationController *controller = static_cast<PeriodicIncubationController*>(engine.incubationController()); - controller->incubated = false; + PeriodicIncubationController *controller = new PeriodicIncubationController; + QQmlIncubationController *previous = engine.incubationController(); + engine.setIncubationController(controller); + delete previous; + QQmlComponent component(&engine, testFileUrl("asynchronous.qml")); QQuickItem *root = qobject_cast<QQuickItem*>(component.create()); QVERIFY(root); @@ -923,6 +923,8 @@ void tst_QQuickLoader::asynchronous() if (expectedWarnings.isEmpty()) { QCOMPARE(loader->status(), QQuickLoader::Loading); + + controller->start(); QVERIFY(!controller->incubated); // asynchronous compilation means not immediately compiled/incubating. QTRY_VERIFY(controller->incubated); // but should start incubating once compilation is complete. QTRY_VERIFY(loader->item()); @@ -938,8 +940,11 @@ void tst_QQuickLoader::asynchronous() void tst_QQuickLoader::asynchronous_clear() { - if (!engine.incubationController()) - engine.setIncubationController(new PeriodicIncubationController); + PeriodicIncubationController *controller = new PeriodicIncubationController; + QQmlIncubationController *previous = engine.incubationController(); + engine.setIncubationController(controller); + delete previous; + QQmlComponent component(&engine, testFileUrl("asynchronous.qml")); QQuickItem *root = qobject_cast<QQuickItem*>(component.create()); QVERIFY(root); @@ -952,6 +957,7 @@ void tst_QQuickLoader::asynchronous_clear() QMetaObject::invokeMethod(root, "loadComponent"); QVERIFY(!loader->item()); + controller->start(); QCOMPARE(loader->status(), QQuickLoader::Loading); QTRY_COMPARE(engine.incubationController()->incubatingObjectCount(), 1); @@ -983,10 +989,11 @@ void tst_QQuickLoader::asynchronous_clear() void tst_QQuickLoader::simultaneousSyncAsync() { - if (!engine.incubationController()) - engine.setIncubationController(new PeriodicIncubationController); - PeriodicIncubationController *controller = static_cast<PeriodicIncubationController*>(engine.incubationController()); - controller->incubated = false; + PeriodicIncubationController *controller = new PeriodicIncubationController; + QQmlIncubationController *previous = engine.incubationController(); + engine.setIncubationController(controller); + delete previous; + QQmlComponent component(&engine, testFileUrl("simultaneous.qml")); QQuickItem *root = qobject_cast<QQuickItem*>(component.create()); QVERIFY(root); @@ -1002,6 +1009,7 @@ void tst_QQuickLoader::simultaneousSyncAsync() QVERIFY(!asyncLoader->item()); QVERIFY(syncLoader->item()); + controller->start(); QCOMPARE(asyncLoader->status(), QQuickLoader::Loading); QVERIFY(!controller->incubated); // asynchronous compilation means not immediately compiled/incubating. QTRY_VERIFY(controller->incubated); // but should start incubating once compilation is complete. |