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>