pointerevent_mouse-pointer-preventdefault-passive.html (2691B)
1 <!DOCTYPE HTML> 2 <title>Canceling passive pointerevents does not affect compat mouseevents</title> 3 <script src="/resources/testharness.js"></script> 4 <script src="/resources/testharnessreport.js"></script> 5 <script src="/resources/testdriver.js"></script> 6 <script src="/resources/testdriver-vendor.js"></script> 7 <script src="/resources/testdriver-actions.js"></script> 8 <script src="../pointerevent_support.js"></script> 9 <style> 10 div { 11 margin: 20px; 12 padding: 20px; 13 background-color: green; 14 user-select: none; // Prevents text selection on drag. 15 } 16 </style> 17 <div id="logger" draggable="false"></div> 18 <div id="done"></div> 19 20 <script> 21 'use strict'; 22 23 const logger = document.getElementById("logger"); 24 const done = document.getElementById("done"); 25 26 let received_events = []; 27 28 const logged_pointer_events = ["pointerdown", "pointermove", "pointerup", 29 "pointerenter", "pointerleave", "pointerover", "pointerout"]; 30 const logged_mouse_events = ["mousedown", "mousemove", "mouseup", 31 "mouseenter", "mouseleave", "mouseover", "mouseout"]; 32 33 const expected_pointer_events = [ 34 "pointerover", "pointerenter", 35 "pointermove", "pointerdown", "pointermove", "pointerup", 36 "pointerout", "pointerleave" 37 ]; 38 39 const expected_mouse_events = [ 40 "mouseover", "mouseenter", 41 "mousemove", "mousedown", "mousemove", "mouseup", 42 "mouseout", "mouseleave" 43 ]; 44 45 logged_pointer_events.forEach(ename => logger.addEventListener(ename, e => { 46 received_events.push(e.type); 47 e.preventDefault(); 48 }, { passive: true })); 49 50 logged_mouse_events.forEach(ename => logger.addEventListener(ename, e => 51 received_events.push(e.type))); 52 53 promise_test(async () => { 54 received_events = []; 55 56 let click_on_done = getEvent("click", done); 57 58 let actions = new test_driver.Actions() 59 // Start outside all event listeners 60 .pointerMove(0, 0) 61 .pointerDown() 62 .pointerUp() 63 // Drag within "logger" 64 .pointerMove(0, 0, { origin: logger }) 65 .pointerDown() 66 .pointerMove(15, 15, { origin: logger }) 67 .pointerUp() 68 // Click "done" 69 .pointerMove(0, 0, { origin: done }) 70 .pointerDown() 71 .pointerUp() 72 .send(); 73 74 await actions; 75 await click_on_done; 76 77 assert_array_equals(received_events.filter(isPointerEvent), 78 expected_pointer_events, "expected pointer events"); 79 assert_array_equals(received_events.filter(isMouseEvent), 80 expected_mouse_events, "expected mouse events"); 81 assert_true(arePointerEventsBeforeCompatMouseEvents(received_events), 82 "pairing of pointer/mouse events"); 83 }, "Canceling passive pointerevents does not affect compat mouseevents"); 84 </script>