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>