diff options
author | Jan Arve Sæther <jan-arve.saether@qt.io> | 2021-09-14 12:55:35 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-09-22 07:59:58 +0000 |
commit | 38d6db3aac72554918069cce7dfaf09c4fe7c017 (patch) | |
tree | 3c6244156811d7cd7202e26335cd87cf69a2ad6c | |
parent | 830d17ca45ce6dde0c77d61f10864e5a00888f25 (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.qml | 20 | ||||
-rw-r--r-- | tests/auto/quickcontrols2/controls/windows/BLACKLIST | 12 |
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] |