aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/controls/data/tst_textarea.qml
diff options
context:
space:
mode:
authorGabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>2015-07-31 11:15:49 +0200
committerMitch Curtis <mitch.curtis@theqtcompany.com>2015-08-03 11:52:17 +0000
commit6a5abae266f20aed0bc5961cc0b4447d69599981 (patch)
tree5631ec08d2fa4e3fbc913e33e38a4ad794ed8bba /tests/auto/controls/data/tst_textarea.qml
parentbf7ea19f533fd7258bffb756080618168660ac8e (diff)
TextArea: Add pressAndHold signal
We factorize the feature code identical to TextField's into a helper class. Change-Id: I4496f2d192a023f6a6c03ed81d81bca4c08a59d0 Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
Diffstat (limited to 'tests/auto/controls/data/tst_textarea.qml')
-rw-r--r--tests/auto/controls/data/tst_textarea.qml52
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/auto/controls/data/tst_textarea.qml b/tests/auto/controls/data/tst_textarea.qml
index 9399c95f..adf3ff9f 100644
--- a/tests/auto/controls/data/tst_textarea.qml
+++ b/tests/auto/controls/data/tst_textarea.qml
@@ -60,4 +60,56 @@ TestCase {
verify(control)
control.destroy()
}
+
+ SignalSpy {
+ id: pressAndHoldSpy
+ signalName: "pressAndHold"
+ }
+
+ function test_pressAndHold() {
+ var control = textArea.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()
+ }
}