summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/mozilla/tests/html/rendering/non-replaced-elements
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /testing/web-platform/mozilla/tests/html/rendering/non-replaced-elements
parentInitial commit. (diff)
downloadfirefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz
firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/mozilla/tests/html/rendering/non-replaced-elements')
-rw-r--r--testing/web-platform/mozilla/tests/html/rendering/non-replaced-elements/form-controls/range-snap-to-tick-marks-01.html59
-rw-r--r--testing/web-platform/mozilla/tests/html/rendering/non-replaced-elements/form-controls/range-snap-to-tick-marks-02.html41
-rw-r--r--testing/web-platform/mozilla/tests/html/rendering/non-replaced-elements/form-controls/range-snap-to-tick-marks-03.html45
3 files changed, 145 insertions, 0 deletions
diff --git a/testing/web-platform/mozilla/tests/html/rendering/non-replaced-elements/form-controls/range-snap-to-tick-marks-01.html b/testing/web-platform/mozilla/tests/html/rendering/non-replaced-elements/form-controls/range-snap-to-tick-marks-01.html
new file mode 100644
index 0000000000..ed59c3ae99
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/html/rendering/non-replaced-elements/form-controls/range-snap-to-tick-marks-01.html
@@ -0,0 +1,59 @@
+<!doctype html>
+<meta charset=utf-8>
+<meta name=viewport content=width=device-width>
+<title>Snap to a slider's tick marks by clicking near them</title>
+<link rel=help href="https://html.spec.whatwg.org/multipage/rendering.html#the-input-element-as-a-range-control">
+<link rel=help href="https://bugzilla.mozilla.org/show_bug.cgi?id=1803118">
+<link rel=author href="mailto:zach@zrhoffman.net" title="Zach Hoffman">
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=/resources/testdriver.js></script>
+<script src=/resources/testdriver-actions.js></script>
+<script src=/resources/testdriver-vendor.js></script>
+<input type=range list=tickmarks min=-5 max=35>
+<datalist id=tickmarks>
+ <option value=0></option>
+ <option value=3></option>
+</datalist>
+<script>
+ const range = document.querySelector("input[type=range]");
+ const step = 1;
+ promise_test(async function snapToTickMarks() {
+ const assertions = [[-3, "-3"], [-2, "0"], [1, "0"], [2, "3"], [5, "3"], [6, "6"]];
+ const rect = range.getBoundingClientRect();
+ const padding = 10;
+ const left = rect.left + padding;
+ const width = rect.width - 2 * padding;
+ const actions = new test_driver.Actions();
+ const min = parseInt(range.min);
+ const max = parseInt(range.max);
+ for (const assertion of assertions) {
+ const moveTo = (left + width * (assertion[0] - min) / (max - min)) | 0;
+ const expected = assertion[1];
+ await actions
+ .pointerMove(moveTo, rect.top)
+ .pointerDown()
+ .pointerUp()
+ .send();
+ assert_equals(range.value, expected);
+ }
+ });
+ promise_test(async function domDoesNotSnap() {
+ const startAt = -2;
+ range.value = startAt;
+ for (let expectedValue = startAt + 1; expectedValue <= 6; expectedValue++) {
+ range.stepUp();
+ assert_equals(parseInt(range.value), expectedValue);
+ }
+ });
+ promise_test(async function keyboardDoesNotSnap() {
+ const kArrowRight = "\uE014";
+ range.focus();
+ const startAt = -2;
+ range.value = startAt;
+ for (let expectedValue = startAt + 1; expectedValue <= 6; expectedValue++) {
+ await test_driver.send_keys(range, kArrowRight);
+ assert_equals(parseInt(range.value), expectedValue);
+ }
+ });
+</script>
diff --git a/testing/web-platform/mozilla/tests/html/rendering/non-replaced-elements/form-controls/range-snap-to-tick-marks-02.html b/testing/web-platform/mozilla/tests/html/rendering/non-replaced-elements/form-controls/range-snap-to-tick-marks-02.html
new file mode 100644
index 0000000000..061f34b3a7
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/html/rendering/non-replaced-elements/form-controls/range-snap-to-tick-marks-02.html
@@ -0,0 +1,41 @@
+<!doctype html>
+<meta charset=utf-8>
+<meta name=viewport content=width=device-width>
+<title>Snap to an RTL slider's tick marks by clicking near them</title>
+<link rel=help href="https://html.spec.whatwg.org/multipage/rendering.html#the-input-element-as-a-range-control">
+<link rel=help href="https://bugzilla.mozilla.org/show_bug.cgi?id=1803118">
+<link rel=author href="mailto:zach@zrhoffman.net" title="Zach Hoffman">
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=/resources/testdriver.js></script>
+<script src=/resources/testdriver-actions.js></script>
+<script src=/resources/testdriver-vendor.js></script>
+<input type=range list=tickmarks min=-5 max=35 dir=rtl>
+<datalist id=tickmarks>
+ <option value=0></option>
+ <option value=3></option>
+</datalist>
+<script>
+ const range = document.querySelector("input[type=range]");
+ const step = 1;
+ promise_test(async function snapToRTLTickMarks() {
+ const assertions = [[-3, "-3"], [-2, "0"], [1, "0"], [2, "3"], [5, "3"], [6, "6"]];
+ const rect = range.getBoundingClientRect();
+ const padding = 10;
+ const right = rect.right - padding;
+ const width = rect.width - 2 * padding;
+ const actions = new test_driver.Actions();
+ const min = parseInt(range.min);
+ const max = parseInt(range.max);
+ for (const assertion of assertions) {
+ const moveTo = (right - width * (assertion[0] - min) / (max - min)) | 0;
+ const expected = assertion[1];
+ await actions
+ .pointerMove(moveTo, rect.top)
+ .pointerDown()
+ .pointerUp()
+ .send();
+ assert_equals(range.value, expected);
+ }
+ });
+</script>
diff --git a/testing/web-platform/mozilla/tests/html/rendering/non-replaced-elements/form-controls/range-snap-to-tick-marks-03.html b/testing/web-platform/mozilla/tests/html/rendering/non-replaced-elements/form-controls/range-snap-to-tick-marks-03.html
new file mode 100644
index 0000000000..9ee80199e4
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/html/rendering/non-replaced-elements/form-controls/range-snap-to-tick-marks-03.html
@@ -0,0 +1,45 @@
+<!doctype html>
+<meta charset=utf-8>
+<meta name=viewport content=width=device-width>
+<title>Snap to a vertical slider's tick marks by clicking near them</title>
+<link rel=help href="https://html.spec.whatwg.org/multipage/rendering.html#the-input-element-as-a-range-control">
+<link rel=help href="https://bugzilla.mozilla.org/show_bug.cgi?id=1803118">
+<link rel=author href="mailto:zach@zrhoffman.net" title="Zach Hoffman">
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=/resources/testdriver.js></script>
+<script src=/resources/testdriver-actions.js></script>
+<script src=/resources/testdriver-vendor.js></script>
+<style>
+ input[type=range] {
+ writing-mode: vertical-lr;
+ }
+</style>
+<input type=range list=tickmarks min=-5 max=35>
+<datalist id=tickmarks>
+ <option value=0></option>
+ <option value=3></option>
+</datalist>
+<script>
+ const range = document.querySelector("input[type=range]");
+ promise_test(async function snapToVerticalTickMarks() {
+ const assertions = [[-3, "-3"], [-2, "0"], [1, "0"], [2, "3"], [5, "3"], [6, "6"]];
+ const rect = range.getBoundingClientRect();
+ const padding = 10;
+ const bottom = rect.bottom - padding;
+ const height = rect.height - 2 * padding;
+ const actions = new test_driver.Actions();
+ const min = parseInt(range.min);
+ const max = parseInt(range.max);
+ for (const assertion of assertions) {
+ const moveTo = (bottom - height * (assertion[0] - min) / (max - min)) | 0;
+ const expected = assertion[1];
+ await actions
+ .pointerMove(rect.left, moveTo)
+ .pointerDown()
+ .pointerUp()
+ .send();
+ assert_equals(range.value, expected);
+ }
+ });
+</script>