From d772ebec6600146cb740786e5f3f9c1c32daa41a Mon Sep 17 00:00:00 2001 From: Anne van Kesteren Date: Mon, 17 Sep 2018 15:51:33 +0200 Subject: [PATCH] DOM: test listener invocation order For https://github.com/whatwg/dom/pull/686. --- .../Event-dispatch-listener-order.window.js | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 dom/events/Event-dispatch-listener-order.window.js diff --git a/dom/events/Event-dispatch-listener-order.window.js b/dom/events/Event-dispatch-listener-order.window.js new file mode 100644 index 00000000000000..a01a472872b927 --- /dev/null +++ b/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); +});