diff options
Diffstat (limited to 'tests/auto/controls/data/tst_textfield.qml')
-rw-r--r-- | tests/auto/controls/data/tst_textfield.qml | 52 |
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() + } } |