aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/touchmouse
diff options
context:
space:
mode:
authorJan Arve Saether <jan-arve.saether@qt.io>2017-01-13 10:02:23 +0100
committerShawn Rutledge <shawn.rutledge@qt.io>2017-02-28 15:51:21 +0000
commit8c864e52369ee4d55a1d9345215c8153144b5939 (patch)
tree53bb39932bd0db9fe9b54552b5c049e923aaacb4 /tests/auto/quick/touchmouse
parent16389a1f247f14965ed0286e4fdab6bc2b1621bc (diff)
Add TouchMouse::implicitUngrab autotest
Task-number: QTBUG-57797 Task-number: QTBUG-59098 Change-Id: I3bf9ad33c22cdbd82f3efbdbfc35f63371c04bed Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'tests/auto/quick/touchmouse')
-rw-r--r--tests/auto/quick/touchmouse/tst_touchmouse.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/auto/quick/touchmouse/tst_touchmouse.cpp b/tests/auto/quick/touchmouse/tst_touchmouse.cpp
index 4f4fac8fa5..032e682137 100644
--- a/tests/auto/quick/touchmouse/tst_touchmouse.cpp
+++ b/tests/auto/quick/touchmouse/tst_touchmouse.cpp
@@ -172,6 +172,7 @@ private slots:
void touchPointDeliveryOrder();
void hoverEnabled();
+ void implicitUngrab();
protected:
bool eventFilter(QObject *, QEvent *event)
@@ -1414,6 +1415,37 @@ void tst_TouchMouse::hoverEnabled()
QVERIFY(!mouseArea2->hovered());
}
+void tst_TouchMouse::implicitUngrab()
+{
+ QScopedPointer<QQuickView> window(createView());
+ window->setSource(testFileUrl("singleitem.qml"));
+ window->show();
+ QQuickViewTestUtil::centerOnScreen(window.data());
+ QQuickViewTestUtil::moveMouseAway(window.data());
+ QVERIFY(QTest::qWaitForWindowActive(window.data()));
+
+ QQuickItem *root = window->rootObject();
+ QVERIFY(root != 0);
+ EventItem *eventItem = root->findChild<EventItem*>("eventItem1");
+ eventItem->acceptMouse = true;
+ QPoint p1(20, 20);
+ QTest::touchEvent(window.data(), device).press(0, p1);
+
+ QCOMPARE(window->mouseGrabberItem(), eventItem);
+ eventItem->eventList.clear();
+ eventItem->setEnabled(false);
+ QVERIFY(!eventItem->eventList.isEmpty());
+ QCOMPARE(eventItem->eventList.at(0).type, QEvent::UngrabMouse);
+ QTest::touchEvent(window.data(), device).release(0, p1); // clean up potential state
+
+ eventItem->setEnabled(true);
+ QTest::touchEvent(window.data(), device).press(0, p1);
+ eventItem->eventList.clear();
+ eventItem->setVisible(false);
+ QVERIFY(!eventItem->eventList.isEmpty());
+ QCOMPARE(eventItem->eventList.at(0).type, QEvent::UngrabMouse);
+ QTest::touchEvent(window.data(), device).release(0, p1); // clean up potential state
+}
QTEST_MAIN(tst_TouchMouse)
#include "tst_touchmouse.moc"