tor-browser

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

pointerevent_pointerrawupdate_coalesced_events_attributes.https.html (3154B)


      1 <!doctype html>
      2 <html>
      3 <head>
      4 <meta charset="utf-8">
      5 <meta name="variant" content="?mouse">
      6 <meta name="variant" content="?touch">
      7 <meta name="variant" content="?pen">
      8 <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
      9 <title>Simple test for getCoalescedEvents() of `pointerrawupdate`</title>
     10 <script src="/resources/testharness.js"></script>
     11 <script src="/resources/testharnessreport.js"></script>
     12 <script src="/resources/testdriver.js"></script>
     13 <script src="/resources/testdriver-actions.js"></script>
     14 <script src="/resources/testdriver-vendor.js"></script>
     15 <style>
     16 div#target {
     17  width: 100px;
     18  height: 100px;
     19 }
     20 </style>
     21 <script>
     22 "use strict";
     23 
     24 addEventListener("load", () => {
     25  promise_test(async () => {
     26    const target = document.getElementById("target");
     27    const compAttrs = [
     28      "target",
     29      "screenX", "screenY",
     30      "clientX", "clientY",
     31      "button", "buttons",
     32      "pointerId", "pointerType",
     33      "shiftKey", "ctrlKey", "altKey", "metaKey",
     34    ];
     35    const waitForAssert = new Promise(resolve => {
     36      target.addEventListener("pointerrawupdate", pointerRawUpdateEvent => {
     37        const coalescedEvents = pointerRawUpdateEvent.getCoalescedEvents();
     38        test(() => {
     39          assert_equals(coalescedEvents.length, 1);
     40        }, "getCoalescedEvents() of pointerrawupdate should return one event");
     41        const coalescedRawEvent = coalescedEvents[0];
     42        test(() => {
     43          assert_equals(coalescedRawEvent.type, "pointerrawupdate");
     44        }, 'type should be "pointerrawupdate"');
     45        test(() => {
     46          assert_true(coalescedRawEvent.isTrusted);
     47        }, "isTrusted should be true");
     48        test(() => {
     49          assert_false(coalescedRawEvent.bubbles);
     50        }, "bubbles should be false");
     51        test(() => {
     52          assert_false(coalescedRawEvent.cancelable);
     53        }, "cancelable should be false");
     54        for (const attr of compAttrs) {
     55          test(() => {
     56            assert_equals(coalescedRawEvent[attr], pointerRawUpdateEvent[attr]);
     57          }, `${attr} should be same as the pointerrawupdate event`);
     58        }
     59        target.addEventListener("pointermove", pointerMoveEvent => {
     60          const firstCoalescedMoveEvent = pointerMoveEvent.getCoalescedEvents()[0];
     61          for (const attr of compAttrs) {
     62            test(() => {
     63              assert_equals(coalescedRawEvent[attr], firstCoalescedMoveEvent[attr]);
     64            }, `${attr} should be same as the corresponding pointermove event`);
     65          }
     66          resolve();
     67        }, {once: true});
     68      }, {once: true});
     69    });
     70    const shiftKey = "\uE008";
     71    await new test_driver.Actions()
     72        .addPointer("TestPointer", location.search.substring(1))
     73        .pointerMove(0, 0, {origin: document.getElementById("init")})
     74        .keyDown(shiftKey)
     75        .pointerMove(0, 0, {origin: target})
     76        .pointerDown()
     77        .pointerMove(1, 1, {origin: target})
     78        .pointerUp()
     79        .keyUp(shiftKey)
     80        .send();
     81    await waitForAssert;
     82  });
     83 }, {once: true});
     84 </script>
     85 </head>
     86 <body>
     87 <div id="init">start</div>
     88 <div id="target"></div>
     89 </body>
     90 </html>