From 02675dc0208d46e6e10880a3003bcca27ac9caeb Mon Sep 17 00:00:00 2001
From: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Date: Fri, 6 Jul 2012 14:10:38 +0200
Subject: [PATCH] Use qWaitForWindowActive() where it is required.

Prepare a change in qtbase in which the implementation
of qWaitForWindowShown() will be changed to
qWaitForWindowExposed() instead of qWaitForWindowActive().
Try to stabilize further tests by introduing
wait functions instead of calls to qApp->processEvents().

Change-Id: I9825885430d78be1610a3fe20023fad24aaacba9
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
---
 .../quick/qquickflickable/tst_qquickflickable.cpp    |  2 +-
 .../quick/qquickfocusscope/tst_qquickfocusscope.cpp  | 12 ++++++------
 .../auto/quick/qquickgridview/tst_qquickgridview.cpp |  3 ++-
 tests/auto/quick/qquickitem/tst_qquickitem.cpp       |  2 +-
 .../quick/qquickitemlayer/tst_qquickitemlayer.cpp    |  2 +-
 .../auto/quick/qquicklistview/tst_qquicklistview.cpp |  7 ++++---
 .../auto/quick/qquicktextedit/tst_qquicktextedit.cpp |  9 ++++-----
 .../quick/qquicktextinput/tst_qquicktextinput.cpp    |  9 +++++----
 8 files changed, 24 insertions(+), 22 deletions(-)

diff --git a/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp b/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp
index 54f7d5210f..242f639ee2 100644
--- a/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp
+++ b/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp
@@ -555,7 +555,7 @@ void tst_qquickflickable::movingAndFlicking()
     canvas->setSource(testFileUrl("flickable03.qml"));
     canvas->show();
     canvas->requestActivateWindow();
-    QTest::qWaitForWindowShown(canvas);
+    QTest::qWaitForWindowActive(canvas);
     QVERIFY(canvas->rootObject() != 0);
 
     QQuickFlickable *flickable = qobject_cast<QQuickFlickable*>(canvas->rootObject());
diff --git a/tests/auto/quick/qquickfocusscope/tst_qquickfocusscope.cpp b/tests/auto/quick/qquickfocusscope/tst_qquickfocusscope.cpp
index 3571392b17..7d14485d13 100644
--- a/tests/auto/quick/qquickfocusscope/tst_qquickfocusscope.cpp
+++ b/tests/auto/quick/qquickfocusscope/tst_qquickfocusscope.cpp
@@ -88,7 +88,7 @@ void tst_qquickfocusscope::basic()
     view->show();
     view->requestActivateWindow();
 
-    QTest::qWaitForWindowShown(view);
+    QTest::qWaitForWindowActive(view);
     QTRY_VERIFY(view == qGuiApp->focusWindow());
 
     QVERIFY(view->isTopLevel());
@@ -133,7 +133,7 @@ void tst_qquickfocusscope::nested()
     view->show();
     view->requestActivateWindow();
 
-    QTest::qWaitForWindowShown(view);
+    QTest::qWaitForWindowActive(view);
     QTRY_VERIFY(view == qGuiApp->focusWindow());
 
     QVERIFY(item1->hasActiveFocus() == true);
@@ -200,7 +200,7 @@ void tst_qquickfocusscope::textEdit()
     view->show();
     view->requestActivateWindow();
 
-    QTest::qWaitForWindowShown(view);
+    QTest::qWaitForWindowActive(view);
 
     QTRY_VERIFY(view == qGuiApp->focusWindow());
     QVERIFY(item0->hasActiveFocus() == true);
@@ -253,7 +253,7 @@ void tst_qquickfocusscope::forceFocus()
 
     view->show();
     view->requestActivateWindow();
-    QTest::qWaitForWindowShown(view);
+    QTest::qWaitForWindowActive(view);
     QTRY_VERIFY(view == qGuiApp->focusWindow());
 
     QVERIFY(item0->hasActiveFocus() == true);
@@ -290,7 +290,7 @@ void tst_qquickfocusscope::noParentFocus()
 
     view->show();
     view->requestActivateWindow();
-    QTest::qWaitForWindowShown(view);
+    QTest::qWaitForWindowActive(view);
     QTRY_VERIFY(view == qGuiApp->focusWindow());
 
     QVERIFY(view->rootObject()->property("focus1") == false);
@@ -319,7 +319,7 @@ void tst_qquickfocusscope::signalEmission()
     view->show();
     view->requestActivateWindow();
 
-    QTest::qWaitForWindowShown(view);
+    QTest::qWaitForWindowActive(view);
     QTRY_VERIFY(view == qGuiApp->focusWindow());
 
     QVariant blue(QColor("blue"));
diff --git a/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp b/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp
index 83a1154eeb..51c7a0b0cb 100644
--- a/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp
+++ b/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp
@@ -1944,7 +1944,7 @@ void tst_QQuickGridView::keyNavigation()
     canvas->rootContext()->setContextProperty("testModel", &model);
     canvas->setSource(testFileUrl("gridview1.qml"));
     canvas->show();
-    qApp->processEvents();
+    QTest::qWaitForWindowActive(canvas);
 
     QQuickGridView *gridview = findItem<QQuickGridView>(canvas->rootObject(), "grid");
     QTRY_VERIFY(gridview != 0);
@@ -1954,6 +1954,7 @@ void tst_QQuickGridView::keyNavigation()
     QTRY_COMPARE(QQuickItemPrivate::get(gridview)->polishScheduled, false);
 
     canvas->requestActivateWindow();
+    QTest::qWaitForWindowActive(canvas);
     QTRY_VERIFY(qGuiApp->focusWindow() == canvas);
     QCOMPARE(gridview->currentIndex(), 0);
 
diff --git a/tests/auto/quick/qquickitem/tst_qquickitem.cpp b/tests/auto/quick/qquickitem/tst_qquickitem.cpp
index afbad19124..e889e59c85 100644
--- a/tests/auto/quick/qquickitem/tst_qquickitem.cpp
+++ b/tests/auto/quick/qquickitem/tst_qquickitem.cpp
@@ -177,7 +177,7 @@ private:
     void ensureFocus(QWindow *w) {
         w->show();
         w->requestActivateWindow();
-        qApp->processEvents();
+        QTest::qWaitForWindowActive(w);
     }
 };
 
diff --git a/tests/auto/quick/qquickitemlayer/tst_qquickitemlayer.cpp b/tests/auto/quick/qquickitemlayer/tst_qquickitemlayer.cpp
index 4847dd3d1c..a8bf69e657 100644
--- a/tests/auto/quick/qquickitemlayer/tst_qquickitemlayer.cpp
+++ b/tests/auto/quick/qquickitemlayer/tst_qquickitemlayer.cpp
@@ -266,7 +266,7 @@ void tst_QQuickItemLayer::layerVisibility()
 
     view.show();
 
-    QTest::qWaitForWindowShown(&view);
+    QTest::qWaitForWindowActive(&view);
 
     QImage fb = view.grabFrameBuffer();
     uint pixel = fb.pixel(0, 0);
diff --git a/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp b/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp
index 56bf2705a2..e0c923e890 100644
--- a/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp
+++ b/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp
@@ -1840,7 +1840,7 @@ void tst_QQuickListView::enforceRange_withoutHighlight()
 
     canvas->setSource(testFileUrl("listview-enforcerange-nohighlight.qml"));
     canvas->show();
-    qApp->processEvents();
+    QTest::qWaitForWindowExposed(canvas);
 
     QQuickListView *listview = findItem<QQuickListView>(canvas->rootObject(), "list");
     QTRY_VERIFY(listview != 0);
@@ -2662,7 +2662,7 @@ void tst_QQuickListView::keyNavigation()
     canvas->rootContext()->setContextProperty("testObject", testObject);
     canvas->setSource(testFileUrl("listviewtest.qml"));
     canvas->show();
-    qApp->processEvents();
+    QTest::qWaitForWindowActive(canvas);
 
     QQuickListView *listview = findItem<QQuickListView>(canvas->rootObject(), "list");
     QTRY_VERIFY(listview != 0);
@@ -2673,6 +2673,7 @@ void tst_QQuickListView::keyNavigation()
     QTRY_COMPARE(QQuickItemPrivate::get(listview)->polishScheduled, false);
 
     canvas->requestActivateWindow();
+    QTest::qWaitForWindowActive(canvas);
     QTRY_VERIFY(qGuiApp->focusWindow() == canvas);
     QCOMPARE(listview->currentIndex(), 0);
 
@@ -6883,7 +6884,7 @@ void tst_QQuickListView::parentBinding()
 
     canvas->setSource(testFileUrl("parentBinding.qml"));
     canvas->show();
-    qApp->processEvents();
+    QTest::qWaitForWindowExposed(canvas);
 
     QQuickListView *listview = qobject_cast<QQuickListView*>(canvas->rootObject());
     QVERIFY(listview != 0);
diff --git a/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp b/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp
index c911715b44..61c2df2e27 100644
--- a/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp
+++ b/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp
@@ -1810,7 +1810,7 @@ void tst_qquicktextedit::mouseSelection()
 
     canvas.show();
     canvas.requestActivateWindow();
-    QTest::qWaitForWindowShown(&canvas);
+    QTest::qWaitForWindowActive(&canvas);
     QTRY_COMPARE(&canvas, qGuiApp->focusWindow());
 
     QVERIFY(canvas.rootObject() != 0);
@@ -1957,8 +1957,7 @@ void tst_qquicktextedit::positionAt()
     QVERIFY(canvas.rootObject() != 0);
     canvas.show();
     canvas.requestActivateWindow();
-    canvas.requestActivateWindow();
-    QTest::qWaitForWindowShown(&canvas);
+    QTest::qWaitForWindowActive(&canvas);
 
     QQuickTextEdit *texteditObject = qobject_cast<QQuickTextEdit *>(canvas.rootObject());
     QVERIFY(texteditObject != 0);
@@ -2209,7 +2208,7 @@ void tst_qquicktextedit::cursorVisible()
     QCOMPARE(spy.count(), 6);
 
     view.requestActivateWindow();
-    QTest::qWaitForWindowShown(&view);
+    QTest::qWaitForWindowActive(&view);
     QCOMPARE(edit.isCursorVisible(), true);
     QCOMPARE(spy.count(), 7);
 
@@ -4169,7 +4168,7 @@ void tst_qquicktextedit::undo()
     textEdit->setParentItem(canvas.rootItem());
     canvas.show();
     canvas.requestActivateWindow();
-    QTest::qWaitForWindowShown(&canvas);
+    QTest::qWaitForWindowActive(&canvas);
     QTRY_COMPARE(QGuiApplication::focusWindow(), &canvas);
 
     QVERIFY(!textEdit->canUndo());
diff --git a/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp b/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp
index d2d8d5ad14..4261fafec4 100644
--- a/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp
+++ b/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp
@@ -1171,7 +1171,7 @@ void tst_qquicktextinput::dragMouseSelection()
 
     canvas.show();
     canvas.requestActivateWindow();
-    QTest::qWaitForWindowShown(&canvas);
+    QTest::qWaitForWindowActive(&canvas);
 
     QTRY_COMPARE(&canvas, qGuiApp->focusWindow());
 
@@ -1236,7 +1236,7 @@ void tst_qquicktextinput::mouseSelectionMode()
 
     canvas.show();
     canvas.requestActivateWindow();
-    QTest::qWaitForWindowShown(&canvas);
+    QTest::qWaitForWindowActive(&canvas);
     QTRY_COMPARE(&canvas, qGuiApp->focusWindow());
 
     QVERIFY(canvas.rootObject() != 0);
@@ -1793,6 +1793,7 @@ void tst_qquicktextinput::validators()
     QQuickView canvas(testFileUrl("validators.qml"));
     canvas.show();
     canvas.requestActivateWindow();
+    QTest::qWaitForWindowActive(&canvas);
 
     QVERIFY(canvas.rootObject() != 0);
 
@@ -2649,7 +2650,7 @@ void tst_qquicktextinput::cursorVisible()
     QCOMPARE(spy.count(), 6);
 
     view.requestActivateWindow();
-    QTest::qWaitForWindowShown(&view);
+    QTest::qWaitForWindowActive(&view);
     QCOMPARE(input.isCursorVisible(), true);
     QCOMPARE(spy.count(), 7);
 
@@ -3783,7 +3784,7 @@ void tst_qquicktextinput::tripleClickSelectsAll()
     QQuickView view(QUrl::fromLocalFile(qmlfile));
     view.show();
     view.requestActivateWindow();
-    QTest::qWaitForWindowShown(&view);
+    QTest::qWaitForWindowActive(&view);
 
     QTRY_COMPARE(&view, qGuiApp->focusWindow());
 
-- 
GitLab