Index: third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/events/Event-propagation.html |
diff --git a/third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/events/Event-propagation.html b/third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/events/Event-propagation.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..15882ed11cafa0125dd578d73b4aabff3b5496d5 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/events/Event-propagation.html |
@@ -0,0 +1,38 @@ |
+<!doctype html> |
+<title>Event propagation tests</title> |
+<link rel=author title="Aryeh Gregor" href=ayg@aryeh.name> |
+<div id=log></div> |
+<script src=../../../../resources/testharness.js></script> |
+<script src=../../../../resources/testharnessreport.js></script> |
+<script> |
+"use strict"; |
+ |
+function testPropagationFlag(ev, expected, desc) { |
+ test(function() { |
+ var called = false; |
+ var callback = function() { called = true }; |
+ document.head.addEventListener("foo", callback); |
+ document.head.dispatchEvent(ev); |
+ // Gecko resets the flags after dispatching; it will happily dispatch |
+ // the event the second time around. |
+ document.head.dispatchEvent(ev); |
+ assert_equals(called, expected, "Propagation flag"); |
+ document.head.removeEventListener("foo", callback); |
+ }, desc); |
+} |
+ |
+var ev = document.createEvent("Event"); |
+ev.initEvent("foo", true, false); |
+testPropagationFlag(ev, true, "Newly-created Event"); |
+ev.stopPropagation(); |
+testPropagationFlag(ev, false, "After stopPropagation()"); |
+ev.initEvent("foo", true, false); |
+testPropagationFlag(ev, true, "Reinitialized after stopPropagation()"); |
+ |
+var ev = document.createEvent("Event"); |
+ev.initEvent("foo", true, false); |
+ev.stopImmediatePropagation(); |
+testPropagationFlag(ev, false, "After stopImmediatePropagation()"); |
+ev.initEvent("foo", true, false); |
+testPropagationFlag(ev, true, "Reinitialized after stopImmediatePropagation()"); |
+</script> |