summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/dom/events/Event-dispatch-listener-order.window.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/dom/events/Event-dispatch-listener-order.window.js')
-rw-r--r--testing/web-platform/tests/dom/events/Event-dispatch-listener-order.window.js20
1 files changed, 20 insertions, 0 deletions
diff --git a/testing/web-platform/tests/dom/events/Event-dispatch-listener-order.window.js b/testing/web-platform/tests/dom/events/Event-dispatch-listener-order.window.js
new file mode 100644
index 0000000000..a01a472872
--- /dev/null
+++ b/testing/web-platform/tests/dom/events/Event-dispatch-listener-order.window.js
@@ -0,0 +1,20 @@
+test(t => {
+ const hostParent = document.createElement("section"),
+ host = hostParent.appendChild(document.createElement("div")),
+ shadowRoot = host.attachShadow({ mode: "closed" }),
+ targetParent = shadowRoot.appendChild(document.createElement("p")),
+ target = targetParent.appendChild(document.createElement("span")),
+ path = [hostParent, host, shadowRoot, targetParent, target],
+ expected = [],
+ result = [];
+ path.forEach((node, index) => {
+ expected.splice(index, 0, "capturing " + node.nodeName);
+ expected.splice(index + 1, 0, "bubbling " + node.nodeName);
+ });
+ path.forEach(node => {
+ node.addEventListener("test", () => { result.push("bubbling " + node.nodeName) });
+ node.addEventListener("test", () => { result.push("capturing " + node.nodeName) }, true);
+ });
+ target.dispatchEvent(new CustomEvent('test', { detail: {}, bubbles: true, composed: true }));
+ assert_array_equals(result, expected);
+});