| Index: LayoutTests/fast/dom/shadow/event-path-closed-shadowroot2.html
|
| diff --git a/LayoutTests/fast/dom/shadow/event-path-closed-shadowroot2.html b/LayoutTests/fast/dom/shadow/event-path-closed-shadowroot2.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2fdba678e9426b838fa972b4cda96c4f810cd353
|
| --- /dev/null
|
| +++ b/LayoutTests/fast/dom/shadow/event-path-closed-shadowroot2.html
|
| @@ -0,0 +1,54 @@
|
| +<!doctype html>
|
| +<script src="../../../resources/js-test.js"></script>
|
| +<script src="resources/shadow-dom.js"></script>
|
| +<body></body>
|
| +<script>
|
| +function prepareTree() {
|
| + // Note: #target will be distributed to furthest <content>.
|
| + document.body.appendChild(
|
| + createDOM('div', {id: 'host_closed'},
|
| + createShadowRoot({mode: 'closed'},
|
| + createDOM('div', {id: 'div1_open'},
|
| + createDOM('content', {id: 'c1'}),
|
| + createShadowRoot({mode: 'open'},
|
| + createDOM('content', {id: 'c2'})))),
|
| + createDOM('div', {id: 'host_open'},
|
| + createShadowRoot({mode: 'open'},
|
| + createDOM('div', {id: 'div2_closed'},
|
| + createShadowRoot({mode: 'closed'},
|
| + createDOM('div', {id: 'div3_open'},
|
| + createShadowRoot({mode: 'open'},
|
| + createDOM('div', {id: 'target'})))))))));
|
| +}
|
| +
|
| +debug('Event.path should include only unclosed nodes.');
|
| +
|
| +prepareTree();
|
| +
|
| +var target = getNodeInTreeOfTrees('host_open/div2_closed/div3_open/target');
|
| +
|
| +debug('The full event path should be (length=12):\n' +
|
| + 'div#target, #shadow-root (open), div#div3_open, #shadow-root (closed),\n' +
|
| + 'div#div2_closed, #shadow-root (open), div#host_open, div#host_closed,\n' +
|
| + 'body, html, #document, window\n');
|
| +
|
| +debug('On #host_closed, #host_open, and #div2_closed,\n' +
|
| + 'div#target, #shadow-root (open), div#div3_open, #shadow-root (closed)\n' +
|
| + 'will be trimmed (length=8).\n');
|
| +
|
| +['host_closed', 'host_open', 'host_open/div2_closed', 'host_open/div2_closed/div3_open', 'host_open/div2_closed/div3_open/target'].forEach(function(nodePath) {
|
| + var node = getNodeInTreeOfTrees(nodePath);
|
| +
|
| + var eventPath;
|
| + var clickHandler = function(e) { eventPath = e.path; };
|
| + node.addEventListener('click', clickHandler, false);
|
| +
|
| + debug('\nDispaching a click event on #target, listening on #' + node.id + '.');
|
| + eventPath = null;
|
| + target.click();
|
| + debug('Got event.path for #' + node.id + ':');
|
| + debug(dumpNodeList(eventPath));
|
| +
|
| + node.removeEventListener('click', clickHandler, false);
|
| +});
|
| +</script>
|
|
|