Event-dispatch-order-at-target.html (1061B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <title>Listeners are invoked in correct order (AT_TARGET phase)</title> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <div id="log"></div> 7 <script> 8 "use strict"; 9 10 test(() => { 11 const el = document.createElement("div"); 12 const expectedOrder = ["capturing", "bubbling"]; 13 14 let actualOrder = []; 15 el.addEventListener("click", evt => { 16 assert_equals(evt.eventPhase, Event.AT_TARGET); 17 actualOrder.push("bubbling"); 18 }, false); 19 el.addEventListener("click", evt => { 20 assert_equals(evt.eventPhase, Event.AT_TARGET); 21 actualOrder.push("capturing"); 22 }, true); 23 24 el.dispatchEvent(new Event("click", {bubbles: true})); 25 assert_array_equals(actualOrder, expectedOrder, "bubbles: true"); 26 27 actualOrder = []; 28 el.dispatchEvent(new Event("click", {bubbles: false})); 29 assert_array_equals(actualOrder, expectedOrder, "bubbles: false"); 30 }, "Listeners are invoked in correct order (AT_TARGET phase)"); 31 </script>