aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorGabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>2015-07-20 15:51:17 +0200
committerGabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>2015-07-24 10:32:41 +0000
commit048a5363294273d60b3634f96295c28828e5383e (patch)
treec32c1c4d7f28c78b9fc3ba7a55388b715a0fc333 /tests/auto
parent3515852a3fb8321da950c7ae88c2ab1e09259e8c (diff)
Add pressAndHold support for TextField
Change-Id: I634da6568a456a5f21e30e6295d139a4e1a89e75 Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/controls/data/tst_textfield.qml52
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/auto/controls/data/tst_textfield.qml b/tests/auto/controls/data/tst_textfield.qml
index 4a55ef97..9ce325b3 100644
--- a/tests/auto/controls/data/tst_textfield.qml
+++ b/tests/auto/controls/data/tst_textfield.qml
@@ -60,4 +60,56 @@ TestCase {
verify(control)
control.destroy()
}
+
+ SignalSpy {
+ id: pressAndHoldSpy
+ signalName: "pressAndHold"
+ }
+
+ function test_pressAndHold() {
+ var control = textField.createObject(testCase)
+ control.width = 200
+ pressAndHoldSpy.target = control
+
+ mouseClick(control)
+ compare(pressAndHoldSpy.count, 0)
+ var interval = Qt.styleHints.mousePressAndHoldInterval
+
+ // Short press duration => nothing happens
+ mousePress(control)
+ wait(interval * 0.3)
+ mouseRelease(control)
+ compare(pressAndHoldSpy.count, 0)
+
+ // Long enough press duration => signal emitted
+ mousePress(control, 10, 10)
+ // Add 10% extra time to allow the control to
+ // receive the timer event before we come back here
+ wait(interval * 1.1)
+ compare(pressAndHoldSpy.count, 1)
+ mouseRelease(control)
+ compare(pressAndHoldSpy.count, 1)
+
+ // Long enough, but move in between => nothing happens
+ pressAndHoldSpy.clear()
+ mousePress(control)
+ wait(interval * 0.6)
+ mouseMove(control, 5, 5, Qt.LeftButton)
+ wait(interval * 0.6)
+ compare(pressAndHoldSpy.count, 0)
+ mouseRelease(control)
+ compare(pressAndHoldSpy.count, 0)
+
+ // Long enough, but 2nd press in between => nothing happens
+ pressAndHoldSpy.clear()
+ mousePress(control, 10, 10)
+ wait(interval * 0.6)
+ mousePress(control, 10, 10, Qt.RightButton)
+ wait(interval * 0.6)
+ compare(pressAndHoldSpy.count, 0)
+ mouseRelease(control, 10, 10, Qt.LeftButton|Qt.RightButton)
+ compare(pressAndHoldSpy.count, 0)
+
+ control.destroy()
+ }
}