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 id="slot1" name="slot1"> |
| 8 <div id="fallback1"></div> |
| 9 </slot> |
| 10 <slot id="slot2" 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 |
| 19 let n = createTestTree(host); |
| 20 removeWhiteSpaceOnlyTextNodes(n.host); |
| 21 |
| 22 test(() => { |
| 23 assert_array_equals(n.slot1.assignedNodes({ flatten: true }), [n.child1]); |
| 24 assert_array_equals(n.slot2.assignedNodes({ flatten: true }), [n.fallback2]); |
| 25 }, "Slot's distributed nodes"); |
| 26 |
| 27 test(() => { |
| 28 // Insert |
| 29 const slot0 = document.createElement('slot'); |
| 30 slot0.setAttribute('name', 'slot1'); |
| 31 n.host.shadowRoot.insertBefore(slot0, n.slot1); |
| 32 |
| 33 assert_array_equals(slot0.assignedNodes({ flatten: true }), [n.child1]); |
| 34 assert_array_equals(n.slot1.assignedNodes({ flatten: true }), [n.fallback1]); |
| 35 assert_array_equals(n.slot2.assignedNodes({ flatten: true }), [n.fallback2]); |
| 36 |
| 37 // Remove |
| 38 n.host.shadowRoot.removeChild(slot0); |
| 39 assert_array_equals(n.slot1.assignedNodes({ flatten: true }), [n.child1]); |
| 40 assert_array_equals(n.slot2.assignedNodes({ flatten: true }), [n.fallback2]); |
| 41 }, "Slot's distributed nodes after inserting/removeing a slot."); |
| 42 |
| 43 test(() => { |
| 44 // Attribute change |
| 45 n.slot1.setAttribute('name', 'slot-foo'); |
| 46 assert_array_equals(n.slot1.assignedNodes({ flatten: true }), [n.fallback1]); |
| 47 assert_array_equals(n.slot2.assignedNodes({ flatten: true }), [n.fallback2]); |
| 48 |
| 49 n.child1.setAttribute('slot', 'slot-foo'); |
| 50 assert_array_equals(n.slot1.assignedNodes({ flatten: true }), [n.child1]); |
| 51 assert_array_equals(n.slot2.assignedNodes({ flatten: true }), [n.fallback2]); |
| 52 }, "Slot's distributed nodes after the attribute is changed."); |
| 53 </script> |
OLD | NEW |