trisquel-icecat/icecat/testing/web-platform/tests/selection/Selection-direction-on-clicks.tentative.html
2025-10-06 02:35:48 -06:00

78 lines
2.7 KiB
HTML

<!DOCTYPE html>
<html>
<body>
<meta name="author" title="Sean Feng" href="mailto:sean@seanfeng.dev">
<meta name="assert" content="Selection on clicks: direction should return none, forwad, or backward">
<link rel="help" href="https://w3c.github.io/selection-api/#dom-selection-direction">
<link rel="help" href="https://github.com/w3c/selection-api/issues/177">
<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>
<div id="container"></div>
<script>
// Note: This test should remain tentative until Selection API issue 177 is
// resolved and direction for clicks are specified.
promise_test(async () => {
container.innerHTML = 'hello, world';
const doubleClick = new test_driver.Actions()
.pointerMove(0, 0, container.firstChild)
.pointerDown()
.pointerUp()
.pointerDown()
.pointerUp()
.send();
await doubleClick;
const sel = getSelection();
assert_equals(sel.anchorNode, container.firstChild);
assert_equals(sel.anchorOffset, 0);
assert_equals(sel.focusNode, container.firstChild);
assert_equals(sel.focusOffset, 5); // hello
assert_equals(sel.direction, 'none');
}, 'direction returns "none" when there is a double click selection(directionless)');
promise_test(async () => {
container.innerHTML = 'hello, world';
const tripleClick = new test_driver.Actions()
.pointerMove(0, 0, container.firstChild)
.pointerDown()
.pointerUp()
.pointerDown()
.pointerUp()
.pointerDown()
.pointerUp()
.send();
await tripleClick;
const sel = getSelection();
assert_equals(sel.anchorNode, container);
assert_equals(sel.anchorOffset, 0);
assert_equals(sel.focusNode, container);
assert_equals(sel.focusOffset, 1);
assert_equals(sel.direction, 'none');
}, 'direction returns "none" when there is a triple click selection(directionless)');
promise_test(async () => {
container.innerHTML = 'hello, world';
const click = new test_driver.Actions()
.pointerMove(0, 0, container.firstChild)
.pointerDown()
.pointerUp()
.send();
await click;
const sel = getSelection();
assert_equals(sel.anchorNode, container.firstChild);
assert_equals(sel.anchorOffset, 0);
assert_equals(sel.focusNode, container.firstChild);
assert_equals(sel.focusOffset, 0);
assert_true(sel.isCollapsed);
assert_equals(sel.direction, 'none');
}, 'direction returns "none" when the selection is collapsed');
</script>
</body>
</html>