From 9d7204eadd1d68823dcae790fe3f77aa2fbd4b0e Mon Sep 17 00:00:00 2001 From: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Date: Wed, 26 Nov 2014 10:01:15 +0100 Subject: [PATCH] Stabilize tst_qquickflickable. - Use one engine per test - Use QQuickView for the margins test - Verify QWindow cleanup. Change-Id: Id2a10b56101832c362822963a2a7bd1d66daa143 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com> --- .../qquickflickable/tst_qquickflickable.cpp | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp b/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp index 26819ff48b..a3d902a054 100644 --- a/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp +++ b/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp @@ -91,12 +91,17 @@ private slots: void stopAtBounds_data(); void nestedMouseAreaUsingTouch(); void pressDelayWithLoader(); + void cleanup(); private: void flickWithTouch(QQuickWindow *window, QTouchDevice *touchDevice, const QPoint &from, const QPoint &to); - QQmlEngine engine; }; +void tst_qquickflickable::cleanup() +{ + QVERIFY(QGuiApplication::topLevelWindows().isEmpty()); +} + void tst_qquickflickable::create() { QQmlEngine engine; @@ -199,6 +204,7 @@ void tst_qquickflickable::properties() void tst_qquickflickable::boundsBehavior() { + QQmlEngine engine; QQmlComponent component(&engine); component.setData("import QtQuick 2.0; Flickable { boundsBehavior: Flickable.StopAtBounds }", QUrl::fromLocalFile("")); QQuickFlickable *flickable = qobject_cast<QQuickFlickable*>(component.create()); @@ -330,6 +336,7 @@ void tst_qquickflickable::rebound() void tst_qquickflickable::maximumFlickVelocity() { + QQmlEngine engine; QQmlComponent component(&engine); component.setData("import QtQuick 2.0; Flickable { maximumFlickVelocity: 1.0; }", QUrl::fromLocalFile("")); QQuickFlickable *flickable = qobject_cast<QQuickFlickable*>(component.create()); @@ -349,6 +356,7 @@ void tst_qquickflickable::maximumFlickVelocity() void tst_qquickflickable::flickDeceleration() { + QQmlEngine engine; QQmlComponent component(&engine); component.setData("import QtQuick 2.0; Flickable { flickDeceleration: 1.0; }", QUrl::fromLocalFile("")); QQuickFlickable *flickable = qobject_cast<QQuickFlickable*>(component.create()); @@ -553,6 +561,7 @@ void tst_qquickflickable::nestedClickThenFlick() void tst_qquickflickable::flickableDirection() { + QQmlEngine engine; QQmlComponent component(&engine); component.setData("import QtQuick 2.0; Flickable { flickableDirection: Flickable.VerticalFlick; }", QUrl::fromLocalFile("")); QQuickFlickable *flickable = qobject_cast<QQuickFlickable*>(component.create()); @@ -1213,9 +1222,16 @@ void tst_qquickflickable::flickVelocity() void tst_qquickflickable::margins() { - QQmlEngine engine; - QQmlComponent c(&engine, testFileUrl("margins.qml")); - QQuickItem *root = qobject_cast<QQuickItem*>(c.create()); + QScopedPointer<QQuickView> window(new QQuickView); + window->setSource(testFileUrl("margins.qml")); + QTRY_COMPARE(window->status(), QQuickView::Ready); + QQuickViewTestUtil::centerOnScreen(window.data()); + QQuickViewTestUtil::moveMouseAway(window.data()); + window->setTitle(QTest::currentTestFunction()); + window->show(); + QVERIFY(QTest::qWaitForWindowExposed(window.data())); + QQuickItem *root = window->rootObject(); + QVERIFY(root); QQuickFlickable *obj = qobject_cast<QQuickFlickable*>(root); QVERIFY(obj != 0); -- GitLab