ladybird/Tests/LibWeb/Text/input/ShadowDOM/declarative-basic.html

62 lines
2.4 KiB
HTML
Raw Permalink Normal View History

2025-03-18 15:28:35 -03:00
<!DOCTYPE html>
<div id="basicOpen">
<template shadowrootmode="open">open</template>
</div>
<div id="basicClosed">
<template shadowrootmode="closed">closed</template>
</div>
<div id="redundant">
<template shadowrootmode="open">open</template>
<template shadowrootmode="open">also open</template>
</div>
<div id="basicOpenClonable">
<template shadowrootmode="open" shadowrootclonable>open</template>
</div>
<div id="basicOpenSerializable">
<template shadowrootmode="open" shadowrootserializable>open</template>
</div>
<div id="manualSlotAssignment">
<template shadowrootmode="OpEn" shadowrootslotassignment="MANUAL" shadowrootserializable><slot name="slot"></slot></template>
<span slot="slot">manual</span>
</div>
<script src="../include.js"></script>
<script>
test(() => {
println(basicOpen.shadowRoot);
println(basicOpen.childElementCount);
println(basicClosed.shadowRoot);
println(basicClosed.childElementCount);
println(redundant.shadowRoot);
println(redundant.childElementCount);
let clonedUnclonable = basicOpen.cloneNode();
println(clonedUnclonable.shadowRoot);
println(clonedUnclonable.childElementCount);
let clonedClonable = basicOpenClonable.cloneNode();
println(clonedClonable.shadowRoot);
println(clonedClonable.childElementCount);
println(basicOpen.getHTML({ serializableShadowRoots: true}));
println(basicOpen.getHTML({ shadowRoots: [ basicOpen.shadowRoot ]}));
println(basicOpenSerializable.getHTML({ serializableShadowRoots: true}));
println(basicOpenSerializable.getHTML({ serializableShadowRoots: false}));
println(basicOpenSerializable.getHTML({ shadowRoots: [ basicOpenSerializable.shadowRoot ]}));
println(manualSlotAssignment.shadowRoot.slotAssignment);
println(manualSlotAssignment.querySelector("span").assignedSlot);
println(manualSlotAssignment.getHTML({ serializableShadowRoots: true}));
let template = document.createElement("template");
println(template.shadowRootSlotAssignment);
template.shadowRootSlotAssignment = "MANUAL";
println(template.shadowRootSlotAssignment);
template.shadowRootSlotAssignment = "invalid";
println(template.shadowRootSlotAssignment);
template.setAttribute("shadowrootslotassignment", "bogus");
println(template.shadowRootSlotAssignment);
});
</script>