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