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 document.body.offsetLeft; |
| 41 var input1 = document.getElementById('input1'); |
| 42 var slot1 = host1.shadowRoot.querySelector('slot'); |
| 43 var shadowRoot = host1.shadowRoot; |
| 44 input1.onfocus = function(e) { |
| 45 var expected_array1 = [input1, slot1, shadowRoot, host1, document.body, docu
ment.documentElement, document, window]; |
| 46 assert_array_equals(e.path, expected_array1); |
| 47 }; |
| 48 input1.focus(); |
| 49 }, 'Triggered in a slotted element, eventPath should go through shadow tree.'); |
| 50 |
| 51 test(function() { |
| 52 var input2 = document.getElementById('input2'); |
| 53 var host2 = document.getElementById('host2'); |
| 54 convertTemplatesToShadowRootsWithin(host2); |
| 55 var shadowRootV1 = host2.shadowRoot; |
| 56 var host3 = shadowRootV1.querySelector('#host3'); |
| 57 convertTemplatesToShadowRootsWithin(host3); |
| 58 var slotParent = host3.querySelector('div'); |
| 59 var slot2 = host3.querySelector('slot'); |
| 60 var shadowRootV0 = host3.shadowRoot; |
| 61 var content = shadowRootV0.querySelector('content'); |
| 62 |
| 63 input2.onfocus = function(e) { |
| 64 var expected_array2 = [input2, slot2, slotParent, content, shadowRootV0, hos
t3, shadowRootV1, host2, document.body, document.documentElement, document, wind
ow]; |
| 65 assert_array_equals(e.path, expected_array2); |
| 66 }; |
| 67 input2.focus(); |
| 68 }, 'EventPath works fine with v0 insertion points & v1 slots.'); |
| 69 |
| 70 test(function() { |
| 71 var host4 = document.getElementById('host4'); |
| 72 convertTemplatesToShadowRootsWithin(host4); |
| 73 var shadowRoot2 = host4.shadowRoot; |
| 74 var slot3 = shadowRoot2.querySelector('slot'); |
| 75 var input3 = document.getElementById('input3') |
| 76 var inputParent = document.getElementById('input-parent'); |
| 77 input3.onfocus = function(e) { |
| 78 var expected_array3 = [input3, inputParent, slot3, shadowRoot2, host4, docum
ent.body, document.documentElement, document, window]; |
| 79 assert_array_equals(e.path, expected_array3); |
| 80 }; |
| 81 input3.focus(); |
| 82 }, 'EventPath works fine when event happens to a descendant of a slotted element
.'); |
| 83 |
| 84 </script> |
OLD | NEW |