aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/qquickmousearea
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/quick/qquickmousearea')
-rw-r--r--tests/auto/quick/qquickmousearea/data/doubleClickToHide.qml19
-rw-r--r--tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp28
2 files changed, 47 insertions, 0 deletions
diff --git a/tests/auto/quick/qquickmousearea/data/doubleClickToHide.qml b/tests/auto/quick/qquickmousearea/data/doubleClickToHide.qml
new file mode 100644
index 0000000000..01f6eaabed
--- /dev/null
+++ b/tests/auto/quick/qquickmousearea/data/doubleClickToHide.qml
@@ -0,0 +1,19 @@
+import QtQuick 2.0
+
+Item {
+ id: root
+ property int clicked: 0
+ property int doubleClicked: 0
+ property int released: 0
+
+ MouseArea {
+ width: 200; height: 200
+ onClicked: { root.clicked++ }
+ onDoubleClicked: {
+ root.doubleClicked++
+ visible = false
+ }
+ onReleased: { root.released++ }
+ }
+}
+
diff --git a/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp b/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp
index 1c99357ab7..27fee2aab3 100644
--- a/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp
+++ b/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp
@@ -161,6 +161,7 @@ private slots:
void nestedEventDelivery();
void settingHiddenInPressUngrabs();
void containsMouseAndVisibility();
+ void doubleClickToHide();
private:
int startDragDistance() const {
@@ -2500,6 +2501,33 @@ void tst_QQuickMouseArea::containsMouseAndVisibility()
QVERIFY(!mouseArea->hovered());
}
+// QTBUG-35995 and QTBUG-102158
+void tst_QQuickMouseArea::doubleClickToHide()
+{
+ QQuickView window;
+ QByteArray errorMessage;
+ QVERIFY2(QQuickTest::initView(window, testFileUrl("doubleClickToHide.qml"), true, &errorMessage), errorMessage.constData());
+ window.show();
+ window.requestActivate();
+ QVERIFY(QTest::qWaitForWindowExposed(&window));
+
+ QQuickMouseArea *mouseArea = window.rootObject()->findChild<QQuickMouseArea *>();
+ QVERIFY(mouseArea);
+
+ QTest::mouseDClick(&window, Qt::LeftButton, Qt::NoModifier, {10, 10});
+
+ QCOMPARE(window.rootObject()->property("clicked").toInt(), 1);
+ QCOMPARE(window.rootObject()->property("doubleClicked").toInt(), 1);
+ QCOMPARE(mouseArea->isVisible(), false);
+ QCOMPARE(mouseArea->pressed(), false);
+ QCOMPARE(mouseArea->pressedButtons(), Qt::NoButton);
+
+ mouseArea->setVisible(true);
+
+ QTest::mouseClick(&window, Qt::LeftButton, Qt::NoModifier, {10, 10});
+ QCOMPARE(window.rootObject()->property("clicked").toInt(), 2);
+}
+
QTEST_MAIN(tst_QQuickMouseArea)
#include "tst_qquickmousearea.moc"