Summary

Harness status: OK

Found 16 tests

Details

ResultTest NameMessage
PassattachShadow can take slotAssignment parameter.
Asserts run
Pass
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)
Passslot.attach() should take variadic not sequence.
Asserts run
Pass
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)
PassImperative slot API can assign nodes in manual slot assignment.
Asserts run
Pass
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)
PassOrder of slottables is preserved in manual slot assignment.
Asserts run
Pass
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)
PassPreviously assigned slottable is moved to new slot when it's reassigned.
Asserts run
Pass
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)
PassOrder and assignment of nodes are preserved during multiple assignment in a row.
Asserts run
Pass
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)
PassAssigning invalid nodes should be allowed.
Asserts run
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: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)
PassMoving a slot to a new host, the slot loses its previously assigned slottables.
Asserts run
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:168:3)
Pass
assert_array_equals([], [])
    at Test.<anonymous> ( /shadow-dom/imperative-slot-api.html:171:3)
PassMoving a slot's tree order position within a shadow host has no impact on its assigned slottables.
Asserts run
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: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)
PassAppending slottable to different host, it loses slot assignment. It can be re-assigned within a new host.
Asserts run
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: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)
FailPreviously 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 run
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: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)
PassAssignment with the same node in parameters should be ignored, first one wins.
Asserts run
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: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)
PassRemoving a slot from DOM resets its slottable's slot assignment.
Asserts run
Pass
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)
PassNodes can be assigned even if slots or nodes aren't in the same tree.
Asserts run
Pass
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)
PassRemoving a node from the document does not break manually assigned slot linkage.
Asserts run
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: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)
Passthrow TypeError if the passed values are neither Element nor Text
Asserts run
Pass
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)