aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/controls/data/tst_scrollbar.qml
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/controls/data/tst_scrollbar.qml')
-rw-r--r--tests/auto/controls/data/tst_scrollbar.qml101
1 files changed, 79 insertions, 22 deletions
diff --git a/tests/auto/controls/data/tst_scrollbar.qml b/tests/auto/controls/data/tst_scrollbar.qml
index 92fe8496..8727b6da 100644
--- a/tests/auto/controls/data/tst_scrollbar.qml
+++ b/tests/auto/controls/data/tst_scrollbar.qml
@@ -40,7 +40,7 @@
import QtQuick 2.2
import QtTest 1.0
-import QtQuick.Controls 2.1
+import QtQuick.Controls 2.2
TestCase {
id: testCase
@@ -73,7 +73,7 @@ TestCase {
}
function test_attach() {
- var container = flickable.createObject(testCase)
+ var container = createTemporaryObject(flickable, testCase)
verify(container)
waitForRendering(container)
@@ -105,7 +105,7 @@ TestCase {
container.width += 10
compare(vertical.x, 123)
- var horizontal = scrollBar.createObject()
+ var horizontal = createTemporaryObject(scrollBar, null)
verify(!horizontal.parent)
compare(horizontal.size, 0.0)
compare(horizontal.position, 0.0)
@@ -170,8 +170,6 @@ TestCase {
container.width += 10
compare(horizontal.x, oldX - 10)
compare(horizontal.width, oldWidth)
-
- container.destroy()
}
function test_mouse_data() {
@@ -182,7 +180,7 @@ TestCase {
}
function test_mouse(data) {
- var control = scrollBar.createObject(testCase, data.properties)
+ var control = createTemporaryObject(scrollBar, testCase, data.properties)
verify(control)
var pressedSpy = signalSpy.createObject(control, {target: control, signalName: "pressedChanged"})
@@ -227,8 +225,6 @@ TestCase {
compare(pressedSpy.count, 4)
compare(control.pressed, false)
compare(control.position, 0.25)
-
- control.destroy()
}
function test_increase_decrease_data() {
@@ -241,7 +237,7 @@ TestCase {
}
function test_increase_decrease(data) {
- var control = scrollBar.createObject(testCase, {position: 0.5, active: data.active})
+ var control = createTemporaryObject(scrollBar, testCase, {position: 0.5, active: data.active})
verify(control)
if (data.increase) {
@@ -252,8 +248,6 @@ TestCase {
compare(control.position, 0.4)
}
compare(control.active, data.active)
-
- control.destroy()
}
function test_stepSize_data() {
@@ -265,7 +259,7 @@ TestCase {
}
function test_stepSize(data) {
- var control = scrollBar.createObject(testCase, {stepSize: data.stepSize})
+ var control = createTemporaryObject(scrollBar, testCase, {stepSize: data.stepSize})
verify(control)
compare(control.stepSize, data.stepSize)
@@ -290,8 +284,6 @@ TestCase {
}
control.decrease()
compare(control.position, 0.0)
-
- control.destroy()
}
function test_padding_data() {
@@ -302,14 +294,12 @@ TestCase {
}
function test_padding(data) {
- var control = scrollBar.createObject(testCase, data.properties)
+ var control = createTemporaryObject(scrollBar, testCase, data.properties)
mousePress(control, control.leftPadding + control.availableWidth * 0.5, control.topPadding + control.availableHeight * 0.5, Qt.LeftButton)
mouseRelease(control, control.leftPadding + control.availableWidth * 0.5, control.topPadding + control.availableHeight * 0.5, Qt.LeftButton)
compare(control.position, 0.5)
-
- control.destroy()
}
function test_warning() {
@@ -318,7 +308,7 @@ TestCase {
}
function test_mirrored() {
- var container = flickable.createObject(testCase)
+ var container = createTemporaryObject(flickable, testCase)
verify(container)
waitForRendering(container)
@@ -326,8 +316,6 @@ TestCase {
compare(container.ScrollBar.vertical.x, container.width - container.ScrollBar.vertical.width)
container.ScrollBar.vertical.locale = Qt.locale("ar_EG")
compare(container.ScrollBar.vertical.x, 0)
-
- container.destroy()
}
function test_hover_data() {
@@ -338,7 +326,7 @@ TestCase {
}
function test_hover(data) {
- var control = scrollBar.createObject(testCase, {hoverEnabled: data.hoverEnabled})
+ var control = createTemporaryObject(scrollBar, testCase, {hoverEnabled: data.hoverEnabled})
verify(control)
compare(control.hovered, false)
@@ -350,7 +338,76 @@ TestCase {
mouseMove(control, -1, -1)
compare(control.hovered, false)
compare(control.active, false)
+ }
+
+ function test_snapMode_data() {
+ return [
+ { tag: "NoSnap", snapMode: ScrollBar.NoSnap, stepSize: 0.1, size: 0.2, width: 100, steps: 80 }, /* 0.8*100 */
+ { tag: "NoSnap2", snapMode: ScrollBar.NoSnap, stepSize: 0.2, size: 0.1, width: 200, steps: 180 }, /* 0.9*200 */
+
+ { tag: "SnapAlways", snapMode: ScrollBar.SnapAlways, stepSize: 0.1, size: 0.2, width: 100, steps: 10 },
+ { tag: "SnapAlways2", snapMode: ScrollBar.SnapAlways, stepSize: 0.2, size: 0.1, width: 200, steps: 5 },
+
+ { tag: "SnapOnRelease", snapMode: ScrollBar.SnapOnRelease, stepSize: 0.1, size: 0.2, width: 100, steps: 80 }, /* 0.8*100 */
+ { tag: "SnapOnRelease2", snapMode: ScrollBar.SnapOnRelease, stepSize: 0.2, size: 0.1, width: 200, steps: 180 }, /* 0.9*200 */
+ ]
+ }
+
+ function test_snapMode_mouse_data() {
+ return test_snapMode_data()
+ }
+
+ function test_snapMode_mouse(data) {
+ var control = createTemporaryObject(scrollBar, testCase, {snapMode: data.snapMode, orientation: Qt.Horizontal, stepSize: data.stepSize, size: data.size, width: data.width})
+ verify(control)
+
+ function snappedPosition(pos) {
+ var effectiveStep = control.stepSize * (1.0 - control.size)
+ return Math.round(pos / effectiveStep) * effectiveStep
+ }
+
+ function boundPosition(pos) {
+ return Math.max(0, Math.min(pos, 1.0 - control.size))
+ }
+
+ mousePress(control, 0, 0)
+ compare(control.position, 0)
+
+ mouseMove(control, control.width * 0.3, 0)
+ var expectedMovePos = 0.3
+ if (control.snapMode === ScrollBar.SnapAlways) {
+ expectedMovePos = snappedPosition(expectedMovePos)
+ verify(expectedMovePos !== 0.3)
+ }
+ compare(control.position, expectedMovePos)
+
+ mouseRelease(control, control.width * 0.75, 0)
+ var expectedReleasePos = 0.75
+ if (control.snapMode !== ScrollBar.NoSnap) {
+ expectedReleasePos = snappedPosition(expectedReleasePos)
+ verify(expectedReleasePos !== 0.75)
+ }
+ compare(control.position, expectedReleasePos)
+
+ control.position = 0
+ mousePress(control, 0, 0)
+
+ var steps = 0
+ var prevPos = 0
+
+ for (var x = 0; x < control.width; ++x) {
+ mouseMove(control, x, 0)
+ expectedMovePos = boundPosition(x / control.width)
+ if (control.snapMode === ScrollBar.SnapAlways)
+ expectedMovePos = snappedPosition(expectedMovePos)
+ compare(control.position, expectedMovePos)
+
+ if (control.position !== prevPos)
+ ++steps
+ prevPos = control.position
+ }
+ compare(steps, data.steps)
- control.destroy()
+ mouseRelease(control, control.width - 1, 0)
}
}