| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <script src="../resources/testharness.js"></script> | 2 <script src="../resources/testharness.js"></script> |
| 3 <script src="../resources/testharnessreport.js"></script> | 3 <script src="../resources/testharnessreport.js"></script> |
| 4 <script src="resources/shadow-dom.js"></script> | 4 <script src="resources/shadow-dom.js"></script> |
| 5 <body> | 5 <body> |
| 6 |
| 6 <div id="testroot"> | 7 <div id="testroot"> |
| 7 <div id="openhost"> | 8 <div id="openhost"> |
| 8 <template data-mode="open"> | 9 <template data-mode="open"> |
| 9 <div id="inner-open"></div> | 10 <div id="inner-open"></div> |
| 10 </template> | 11 </template> |
| 11 </div> | 12 </div> |
| 12 <div id="closedhost"> | 13 <div id="closedhost"> |
| 13 <template data-mode="closed"> | 14 <template data-mode="closed"> |
| 14 <div id="inner-closed"></div> | 15 <div id="inner-closed"></div> |
| 15 </template> | 16 </template> |
| (...skipping 18 matching lines...) Expand all Loading... |
| 34 </div> | 35 </div> |
| 35 <div> | 36 <div> |
| 36 <template data-mode="v0"> | 37 <template data-mode="v0"> |
| 37 <div id="inner-nested-v0"></div> | 38 <div id="inner-nested-v0"></div> |
| 38 </template> | 39 </template> |
| 39 </div> | 40 </div> |
| 40 </div> | 41 </div> |
| 41 </template> | 42 </template> |
| 42 </div> | 43 </div> |
| 43 </div> | 44 </div> |
| 45 |
| 46 <div id="testroot2"> |
| 47 <template data-mode="open"> |
| 48 <div id="div1"> |
| 49 <template data-mode="open"> |
| 50 <div id="div2"> |
| 51 <template data-mode="open"> |
| 52 <div id="div3"> |
| 53 <template data-mode="open" data-expose-as="deepestRoot"> |
| 54 <div id="div4"> |
| 55 </div> |
| 56 </template> |
| 57 </div> |
| 58 </template> |
| 59 </div> |
| 60 </template> |
| 61 </div> |
| 62 </template> |
| 63 </div> |
| 64 |
| 44 </body> | 65 </body> |
| 45 <script> | 66 <script> |
| 67 'use strict'; |
| 68 |
| 46 convertTemplatesToShadowRootsWithin(testroot); | 69 convertTemplatesToShadowRootsWithin(testroot); |
| 47 test(() => { | 70 test(() => { |
| 48 assert_equals(document.querySelectorAll('body >>> #inner-open').length, 1); | 71 assert_equals(document.querySelectorAll('body >>> #inner-open').length, 1); |
| 49 assert_equals(document.querySelectorAll('body >>> #inner-closed').length, 0); | 72 assert_equals(document.querySelectorAll('body >>> #inner-closed').length, 0); |
| 50 assert_equals(document.querySelectorAll('body >>> #inner-v0').length, 0); | 73 assert_equals(document.querySelectorAll('body >>> #inner-v0').length, 0); |
| 51 assert_equals(document.querySelectorAll('body >>> #inner-nested-open').length,
1); | 74 assert_equals(document.querySelectorAll('body >>> #inner-nested-open').length,
1); |
| 52 assert_equals(document.querySelectorAll('body >>> #inner-nested-closed').lengt
h, 0); | 75 assert_equals(document.querySelectorAll('body >>> #inner-nested-closed').lengt
h, 0); |
| 53 assert_equals(document.querySelectorAll('body >>> #inner-nested-v0').length, 0
); | 76 assert_equals(document.querySelectorAll('body >>> #inner-nested-v0').length, 0
); |
| 54 }, '>>> should match only through open shadow roots.'); | 77 }, '>>> should match only through open shadow roots.'); |
| 55 | 78 |
| 56 test(() => { | 79 test(() => { |
| 57 let innerDiv = nestedRoot.querySelector('#inner-div'); | 80 let innerDiv = nestedRoot.querySelector('#inner-div'); |
| 58 assert_equals(innerDiv.querySelectorAll('body >>> #inner-nested-open').length,
0); | 81 assert_equals(innerDiv.querySelectorAll('body >>> #inner-nested-open').length,
0); |
| 59 assert_equals(innerDiv.querySelectorAll('body >>> #inner-nested-closed').lengt
h, 0); | 82 assert_equals(innerDiv.querySelectorAll('body >>> #inner-nested-closed').lengt
h, 0); |
| 60 assert_equals(innerDiv.querySelectorAll('body >>> #inner-nested-v0').length, 0
); | 83 assert_equals(innerDiv.querySelectorAll('body >>> #inner-nested-v0').length, 0
); |
| 61 assert_equals(innerDiv.querySelectorAll('#inner-div >>> #inner-nested-open').l
ength, 1); | 84 assert_equals(innerDiv.querySelectorAll('#inner-div >>> #inner-nested-open').l
ength, 1); |
| 62 assert_equals(innerDiv.querySelectorAll('#inner-div >>> #inner-nested-closed')
.length, 0); | 85 assert_equals(innerDiv.querySelectorAll('#inner-div >>> #inner-nested-closed')
.length, 0); |
| 63 assert_equals(innerDiv.querySelectorAll('#inner-div >>> #inner-nested-v0').len
gth, 0); | 86 assert_equals(innerDiv.querySelectorAll('#inner-div >>> #inner-nested-v0').len
gth, 0); |
| 64 }, 'leftmost compound should match an element in the same node tree as context o
bject.'); | 87 }, 'leftmost compound should match an element in the same node tree as context o
bject.'); |
| 65 | 88 |
| 66 test(() => { | 89 test(() => { |
| 67 assert_equals(document.querySelector('#testroot >>> #openhost').id, 'openhost'
); | 90 assert_equals(document.querySelector('#testroot >>> #openhost').id, 'openhost'
); |
| 68 assert_equals(document.querySelector('#testroot >>> #closedhost').id, 'closedh
ost'); | 91 assert_equals(document.querySelector('#testroot >>> #closedhost').id, 'closedh
ost'); |
| 69 assert_equals(document.querySelector('#testroot >>> #v0host').id, 'v0host'); | 92 assert_equals(document.querySelector('#testroot >>> #v0host').id, 'v0host'); |
| 70 }, '>>> should match without piercing through shadow roots.'); | 93 }, '>>> should match without piercing through shadow roots.'); |
| 71 | 94 |
| 95 test(() => { |
| 96 convertTemplatesToShadowRootsWithin(testroot2); |
| 97 let div4 = deepestRoot.querySelector('#div4'); |
| 98 |
| 99 assert_equals(document.querySelector('body >>> #div1 >>> #div2 >>> #div3 >>> #
div4'), div4); |
| 100 assert_equals(document.querySelector('body >>> #div1 >>> #div2 >>> #div4'), di
v4); |
| 101 assert_equals(document.querySelector('body >>> #div1 >>> #div3 >>> #div4'), di
v4); |
| 102 assert_equals(document.querySelector('body >>> #div1 >>> #div4'), div4); |
| 103 assert_equals(document.querySelector('body >>> #div2 >>> #div4'), div4); |
| 104 assert_equals(document.querySelector('#div1 >>> #div2 >>> #div3 >>> #div4'), n
ull, |
| 105 'leftmost compound should match an element in the same node tree as contex
t object.'); |
| 106 }, 'Multiple >>>s in a selector should work.'); |
| 72 </script> | 107 </script> |
| OLD | NEW |