diff options
Diffstat (limited to '')
-rw-r--r-- | testing/web-platform/tests/pointerevents/pointerup_after_pointerdown_target_removed.html | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/testing/web-platform/tests/pointerevents/pointerup_after_pointerdown_target_removed.html b/testing/web-platform/tests/pointerevents/pointerup_after_pointerdown_target_removed.html new file mode 100644 index 0000000000..65c6ea314c --- /dev/null +++ b/testing/web-platform/tests/pointerevents/pointerup_after_pointerdown_target_removed.html @@ -0,0 +1,61 @@ +<!DOCTYPE HTML> +<title>pointerup event fired after pointerdown target is removed</title> +<meta name="variant" content="?mouse"> +<meta name="variant" content="?touch"> +<meta name="variant" content="?pen"> +<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="pointerevent_support.js"></script> + +<style> + div.target { + width: 100px; + height: 50px; + } +</style> +<div class="target" id="parent"> + <div class="target" id="child">child</div> +</div> +<div id="done">done</div> + +<script> + 'use strict'; + const pointer_type = location.search.substring(1); + + const parent = document.getElementById("parent"); + const child = document.getElementById("child"); + const done = document.getElementById("done"); + + let event_log = []; + + function logEvent(e) { + event_log.push(`${e.type}(${e.eventPhase})`); + } + + parent.addEventListener("pointerup", logEvent); + parent.addEventListener("mouseup", logEvent); + child.addEventListener("pointerdown", e => e.target.remove(), {once:true}); + + promise_test(async () => { + let done_click_promise = getEvent("click", done); + + let actions = new test_driver.Actions() + .addPointer("TestPointer", pointer_type) + .pointerMove(0, 0, {origin: parent}) + .pointerDown() + .pointerUp() + .pointerMove(0, 0, {origin: done}) + .pointerDown() + .pointerUp(); + + await actions.send(); + await done_click_promise; + + assert_equals(event_log.toString(), + "pointerup(2),mouseup(2)", + "received events"); + }, `pointerup event from ${pointer_type} fired after pointerdown target is removed`); +</script> |