OLD | NEW |
| (Empty) |
1 <!DOCTYPE html> | |
2 <script src='../resources/testharness.js'></script> | |
3 <script src='../resources/testharnessreport.js'></script> | |
4 <script src='resources/shadow-dom.js'></script> | |
5 <div id='host1'> | |
6 <input id='input1' slot='slot1'> | |
7 <template data-mode='open'> | |
8 <slot name='slot1'></slot> | |
9 </template> | |
10 </div> | |
11 | |
12 <div id='host2'> | |
13 <input id='input2' slot='slot2'> | |
14 <template data-mode='open'> | |
15 <div id='host3'> | |
16 <div id='slot2-parent'> | |
17 <slot name='slot2'></slot> | |
18 </div> | |
19 <template data-mode='v0'> | |
20 <content select='#slot2-parent'></content> | |
21 </template> | |
22 </div> | |
23 </template> | |
24 </div> | |
25 | |
26 <div id='host4'> | |
27 <template data-mode='open'> | |
28 <slot name='slot3'></slot> | |
29 </template> | |
30 <div id='input-parent' slot='slot3'> | |
31 <input id='input3'> | |
32 </div> | |
33 </div> | |
34 <script> | |
35 | |
36 test(function() { | |
37 var host1 = document.getElementById('host1'); | |
38 convertTemplatesToShadowRootsWithin(host1); | |
39 removeWhiteSpaceOnlyTextNodes(host1); | |
40 var input1 = document.getElementById('input1'); | |
41 var slot1 = host1.shadowRoot.querySelector('slot'); | |
42 var shadowRoot = host1.shadowRoot; | |
43 input1.onfocus = function(e) { | |
44 var expected_array1 = [input1, slot1, shadowRoot, host1, document.body, docu
ment.documentElement, document, window]; | |
45 assert_array_equals(e.composedPath(), expected_array1); | |
46 }; | |
47 input1.focus(); | |
48 }, 'Triggered in a slotted element, eventPath should go through shadow tree.'); | |
49 | |
50 test(function() { | |
51 var input2 = document.getElementById('input2'); | |
52 var host2 = document.getElementById('host2'); | |
53 convertTemplatesToShadowRootsWithin(host2); | |
54 var shadowRootV1 = host2.shadowRoot; | |
55 var host3 = shadowRootV1.querySelector('#host3'); | |
56 convertTemplatesToShadowRootsWithin(host3); | |
57 var slotParent = host3.querySelector('div'); | |
58 var slot2 = host3.querySelector('slot'); | |
59 var shadowRootV0 = host3.shadowRoot; | |
60 var content = shadowRootV0.querySelector('content'); | |
61 | |
62 input2.onfocus = function(e) { | |
63 var expected_array2 = [input2, slot2, slotParent, content, shadowRootV0, hos
t3, shadowRootV1, host2, document.body, document.documentElement, document, wind
ow]; | |
64 assert_array_equals(e.composedPath(), expected_array2); | |
65 }; | |
66 input2.focus(); | |
67 }, 'EventPath works fine with v0 insertion points & v1 slots.'); | |
68 | |
69 test(function() { | |
70 var host4 = document.getElementById('host4'); | |
71 convertTemplatesToShadowRootsWithin(host4); | |
72 var shadowRoot2 = host4.shadowRoot; | |
73 var slot3 = shadowRoot2.querySelector('slot'); | |
74 var input3 = document.getElementById('input3') | |
75 var inputParent = document.getElementById('input-parent'); | |
76 input3.onfocus = function(e) { | |
77 var expected_array3 = [input3, inputParent, slot3, shadowRoot2, host4, docum
ent.body, document.documentElement, document, window]; | |
78 assert_array_equals(e.composedPath(), expected_array3); | |
79 }; | |
80 input3.focus(); | |
81 }, 'EventPath works fine when event happens to a descendant of a slotted element
.'); | |
82 | |
83 </script> | |
OLD | NEW |