OLD | NEW |
(Empty) | |
| 1 <!doctype html> |
| 2 <title>Event propagation tests</title> |
| 3 <link rel=author title="Aryeh Gregor" href=ayg@aryeh.name> |
| 4 <div id=log></div> |
| 5 <script src=../../../../resources/testharness.js></script> |
| 6 <script src=../../../../resources/testharnessreport.js></script> |
| 7 <script> |
| 8 "use strict"; |
| 9 |
| 10 function testPropagationFlag(ev, expected, desc) { |
| 11 test(function() { |
| 12 var called = false; |
| 13 var callback = function() { called = true }; |
| 14 document.head.addEventListener("foo", callback); |
| 15 document.head.dispatchEvent(ev); |
| 16 // Gecko resets the flags after dispatching; it will happily dispatch |
| 17 // the event the second time around. |
| 18 document.head.dispatchEvent(ev); |
| 19 assert_equals(called, expected, "Propagation flag"); |
| 20 document.head.removeEventListener("foo", callback); |
| 21 }, desc); |
| 22 } |
| 23 |
| 24 var ev = document.createEvent("Event"); |
| 25 ev.initEvent("foo", true, false); |
| 26 testPropagationFlag(ev, true, "Newly-created Event"); |
| 27 ev.stopPropagation(); |
| 28 testPropagationFlag(ev, false, "After stopPropagation()"); |
| 29 ev.initEvent("foo", true, false); |
| 30 testPropagationFlag(ev, true, "Reinitialized after stopPropagation()"); |
| 31 |
| 32 var ev = document.createEvent("Event"); |
| 33 ev.initEvent("foo", true, false); |
| 34 ev.stopImmediatePropagation(); |
| 35 testPropagationFlag(ev, false, "After stopImmediatePropagation()"); |
| 36 ev.initEvent("foo", true, false); |
| 37 testPropagationFlag(ev, true, "Reinitialized after stopImmediatePropagation()"); |
| 38 </script> |
OLD | NEW |