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='host'> | |
6 <template data-mode='open'> | |
7 <slot name='slot1'> | |
8 <div id='fallback1'></div> | |
9 </slot> | |
10 <slot name='slot2'> | |
11 <div id='fallback2'></div> | |
12 </slot> | |
13 </template> | |
14 <div id='child1' slot='slot1'></div> | |
15 </div> | |
16 <script> | |
17 'use strict'; | |
18 convertTemplatesToShadowRootsWithin(host); | |
19 removeWhiteSpaceOnlyTextNodes(host); | |
20 document.body.offsetLeft; | |
21 | |
22 const slot1 = host.shadowRoot.querySelector('[name=slot1]'); | |
23 const slot2 = host.shadowRoot.querySelector('[name=slot2]'); | |
24 const fallback1 = host.shadowRoot.querySelector('#fallback1'); | |
25 const fallback2 = host.shadowRoot.querySelector('#fallback2'); | |
26 | |
27 test(() => { | |
28 assert_array_equals(slot1.assignedNodes({flatten: true}), [child1]); | |
29 assert_array_equals(slot2.assignedNodes({flatten: true}), [fallback2]); | |
30 }, "Slot's distributed nodes"); | |
31 | |
32 test(() => { | |
33 // Insert | |
34 const slot0 = document.createElement('slot'); | |
35 slot0.setAttribute('name', 'slot1'); | |
36 host.shadowRoot.insertBefore(slot0, slot1); | |
37 | |
38 assert_array_equals(slot0.assignedNodes({flatten: true}), [child1]); | |
39 assert_array_equals(slot1.assignedNodes({flatten: true}), [fallback1]); | |
40 assert_array_equals(slot2.assignedNodes({flatten: true}), [fallback2]); | |
41 | |
42 // Remove | |
43 host.shadowRoot.removeChild(slot0); | |
44 assert_array_equals(slot1.assignedNodes({flatten: true}), [child1]); | |
45 assert_array_equals(slot2.assignedNodes({flatten: true}), [fallback2]); | |
46 }, "Slot's distributed nodes after inserting/removeing a slot."); | |
47 | |
48 test(() => { | |
49 // Attribute change | |
50 slot1.setAttribute('name', 'slot-foo'); | |
51 assert_array_equals(slot1.assignedNodes({flatten: true}), [fallback1]); | |
52 assert_array_equals(slot2.assignedNodes({flatten: true}), [fallback2]); | |
53 | |
54 child1.setAttribute('slot', 'slot-foo'); | |
55 assert_array_equals(slot1.assignedNodes({flatten: true}), [child1]); | |
56 assert_array_equals(slot2.assignedNodes({flatten: true}), [fallback2]); | |
57 }, "Slot's distributed nodes after the attribute is changed."); | |
58 </script> | |
OLD | NEW |