Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/shadow-dom/event-composed-path.html |
| diff --git a/third_party/WebKit/LayoutTests/shadow-dom/event-composed-path.html b/third_party/WebKit/LayoutTests/shadow-dom/event-composed-path.html |
| index 81ab3070d4943d9d2f76b803adf7f1821e31a841..05fee9b5a867fa2565a0f4969eaabcf3e328e55c 100644 |
| --- a/third_party/WebKit/LayoutTests/shadow-dom/event-composed-path.html |
| +++ b/third_party/WebKit/LayoutTests/shadow-dom/event-composed-path.html |
| @@ -4,96 +4,250 @@ |
| <script src="resources/shadow-dom.js"></script> |
| <div id="test1"> |
| - <template id="shadowroot" data-mode="open"> |
| - <slot id="slot" name="slot"></slot> |
| - </template> |
| - <input id="input" slot="slot"> |
| + <div id="d1"> |
| + <div id="target"></div> |
| + </div> |
| </div> |
| +<script> |
| +test(() => { |
| + let n = createTestTree(test1); |
| + let log = dispatchEventWithLog(n, n.target, new Event('my-event', { bubbles: true, composed: true })); |
| + assert_event_path_equals(log, makeExpectedEventPathLog(['target', 'd1', 'test1'])); |
| +}, 'Event Path test1'); |
|
tkent
2016/06/15 13:07:55
'Event Path testN' isn't a good description. Pleas
hayato
2016/06/16 06:06:58
Done. Added descriptive names to every tests.
|
| +</script> |
| + |
| <div id="test2"> |
| - <template id="shadowroot" data-mode="open"> |
| - <slot id="slot" name="slot"></slot> |
| - </template> |
| - <div id="input-parent" slot="slot"> |
| - <input id="input"> |
| + <div id="host"> |
| + <template id="sr" data-mode="open"> |
| + <div id="target"></div> |
| + </template> |
| </div> |
| </div> |
| +<script> |
| +test(() => { |
| + let n = createTestTree(test2); |
| + let log = dispatchEventWithLog(n, n.target, new Event('my-event', { bubbles: true, composed: true })); |
| + assert_event_path_equals(log, makeExpectedEventPathLog(['target', 'sr', 'host', 'test2'])); |
| +}, 'Event Path test2'); |
| +</script> |
| + |
| <div id="test3"> |
| - <template id="open_shadow" data-mode="open"> |
| - <div id="inner_open"> |
| - <template id="open_shadow_in_open_shadow" data-mode="open"> |
| - <spen id="target_open" tabindex="0">open</spen> |
| - </template> |
| - </div> |
| - </template> |
| + <div id="host"> |
| + <template id="sr" data-mode="closed"> |
| + <div id="target"></div> |
| + </template> |
| + </div> |
| </div> |
| +<script> |
| +test(() => { |
| + let n = createTestTree(test3); |
| + let log = dispatchEventWithLog(n, n.target, new Event('my-event', { bubbles: true, composed: true })); |
| + let path = ['target','sr', 'host', 'test3']; |
|
tkent
2016/06/15 13:07:55
nit: add a space after the first comma.
hayato
2016/06/16 06:06:57
Done
|
| + let path1 = ['host', 'test3']; |
| + assert_event_path_equals(log, [['target', null, path], |
| + ['sr', null, path], |
| + ['host', null, path1], |
| + ['test3', null, path1]]); |
| +}, 'Event Path test3'); |
| +</script> |
| + |
| <div id="test4"> |
| - <template id="closed_shadow" data-mode="closed"> |
| - <div id="inner_closed"> |
| - <template id="open_shadow_in_closed_shadow" data-mode="open"> |
| - <spen id="target_closed" tabindex="0">closed</spen> |
| - </template> |
| - </div> |
| - </template> |
| + <div id="host1"> |
| + <template id="sr1" data-mode="open"> |
| + <div id="host2"> |
| + <template id="sr2" data-mode="open"> |
| + <div id="target"></div> |
| + </template> |
| + </div> |
| + </template> |
| + </div> |
| </div> |
| <script> |
| -function makeExpectedEventPathLog(path) { |
| - let expectedLog = []; |
| - for (let i of path) { |
| - expectedLog.push([i, null, path]); |
| - } |
| - return expectedLog; |
| -} |
| +test(() => { |
| + let n = createTestTree(test4); |
| + let log = dispatchEventWithLog(n, n.target, new Event('my-event', { bubbles: true, composed: true })); |
| + assert_event_path_equals(log, makeExpectedEventPathLog(['target', 'sr2', 'host2', 'sr1', 'host1', 'test4'])); |
| +}, 'Event Path test4'); |
| +</script> |
| + |
| +<div id="test5"> |
| + <div id="host1"> |
| + <template id="sr1" data-mode="open"> |
| + <div id="host2"> |
| + <template id="sr2" data-mode="closed"> |
| + <div id="target"></div> |
| + </template> |
| + </div> |
| + </template> |
| + </div> |
| +</div> |
| +<script> |
| test(() => { |
| - const event = new Event('my-event'); |
| - let dispatched = false; |
| - let target = document.createElement('div'); |
| - target.addEventListener('my-event', (e) => { |
| - assert_array_equals(e.composedPath(), [target]); |
| - dispatched = true; |
| - }); |
| - assert_array_equals(event.composedPath(), []); |
| - target.dispatchEvent(event); |
| - assert_true(dispatched); |
| - assert_array_equals(event.composedPath(), []); |
| -}, "Event.composedPath() should return an empty array before/after dispatching an event"); |
| + let n = createTestTree(test5); |
| + let log = dispatchEventWithLog(n, n.target, new Event('my-event', { bubbles: true, composed: true })); |
| + let path = ['target','sr2', 'host2', 'sr1', 'host1', 'test5']; |
|
tkent
2016/06/15 13:07:55
nit: add a space after the first comma.
hayato
2016/06/16 06:06:57
Done
|
| + let path1 = ['host2', 'sr1', 'host1', 'test5']; |
| + assert_event_path_equals(log, [['target', null, path], |
| + ['sr2', null, path], |
| + ['host2', null, path1], |
| + ['sr1', null, path1], |
| + ['host1', null, path1], |
| + ['test5', null, path1]]); |
| +}, 'Event Path test5'); |
| +</script> |
| + |
| +<div id="test6"> |
| + <div id="host1"> |
| + <template id="sr1" data-mode="closed"> |
| + <div id="host2"> |
| + <template id="sr2" data-mode="open"> |
| + <div id="target"></div> |
| + </template> |
| + </div> |
| + </template> |
| + </div> |
| +</div> |
| +<script> |
| test(() => { |
| - let n = createTestTree(test1); |
| - removeWhiteSpaceOnlyTextNodes(n.test1); |
| - let log = dispatchEventWithLog(n, n.input, new Event('my-event', { bubbles: true, composed: true })); |
| - assert_event_path_equals(log, makeExpectedEventPathLog(['input', 'slot', 'shadowroot', 'test1'])); |
| -}, 'Triggered in a slotted element, eventPath should go through shadow tree.'); |
| + let n = createTestTree(test6); |
| + let log = dispatchEventWithLog(n, n.target, new Event('my-event', { bubbles: true, composed: true })); |
| + let path = ['target','sr2', 'host2', 'sr1', 'host1', 'test6']; |
|
tkent
2016/06/15 13:07:55
nit: add a space after the first comma.
hayato
2016/06/16 06:06:57
Done
|
| + let path1 = ['host1', 'test6']; |
| + assert_event_path_equals(log, [['target', null, path], |
| + ['sr2', null, path], |
| + ['host2', null, path], |
| + ['sr1', null, path], |
| + ['host1', null, path1], |
| + ['test6', null, path1]]); |
| +}, 'Event Path test6'); |
| +</script> |
| +<div id="test7"> |
| + <div id="host1"> |
| + <template id="sr1" data-mode="closed"> |
| + <div id="host2"> |
| + <template id="sr2" data-mode="closed"> |
| + <div id="target"></div> |
| + </template> |
| + </div> |
| + </template> |
| + </div> |
| +</div> |
| + |
| +<script> |
| test(() => { |
| - let n = createTestTree(test2); |
| - removeWhiteSpaceOnlyTextNodes(n.test2); |
| - let log = dispatchEventWithLog(n, n.input, new Event('my-event', { bubbles: true, composed: true })); |
| - assert_event_path_equals(log, makeExpectedEventPathLog(['input', 'input-parent', 'slot', 'shadowroot', 'test2'])); |
| -}, 'EventPath works fine when event happens to a descendant of a slotted element.'); |
| + let n = createTestTree(test7); |
| + let log = dispatchEventWithLog(n, n.target, new Event('my-event', { bubbles: true, composed: true })); |
| + let path = ['target','sr2', 'host2', 'sr1', 'host1', 'test7']; |
|
tkent
2016/06/15 13:07:55
nit: add a space after the first comma.
hayato
2016/06/16 06:06:57
Done
|
| + let path1 = ['host2', 'sr1', 'host1', 'test7']; |
| + let path2 = ['host1', 'test7']; |
| + assert_event_path_equals(log, [['target', null, path], |
| + ['sr2', null, path], |
| + ['host2', null, path1], |
| + ['sr1', null, path1], |
| + ['host1', null, path2], |
| + ['test7', null, path2]]); |
| +}, 'Event Path test7'); |
| +</script> |
| + |
| +<div id="test8"> |
| + <div id="host1"> |
| + <template id="sr1" data-mode="open"> |
| + <slot id="slot"></slot> |
| + </template> |
| + <div id="target"></div> |
| + </div> |
| +</div> |
| +<script> |
| test(() => { |
| - let n = createTestTree(test3); |
| - removeWhiteSpaceOnlyTextNodes(n.test3); |
| - let log = dispatchEventWithLog(n, n.target_open, new Event('my-event', { bubbles: true, composed: true })); |
| - let path = ['target_open', 'open_shadow_in_open_shadow', 'inner_open', 'open_shadow', 'test3'] |
| + let n = createTestTree(test8); |
| + let log = dispatchEventWithLog(n, n.target, new Event('my-event', { bubbles: true, composed: true })); |
| + let path = ['target','slot', 'sr1', 'host1', 'test8']; |
|
tkent
2016/06/15 13:07:55
nit: add a space after the first comma.
hayato
2016/06/16 06:06:57
Done
|
| + assert_event_path_equals(log, makeExpectedEventPathLog(path)); |
| +}, 'Event Path test8'); |
| +</script> |
| + |
| +<div id="test9"> |
| + <div id="host1"> |
| + <template id="sr1" data-mode="closed"> |
| + <slot id="slot"></slot> |
| + </template> |
| + <div id="target"></div> |
| + </div> |
| +</div> |
| + |
| +<script> |
| +test(() => { |
| + let n = createTestTree(test9); |
| + let log = dispatchEventWithLog(n, n.target, new Event('my-event', { bubbles: true, composed: true })); |
| + let path = ['target','slot', 'sr1', 'host1', 'test9']; |
|
tkent
2016/06/15 13:07:55
nit: add a space after the first comma.
hayato
2016/06/16 06:06:57
Done
|
| + let path1 = ['target', 'host1', 'test9']; |
| + assert_event_path_equals(log, [['target', null, path1], |
| + ['slot', null, path], |
| + ['sr1', null, path], |
| + ['host1', null, path1], |
| + ['test9', null, path1]]); |
| +}, 'Event Path test9'); |
| +</script> |
| + |
| +<div id="test10"> |
| + <div id="host1"> |
| + <template id="sr1" data-mode="open"> |
| + <div id="host2"> |
| + <template id="sr2" data-mode="open"> |
| + <slot id="slot2"></slot> |
| + </template> |
| + <slot id="slot1"></slot> |
| + </div> |
| + </template> |
| + <div id="target"></div> |
| + </div> |
| +</div> |
| + |
| +<script> |
| +test(() => { |
| + let n = createTestTree(test10); |
| + let log = dispatchEventWithLog(n, n.target, new Event('my-event', { bubbles: true, composed: true })); |
| + let path = ['target','slot1', 'slot2', 'sr2', 'host2', 'sr1', 'host1', 'test10']; |
|
tkent
2016/06/15 13:07:55
nit: add a space after the first comma.
hayato
2016/06/16 06:06:57
Done
|
| assert_event_path_equals(log, makeExpectedEventPathLog(path)); |
| -}, 'EventPath for Open > Open'); |
| +}, 'Event Path test10'); |
| +</script> |
| + |
| +<div id="test11"> |
| + <div id="host1"> |
| + <template id="sr1" data-mode="closed"> |
| + <div id="host2"> |
| + <template id="sr2" data-mode="closed"> |
| + <slot id="slot2"></slot> |
| + </template> |
| + <slot id="slot1"></slot> |
| + </div> |
| + </template> |
| + <div id="target"></div> |
| + </div> |
| +</div> |
| +<script> |
| test(() => { |
| - let n = createTestTree(test4); |
| - removeWhiteSpaceOnlyTextNodes(n.test4); |
| - let log = dispatchEventWithLog(n, n.target_closed, new Event('my-event', { bubbles: true, composed: true })); |
| - let path = ['target_closed', 'open_shadow_in_closed_shadow', 'inner_closed', 'closed_shadow', 'test4'] |
| - assert_event_path_equals(log, |
| - [['target_closed', null, path], |
| - ['open_shadow_in_closed_shadow', null, path], |
| - ['inner_closed', null, path], |
| - ['closed_shadow', null, path], |
| - ['test4', null, ['test4']]]); |
| -}, 'EventPath for Closed > Open'); |
| + let n = createTestTree(test11); |
| + let log = dispatchEventWithLog(n, n.target, new Event('my-event', { bubbles: true, composed: true })); |
| + let path = ['target','slot1', 'slot2', 'sr2', 'host2', 'sr1', 'host1', 'test11']; |
|
tkent
2016/06/15 13:07:55
nit: add a space after the first comma
hayato
2016/06/16 06:06:57
Done
|
| + let path1 = ['target','slot1', 'host2', 'sr1', 'host1', 'test11']; |
|
tkent
2016/06/15 13:07:55
Ditto.
hayato
2016/06/16 06:06:57
Done
|
| + let path2 = ['target', 'host1', 'test11']; |
| + assert_event_path_equals(log, [['target', null, path2], |
| + ['slot1', null, path1], |
| + ['slot2', null, path], |
| + ['sr2', null, path], |
| + ['host2', null, path1], |
| + ['sr1', null, path1], |
| + ['host1', null, path2], |
| + ['test11', null, path2]]); |
| +}, 'Event Path test11'); |
| </script> |