blob: 8a5b7a9e8c004cf01b3b1731fe8a18237bc06d33 [file] [log] [blame]
(async function(testRunner) {
const {dp} = await testRunner.startHTML(`
<template id="my-element">
<style>
slot {
display: grid;
}
</style>
<div>
<slot class="default-slot" name="my-slot">
<span>default element</span>
</slot>
</div>
</template>
<script>
customElements.define('my-element',
class extends HTMLElement {
constructor() {
super();
const template = document.getElementById('my-element');
const shadowRoot = this
.attachShadow({mode: 'open'})
.appendChild(template.content.cloneNode(true));
}
}
);
</script>
<my-element>
<span class="inserted-slot" slot="my-slot" style="display: grid;">custom element</span>
</my-element>
<div class="grid-outside-shadow-dom" style="display: grid;"></div>
`, 'Tests finding DOM nodes by computed styles on a page containing a custom element with unslotted nodes.');
await dp.DOM.enable();
const response = await dp.DOM.getDocument();
const rootNodeId = response.result.root.nodeId;
const nodesResponse = await dp.DOM.getNodesForSubtreeByStyle({
nodeId: rootNodeId,
pierce: true,
computedStyles: [
{ name: 'display', value: 'grid' },
],
});
testRunner.log('Expected nodeIds length: 3');
testRunner.log('Actual nodeIds length: ' + nodesResponse.result.nodeIds.length);
testRunner.log('Nodes:');
for (const nodeId of nodesResponse.result.nodeIds) {
const nodeResponse = await dp.DOM.describeNode({ nodeId });
testRunner.log(nodeResponse.result);
}
testRunner.completeTest();
})