diff options
Diffstat (limited to 'testing/web-platform/tests/pointerevents/mouse-pointer-boundary-events-for-shadowdom.html')
-rw-r--r-- | testing/web-platform/tests/pointerevents/mouse-pointer-boundary-events-for-shadowdom.html | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/testing/web-platform/tests/pointerevents/mouse-pointer-boundary-events-for-shadowdom.html b/testing/web-platform/tests/pointerevents/mouse-pointer-boundary-events-for-shadowdom.html new file mode 100644 index 0000000000..ea200d6c96 --- /dev/null +++ b/testing/web-platform/tests/pointerevents/mouse-pointer-boundary-events-for-shadowdom.html @@ -0,0 +1,74 @@ +<!DOCTYPE HTML> +<meta name="viewport" content="width=device-width"> +<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 type="text/javascript" src="pointerevent_support.js"></script> + +<h1>PointerEvent: Verifies that mouse boundary events don't point to shadow-dom</h1> + +<input id="target" style="margin: 20px"> + +<script> +function name(node) { + return node? node.tagName : "(null)"; +} + +promise_test(async () => { + var targetEvents = ["mouseout", "pointerout", "mouseover", "pointerover"]; + var receivedEvents = []; + var moveReceived = false; + + + targetEvents.forEach(function(eventName) { + window.addEventListener(eventName, function(e) { + var eventDetails = e.type + + " target=" + name(e.target) + + " relatedTarget=" + name(e.relatedTarget); + receivedEvents.push(eventDetails); + }); + }); + window.addEventListener('pointermove', () => { moveReceived = true; }); + var rect = document.getElementById("target").getBoundingClientRect(); + + await new test_driver.Actions() + .addPointer("default-mouse") + .pointerMove(Math.ceil(rect.left - 10), Math.ceil(rect.top - 10)) + .send() + await resolveWhen(() => { return moveReceived == true }); + receivedEvents = []; + moveReceived = false; + + await new test_driver.Actions() + .addPointer("default-mouse") + .pointerMove(Math.ceil(rect.left + 10), Math.ceil(rect.top + 10)) + .send() + await resolveWhen(() => { return moveReceived == true }); + + assert_array_equals(receivedEvents, [ + "pointerout target=BODY relatedTarget=INPUT", + "pointerover target=INPUT relatedTarget=BODY", + "mouseout target=BODY relatedTarget=INPUT", + "mouseover target=INPUT relatedTarget=BODY", + ], "Moved into <input>"); + + + receivedEvents = []; + moveReceived = false; + + await new test_driver.Actions() + .addPointer("default-mouse") + .pointerMove(Math.ceil(rect.left - 10), Math.ceil(rect.top - 10)) + .send() + await resolveWhen(() => { return moveReceived == true }); + + assert_array_equals(receivedEvents, [ + "pointerout target=INPUT relatedTarget=BODY", + "pointerover target=BODY relatedTarget=INPUT", + "mouseout target=INPUT relatedTarget=BODY", + "mouseover target=BODY relatedTarget=INPUT", + ], "Moved out of <input>"); +}, "PointerEvent: Verifies that mouse boundary events don't point to shadow-dom"); +</script> |