aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Arve Sæther <jan-arve.saether@qt.io>2021-09-14 12:55:35 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-09-22 07:59:58 +0000
commit38d6db3aac72554918069cce7dfaf09c4fe7c017 (patch)
tree3c6244156811d7cd7202e26335cd87cf69a2ad6c
parent830d17ca45ce6dde0c77d61f10864e5a00888f25 (diff)
Fix ScrollBar::test_snapMode_mouse() autotest
It assumed the travel range of the handle was the whole width of the ScrollBar control. But this is not the case for e.g. native Windows style, since it has decrease/increase arrow buttons on each side of the groove. Task-number: QTBUG-95679 Change-Id: I5edc7410d20e409f11c216515560f5edf902d901 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit b621988d76203ff42fdd70d7ab58d8c345d8a3ad) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--tests/auto/quickcontrols2/controls/data/tst_scrollbar.qml20
-rw-r--r--tests/auto/quickcontrols2/controls/windows/BLACKLIST12
2 files changed, 13 insertions, 19 deletions
diff --git a/tests/auto/quickcontrols2/controls/data/tst_scrollbar.qml b/tests/auto/quickcontrols2/controls/data/tst_scrollbar.qml
index 9681f4e1ce..86be8cee84 100644
--- a/tests/auto/quickcontrols2/controls/data/tst_scrollbar.qml
+++ b/tests/auto/quickcontrols2/controls/data/tst_scrollbar.qml
@@ -594,6 +594,9 @@ TestCase {
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)
+ // In case the slider is surrounded with decrease/increase buttons
+ // Adjust slider width so that slider area is a whole number (to avoid rounding errors)
+ control.width += control.leftPadding + control.rightPadding
function snappedPosition(pos) {
var effectiveStep = control.stepSize * (1.0 - control.size)
@@ -604,10 +607,13 @@ TestCase {
return Math.max(0, Math.min(pos, 1.0 - control.size))
}
- mousePress(control, 0, 0)
+ var minHandlePos = control.leftPadding
+ var maxHandlePos = control.width - control.rightPadding
+ var availableSlideWidth = maxHandlePos - minHandlePos
+ mousePress(control, minHandlePos, 0)
compare(control.position, 0)
- mouseMove(control, control.width * 0.3, 0)
+ mouseMove(control, minHandlePos + availableSlideWidth * 0.3, 0)
var expectedMovePos = 0.3
if (control.snapMode === ScrollBar.SnapAlways) {
expectedMovePos = snappedPosition(expectedMovePos)
@@ -615,7 +621,7 @@ TestCase {
}
compare(control.position, expectedMovePos)
- mouseRelease(control, control.width * 0.75, 0)
+ mouseRelease(control, minHandlePos + availableSlideWidth * 0.75, 0)
var expectedReleasePos = 0.75
if (control.snapMode !== ScrollBar.NoSnap) {
expectedReleasePos = snappedPosition(expectedReleasePos)
@@ -624,14 +630,14 @@ TestCase {
compare(control.position, expectedReleasePos)
control.position = 0
- mousePress(control, 0, 0)
+ mousePress(control, minHandlePos, 0)
var steps = 0
var prevPos = 0
- for (var x = 0; x < control.width; ++x) {
+ for (var x = minHandlePos; x < maxHandlePos; ++x) {
mouseMove(control, x, 0)
- expectedMovePos = boundPosition(x / control.width)
+ expectedMovePos = boundPosition((x - minHandlePos) / availableSlideWidth)
if (control.snapMode === ScrollBar.SnapAlways)
expectedMovePos = snappedPosition(expectedMovePos)
compare(control.position, expectedMovePos)
@@ -642,7 +648,7 @@ TestCase {
}
compare(steps, data.steps)
- mouseRelease(control, control.width - 1, 0)
+ mouseRelease(control, maxHandlePos - 1, 0)
}
function test_snapMode_touch_data() {
diff --git a/tests/auto/quickcontrols2/controls/windows/BLACKLIST b/tests/auto/quickcontrols2/controls/windows/BLACKLIST
index a1338bf2b7..a70d953e7a 100644
--- a/tests/auto/quickcontrols2/controls/windows/BLACKLIST
+++ b/tests/auto/quickcontrols2/controls/windows/BLACKLIST
@@ -31,18 +31,6 @@
*
[ScrollBar::test_policy]
*
-[ScrollBar::test_snapMode_mouse:NoSnap]
-*
-[ScrollBar::test_snapMode_mouse:NoSnap2]
-*
-[ScrollBar::test_snapMode_mouse:SnapAlways]
-*
-[ScrollBar::test_snapMode_mouse:SnapAlways2]
-*
-[ScrollBar::test_snapMode_mouse:SnapOnRelease]
-*
-[ScrollBar::test_snapMode_mouse:SnapOnRelease2]
-*
[ScrollBar::test_touch:horizontal]
*
[ScrollBar::test_touch:vertical]