diff options
Diffstat (limited to 'testing/web-platform/tests/uievents/mouse/mousemove_prevent_default_action.tentative.html')
-rw-r--r-- | testing/web-platform/tests/uievents/mouse/mousemove_prevent_default_action.tentative.html | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/testing/web-platform/tests/uievents/mouse/mousemove_prevent_default_action.tentative.html b/testing/web-platform/tests/uievents/mouse/mousemove_prevent_default_action.tentative.html new file mode 100644 index 0000000000..4caf98087f --- /dev/null +++ b/testing/web-platform/tests/uievents/mouse/mousemove_prevent_default_action.tentative.html @@ -0,0 +1,98 @@ +<!doctype html> +<meta charset=utf-8> +<title>mousemove event: preventDefault()</title> +<link rel="author" title="Mirko Brodesser" href="mailto:mbrodesser@mozilla.com"> +<link rel="help" href="https://github.com/w3c/uievents/issues/278"> +<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> +<script src=resources/utils.js></script> + +<body> + <div id="a">div a</div> + <div id="b">div b</div> + <div id="c" draggable="true">div c</div> +</body> + +<script> + 'use strict'; + + let event_log = []; + + function logEvents(e) { + event_log.push(e.type); + } + + function initialize(test) { + // Deliberately avoiding mouseup here because the last selectionchange + // may be fired before or after the mouseup. + addTestScopedListener(document, "mousedown", logEvents, test); + addTestScopedListener(document, "mousemove", e => e.preventDefault(), test); + event_log = []; + } + + promise_test(async test => { + initialize(test); + addTestScopedListener(document, "selectionchange", logEvents, test); + + const a = document.getElementById("a"); + const b = document.getElementById("b"); + + let mouseup_promise = getEvent("mouseup", document); + + await new test_driver.Actions() + .pointerMove(0, 0, {origin: a}) + .pointerDown() + .addTick() + .addTick() + .pointerMove(0, 0, {origin: b}) + .addTick() + .addTick() + .pointerUp() + .send(); + + await mouseup_promise; + + const expected_events = ["mousedown", "selectionchange", "selectionchange"]; + + assert_equals(event_log.toString(), expected_events.toString(), + "received events"); + }, "selectionchange event firing when mousemove event is prevented"); + + promise_test(async test => { + initialize(test); + addTestScopedListener(document, 'dragstart', (event) => { + // For this test, it is enough to see the dragstart event. The event is + // cancelled here to suppress the actual drag operation because Blink's + // implementation of test_driver doesn't seem to be able to dispatch any + // event once the dragging is active. + event.preventDefault(); + logEvents(event); + }, test); + + const b = document.getElementById("b"); + const c = document.getElementById("c"); + + const mouseup_promise = getEvent('mouseup', document); + + await new test_driver.Actions() + .pointerMove(0, 0, {origin: c}) + .pointerDown() + .addTick() + .addTick() + .pointerMove(0, 0, {origin: b}) + .addTick() + .addTick() + .pointerUp() + .send(); + + await mouseup_promise; + + const expected_events = ["mousedown", "dragstart"]; + + assert_equals(event_log.toString(), expected_events.toString(), + "received events"); + }, "dragstart event firing when mousemove event is prevented"); +</script> |