aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/controls/data/tst_textfield.qml
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/controls/data/tst_textfield.qml')
-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()
+ }
}