tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

pointerup_after_pointerdown_target_removed.html (1832B)


      1 <!DOCTYPE HTML>
      2 <title>pointerup event fired after pointerdown target is removed</title>
      3 <meta name="variant" content="?mouse">
      4 <meta name="variant" content="?touch">
      5 <meta name="variant" content="?pen">
      6 <script src="/resources/testharness.js"></script>
      7 <script src="/resources/testharnessreport.js"></script>
      8 <script src="/resources/testdriver.js"></script>
      9 <script src="/resources/testdriver-actions.js"></script>
     10 <script src="/resources/testdriver-vendor.js"></script>
     11 <script src="pointerevent_support.js"></script>
     12 
     13 <style>
     14  div.target {
     15      width: 100px;
     16      height: 50px;
     17  }
     18 </style>
     19 <div class="target" id="parent">
     20  <div class="target" id="child">child</div>
     21 </div>
     22 <div id="done">done</div>
     23 
     24 <script>
     25  'use strict';
     26  const pointer_type = location.search.substring(1);
     27 
     28  const parent = document.getElementById("parent");
     29  const child = document.getElementById("child");
     30  const done = document.getElementById("done");
     31 
     32  let event_log = [];
     33 
     34  function logEvent(e) {
     35    event_log.push(`${e.type}(${e.eventPhase})`);
     36  }
     37 
     38  parent.addEventListener("pointerup", logEvent);
     39  parent.addEventListener("mouseup", logEvent);
     40  child.addEventListener("pointerdown", e => e.target.remove(), {once:true});
     41 
     42  promise_test(async () => {
     43    let done_click_promise = getEvent("click", done);
     44 
     45    let actions = new test_driver.Actions()
     46        .addPointer("TestPointer", pointer_type)
     47        .pointerMove(0, 0, {origin: parent})
     48        .pointerDown()
     49        .pointerUp()
     50        .pointerMove(0, 0, {origin: done})
     51        .pointerDown()
     52        .pointerUp();
     53 
     54    await actions.send();
     55    await done_click_promise;
     56 
     57    assert_equals(event_log.toString(),
     58        "pointerup(2),mouseup(2)",
     59        "received events");
     60  }, `pointerup event from ${pointer_type} fired after pointerdown target is removed`);
     61 </script>