diff options
Diffstat (limited to 'testing/web-platform/tests/shadow-dom/declarative/declarative-after-attachshadow.tentative.html')
-rw-r--r-- | testing/web-platform/tests/shadow-dom/declarative/declarative-after-attachshadow.tentative.html | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/testing/web-platform/tests/shadow-dom/declarative/declarative-after-attachshadow.tentative.html b/testing/web-platform/tests/shadow-dom/declarative/declarative-after-attachshadow.tentative.html new file mode 100644 index 0000000000..bfe2d66cfa --- /dev/null +++ b/testing/web-platform/tests/shadow-dom/declarative/declarative-after-attachshadow.tentative.html @@ -0,0 +1,46 @@ +<!DOCTYPE html> +<title>Declarative Shadow DOM after attachShadow</title> +<link rel='author' href='mailto:masonf@chromium.org'> +<link rel='help' href='https://github.com/whatwg/dom/issues/831'> +<script src='/resources/testharness.js'></script> +<script src='/resources/testharnessreport.js'></script> + +<body> +<script> +let gotHost = false; +function myObserver(mutationsList, observer) { + for (let mutation of mutationsList) { + for (let n of mutation.addedNodes) { + if (n.id === 'host') { + gotHost = true; + const shadowRoot = n.attachShadow( {mode: 'closed'}); + assert_true(!!shadowRoot, 'Unable to attach shadow imperatively'); + } + } + } +} +const observer = new MutationObserver(myObserver); +observer.observe(document.body, { childList: true, subtree: true }); +assert_false(gotHost, 'No mutations yet'); +</script> + +<div id=host> + <!-- Ensure observer runs at this point (https://github.com/web-platform-tests/wpt/issues/35393) --> + <script> // some content, which shouldn't be necessary </script> + <template shadowrootmode=open> + Content + <slot>Fallback</slot> + </template> +</div> + +<script> +test(t => { + t.add_cleanup(function() { observer.disconnect(); }); + assert_true(gotHost); + let host = document.querySelector('#host'); + let template = host.querySelector('template'); + assert_true(!!template, 'Declarative shadow attach should fail, so template should be left over'); + assert_true(!host.shadowRoot, 'Shadow root should be closed (from attachShadow call)'); +}, 'Declarative Shadow DOM: declarative shadow should fail if attachShadow() already called'); +</script> +</body> |