Pass | attachShadow can take slotAssignment parameter. | Asserts runPass | assert_not_equals(DocumentFragment node with 0 children, null, "slot assignment manual should work")
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:17:3) | Pass | assert_equals("manual", "manual", "slotAssignment should return \"manual\"")
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:18:3) | Pass | assert_not_equals(DocumentFragment node with 0 children, null, "slot assignment named should work")
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:20:3) | Pass | assert_equals("named", "named", "slotAssignment should return \"named\"")
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:21:3) | Pass | assert_throws_js(function "function TypeError() { [native code] }", function "() => { tTree.host3.attachShadow({ mode: 'open', slotAssignment: 'exceptional' })}", "others should throw exception")
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:22:3) |
|
Pass | slot.attach() should take variadic not sequence. | Asserts runPass | assert_throws_js(function "function TypeError() { [native code] }", function "() => { tTree.s1.assign([c1,c2]) }", "sequence not allowed")
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:53:3) | Pass | assert_throws_js(function "function TypeError() { [native code] }", function "() => { tTree.s1.assign([]) }", "including empty sequences")
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:56:3) |
|
Pass | Imperative slot API can assign nodes in manual slot assignment. | Asserts runPass | assert_array_equals([], [])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:63:3) | Pass | assert_equals(null, null)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:64:3) | Pass | assert_array_equals([Element node <div id="c1"></div>], [Element node <div id="c1"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:67:3) | Pass | assert_equals(Element node <slot id="s1"></slot>, Element node <slot id="s1"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:68:3) | Pass | assert_array_equals([Element node <div id="c1"></div>], [Element node <div id="c1"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:71:3) | Pass | assert_array_equals([Element node <div id="c2"></div>, Element node <div id="c3"></div>], [Element node <div id="c2"></div>, Element node <div id="c3"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:72:3) |
|
Pass | Order of slottables is preserved in manual slot assignment. | Asserts runPass | assert_array_equals([Element node <div id="c2"></div>, Element node <div id="c3"></div>, Element node <div id="c1"></div>], [Element node <div id="c2"></div>, Element node <div id="c3"></div>, Element node <div id="c1"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:79:3) | Pass | assert_equals(Element node <slot id="s1"></slot>, Element node <slot id="s1"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:80:3) | Pass | assert_equals(Element node <slot id="s1"></slot>, Element node <slot id="s1"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:81:3) | Pass | assert_equals(Element node <slot id="s1"></slot>, Element node <slot id="s1"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:82:3) | Pass | assert_array_equals([Element node <div id="c1"></div>, Element node <div id="c2"></div>], [Element node <div id="c1"></div>, Element node <div id="c2"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:85:3) | Pass | assert_equals(Element node <slot id="s1"></slot>, Element node <slot id="s1"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:86:3) | Pass | assert_equals(Element node <slot id="s1"></slot>, Element node <slot id="s1"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:87:3) | Pass | assert_equals(null, null)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:88:3) | Pass | assert_array_equals([Element node <div id="c3"></div>, Element node <div id="c2"></div>, Element node <div id="c1"></div>], [Element node <div id="c3"></div>, Element node <div id="c2"></div>, Element node <div id="c1"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:91:3) | Pass | assert_equals(Element node <slot id="s1"></slot>, Element node <slot id="s1"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:92:3) | Pass | assert_equals(Element node <slot id="s1"></slot>, Element node <slot id="s1"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:93:3) | Pass | assert_equals(Element node <slot id="s1"></slot>, Element node <slot id="s1"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:94:3) |
|
Pass | Previously assigned slottable is moved to new slot when it's reassigned. | Asserts runPass | assert_array_equals([Element node <div id="c2"></div>, Element node <div id="c3"></div>, Element node <div id="c1"></div>], [Element node <div id="c2"></div>, Element node <div id="c3"></div>, Element node <div id="c1"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:101:3) | Pass | assert_array_equals([Element node <div id="c3"></div>, Element node <div id="c1"></div>], [Element node <div id="c3"></div>, Element node <div id="c1"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:104:3) | Pass | assert_array_equals([Element node <div id="c2"></div>], [Element node <div id="c2"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:105:3) | Pass | assert_equals(Element node <slot id="s1"></slot>, Element node <slot id="s1"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:106:3) | Pass | assert_equals(Element node <slot id="s2"></slot>, Element node <slot id="s2"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:107:3) | Pass | assert_equals(Element node <slot id="s1"></slot>, Element node <slot id="s1"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:108:3) | Pass | assert_array_equals([Element node <div id="c1"></div>], [Element node <div id="c1"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:111:3) | Pass | assert_array_equals([Element node <div id="c2"></div>], [Element node <div id="c2"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:112:3) | Pass | assert_array_equals([Element node <div id="c3"></div>], [Element node <div id="c3"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:113:3) | Pass | assert_equals(Element node <slot id="s1"></slot>, Element node <slot id="s1"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:114:3) | Pass | assert_equals(Element node <slot id="s2"></slot>, Element node <slot id="s2"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:115:3) | Pass | assert_equals(Element node <slot id="s3"></slot>, Element node <slot id="s3"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:116:3) |
|
Pass | Order and assignment of nodes are preserved during multiple assignment in a row. | Asserts runPass | assert_array_equals([], [])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:126:3) | Pass | assert_array_equals([Element node <div id="c2"></div>], [Element node <div id="c2"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:127:3) | Pass | assert_array_equals([Element node <div id="c1"></div>, Element node <div id="c3"></div>], [Element node <div id="c1"></div>, Element node <div id="c3"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:128:3) | Pass | assert_equals(Element node <slot id="s3"></slot>, Element node <slot id="s3"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:129:3) | Pass | assert_equals(Element node <slot id="s2"></slot>, Element node <slot id="s2"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:130:3) | Pass | assert_equals(Element node <slot id="s3"></slot>, Element node <slot id="s3"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:131:3) |
|
Pass | Assigning invalid nodes should be allowed. | Asserts runPass | assert_array_equals([Element node <div id="c1"></div>, Element node <div id="c2"></div>], [Element node <div id="c1"></div>, Element node <div id="c2"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:142:3) | Pass | assert_equals(Element node <slot id="s1"></slot>, Element node <slot id="s1"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:143:3) | Pass | assert_equals(Element node <slot id="s1"></slot>, Element node <slot id="s1"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:144:3) | Pass | assert_equals(null, null)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:145:3) | Pass | assert_array_equals([Element node <div id="c1"></div>, Element node <div id="c4"></div>, Element node <div id="c2"></div>], [Element node <div id="c1"></div>, Element node <div id="c4"></div>, Element node <div id="c2"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:149:3) | Pass | assert_equals(Element node <slot id="s1"></slot>, Element node <slot id="s1"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:150:3) | Pass | assert_equals(Element node <slot id="s1"></slot>, Element node <slot id="s1"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:151:3) | Pass | assert_equals(Element node <slot id="s1"></slot>, Element node <slot id="s1"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:152:3) | Pass | assert_array_equals([Element node <div id="c1"></div>, Element node <div id="c2"></div>], [Element node <div id="c1"></div>, Element node <div id="c2"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:157:3) | Pass | assert_equals(null, null)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:158:3) | Pass | assert_array_equals([Element node <div id="c1"></div>, Element node <div id="c4"></div>, Element node <div id="c2"></div>], [Element node <div id="c1"></div>, Element node <div id="c4"></div>, Element node <div id="c2"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:160:3) | Pass | assert_equals(Element node <slot id="s1"></slot>, Element node <slot id="s1"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:161:3) |
|
Pass | Moving a slot to a new host, the slot loses its previously assigned slottables. | Asserts runPass | assert_array_equals([Element node <div id="c1"></div>, Element node <div id="c2"></div>, Element node <div id="c3"></div>], [Element node <div id="c1"></div>, Element node <div id="c2"></div>, Element node <div id="c3"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:168:3) | Pass | assert_array_equals([], [])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:171:3) |
|
Pass | Moving a slot's tree order position within a shadow host has no impact on its assigned slottables. | Asserts runPass | assert_array_equals([Element node <div id="c1"></div>, Element node <div id="c2"></div>, Element node <div id="c3"></div>], [Element node <div id="c1"></div>, Element node <div id="c2"></div>, Element node <div id="c3"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:178:3) | Pass | assert_array_equals([Element node <div id="c1"></div>, Element node <div id="c2"></div>, Element node <div id="c3"></div>], [Element node <div id="c1"></div>, Element node <div id="c2"></div>, Element node <div id="c3"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:181:3) | Pass | assert_array_equals([], [])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:182:3) | Pass | assert_array_equals([Element node <div id="c1"></div>, Element node <div id="c2"></div>, Element node <div id="c3"></div>], [Element node <div id="c1"></div>, Element node <div id="c2"></div>, Element node <div id="c3"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:185:3) | Pass | assert_array_equals([], [])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:186:3) | Pass | assert_array_equals([], [])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:189:3) |
|
Pass | Appending slottable to different host, it loses slot assignment. It can be re-assigned within a new host. | Asserts runPass | assert_array_equals([Element node <div id="c1"></div>, Element node <div id="c2"></div>, Element node <div id="c3"></div>], [Element node <div id="c1"></div>, Element node <div id="c2"></div>, Element node <div id="c3"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:196:3) | Pass | assert_array_equals([Element node <div id="c2"></div>, Element node <div id="c3"></div>], [Element node <div id="c2"></div>, Element node <div id="c3"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:199:3) | Pass | assert_array_equals([], [])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:200:3) | Pass | assert_equals(null, null)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:201:3) | Pass | assert_array_equals([Element node <div id="c1"></div>], [Element node <div id="c1"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:204:3) | Pass | assert_equals(Element node <slot id="s4" name="s4"></slot>, Element node <slot id="s4" name="s4"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:205:3) |
|
Fail | Previously assigned node should not be assigned if slot moved to a new shadow root. The node is re-assigned when moved back. | assert_array_equals: lengths differ, expected array [Element node <div id="c1"></div>] length 1, got [] length 0 at Test.<anonymous> (https://xn--n8j6ds53lwwkrqhv28a.wpt.live/shadow-dom/imperative-slot-api.html:220:3)
at Test.step (https://xn--n8j6ds53lwwkrqhv28a.wpt.live/resources/testharness.js:2642:25)
at test (https://xn--n8j6ds53lwwkrqhv28a.wpt.live/resources/testharness.js:633:30)
at https://xn--n8j6ds53lwwkrqhv28a.wpt.live/shadow-dom/imperative-slot-api.html:208:1 Asserts runPass | assert_array_equals([Element node <div id="c1"></div>], [Element node <div id="c1"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:212:3) | Pass | assert_array_equals([], [])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:215:3) | Pass | assert_array_equals([], [])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:217:3) | Fail | assert_array_equals([], [Element node <div id="c1"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:220:3) |
|
Pass | Assignment with the same node in parameters should be ignored, first one wins. | Asserts runPass | assert_array_equals([Element node <div id="c1"></div>], [Element node <div id="c1"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:227:3) | Pass | assert_array_equals([Element node <div id="c1"></div>, Element node <div id="c2"></div>], [Element node <div id="c1"></div>, Element node <div id="c2"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:230:3) |
|
Pass | Removing a slot from DOM resets its slottable's slot assignment. | Asserts runPass | assert_equals(null, null)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:239:3) | Pass | assert_equals(null, null)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:240:3) | Pass | assert_equals(null, null)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:241:3) |
|
Pass | Nodes can be assigned even if slots or nodes aren't in the same tree. | Asserts runPass | assert_array_equals([], [], "s1 not inside shadow root")
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:253:3) | Pass | assert_equals(null, null)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:254:3) | Pass | assert_equals(null, null)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:255:3) | Pass | assert_array_equals([Element node <div id="c1"></div>, Element node <div id="c2"></div>], [Element node <div id="c1"></div>, Element node <div id="c2"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:259:3) | Pass | assert_equals(Element node <slot id="s1"></slot>, Element node <slot id="s1"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:260:3) | Pass | assert_equals(Element node <slot id="s1"></slot>, Element node <slot id="s1"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:261:3) |
|
Pass | Removing a node from the document does not break manually assigned slot linkage. | Asserts runPass | assert_array_equals([Element node <div id="c1"></div>, Element node <div id="c2"></div>], [Element node <div id="c1"></div>, Element node <div id="c2"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:268:3) | Pass | assert_equals(Element node <slot id="s1"></slot>, Element node <slot id="s1"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:269:3) | Pass | assert_equals(Element node <slot id="s1"></slot>, Element node <slot id="s1"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:270:3) | Pass | assert_array_equals([], [], "s1 not inside shadow root")
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:277:3) | Pass | assert_equals(null, null)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:278:3) | Pass | assert_equals(null, null)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:279:3) | Pass | assert_array_equals([Element node <div id="c1"></div>, Element node <div id="c2"></div>], [Element node <div id="c1"></div>, Element node <div id="c2"></div>])
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:283:3) | Pass | assert_equals(Element node <slot id="s1"></slot>, Element node <slot id="s1"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:284:3) | Pass | assert_equals(Element node <slot id="s1"></slot>, Element node <slot id="s1"></slot>)
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:285:3) |
|
Pass | throw TypeError if the passed values are neither Element nor Text | Asserts runPass | assert_throws_js(function "function TypeError() { [native code] }", function "() => { const slot = document.createElement('slot'); slot.assign(input); }", "Attr")
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:296:5) | Pass | assert_throws_js(function "function TypeError() { [native code] }", function "() => { const slot = document.createElement('slot'); slot.assign(input); }", "Comment")
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:296:5) | Pass | assert_throws_js(function "function TypeError() { [native code] }", function "() => { const slot = document.createElement('slot'); slot.assign(input); }", "DocumentFragment")
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:296:5) | Pass | assert_throws_js(function "function TypeError() { [native code] }", function "() => { const slot = document.createElement('slot'); slot.assign(input); }", "DocumentType")
at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:296:5) |
|