tor-browser

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

pointerevent_mouse-pointer-updown-events.html (2776B)


      1 <!DOCTYPE HTML>
      2 <script src="/resources/testharness.js"></script>
      3 <script src="/resources/testharnessreport.js"></script>
      4 <script src="/resources/testdriver.js"></script>
      5 <script src="/resources/testdriver-vendor.js"></script>
      6 <script src="/resources/testdriver-actions.js"></script>
      7 <script type="text/javascript" src="../pointerevent_support.js"></script>
      8 <style>
      9 div.box {
     10  margin: 10px;
     11  padding: 50px;
     12  float: left;
     13 }
     14 </style>
     15 <h1>Verifies that pointerup/down are fired correctly for corresponding mouse events</h1>
     16 <div id="lightgreen" class="box" style="background-color:lightgreen">
     17  <div id="green" class="box" style="background-color:green">
     18  </div>
     19 </div>
     20 
     21 <div id="console"></div>
     22 
     23 <script>
     24 var eventsReceived = [];
     25 function init() {
     26  var eventList = ["mousedown", "mouseup", "pointerdown", "pointerup"];
     27 
     28  ["green", "lightgreen"].forEach(function(id) {
     29    var targetDiv = document.getElementById(id);
     30 
     31    eventList.forEach(function(eventName) {
     32      targetDiv.addEventListener(eventName, function(event) {
     33        eventsReceived.push(`${event.type}@${id}`);
     34      });
     35    });
     36  });
     37 }
     38 
     39 function performActions() {
     40  var rect = document.getElementById("green").getBoundingClientRect();
     41  var x1 = Math.ceil(rect.left + 5);
     42  var y1 = Math.ceil(rect.top + 5);
     43 
     44  var rect = document.getElementById("lightgreen").getBoundingClientRect();
     45  var x2 = Math.ceil(rect.left + 5);
     46  var y2 = Math.ceil(rect.top + 5);
     47 
     48  return new test_driver.Actions()
     49            .pointerMove(x1, y1)
     50            .pointerDown()
     51            .pointerUp()
     52            .pointerDown()
     53 
     54            .pointerMove(x2, y2)
     55            .pointerUp()
     56            .pointerDown()
     57 
     58            .pointerMove(x1, y1)
     59            .pointerUp()
     60            .send()
     61            .then(()=>resolveWhen(()=>eventsExpected.length === eventsReceived.length));
     62 }
     63 var eventsExpected = ["pointerdown@green", "pointerdown@lightgreen",
     64              "mousedown@green", "mousedown@lightgreen",
     65              "pointerup@green", "pointerup@lightgreen",
     66              "mouseup@green", "mouseup@lightgreen",
     67              "pointerdown@green", "pointerdown@lightgreen",
     68              "mousedown@green", "mousedown@lightgreen",
     69              "pointerup@lightgreen", "mouseup@lightgreen",
     70              "pointerdown@lightgreen", "mousedown@lightgreen",
     71              "pointerup@green", "pointerup@lightgreen",
     72              "mouseup@green", "mouseup@lightgreen"];
     73 function runTests(){
     74  promise_test((test) => {
     75    return new Promise(async (resolve)=>{
     76      await performActions();
     77      test.step(()=>{
     78        assert_array_equals(eventsExpected, eventsReceived);
     79      });
     80      resolve();
     81    });
     82  }, "pointerup/down events are fired correctly for corresponding mouse events");
     83 }
     84 
     85 init();
     86 runTests();
     87 </script>