mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-05-03 04:52:06 +02:00
Includes reimporting the test we already had, which has changed significantly. Most of these fail, but importing them now to track progress.
497 lines
24 KiB
JavaScript
497 lines
24 KiB
JavaScript
// Target document has a global registry
|
|
|
|
test(t => {
|
|
const contentDocument = document.body.appendChild(document.createElement('iframe')).contentDocument;
|
|
t.add_cleanup(() => contentDocument.defaultView.frameElement.remove());
|
|
const element = document.createElement('div');
|
|
assert_equals(element.customElementRegistry, customElements);
|
|
|
|
contentDocument.body.appendChild(element);
|
|
assert_equals(element.customElementRegistry, contentDocument.customElementRegistry);
|
|
}, "Adoption with global registry");
|
|
|
|
test(t => {
|
|
const contentDocument = document.body.appendChild(document.createElement('iframe')).contentDocument;
|
|
t.add_cleanup(() => contentDocument.defaultView.frameElement.remove());
|
|
const element = document.createElement('div', { customElementRegistry: customElements });
|
|
assert_equals(element.customElementRegistry, customElements);
|
|
|
|
contentDocument.body.appendChild(element);
|
|
assert_equals(element.customElementRegistry, contentDocument.customElementRegistry);
|
|
}, "Adoption with explicit global registry");
|
|
|
|
test(t => {
|
|
const contentDocument = document.body.appendChild(document.createElement('iframe')).contentDocument;
|
|
t.add_cleanup(() => contentDocument.defaultView.frameElement.remove());
|
|
const scoped = new CustomElementRegistry();
|
|
const element = document.createElement('div', { customElementRegistry: scoped });
|
|
assert_equals(element.customElementRegistry, scoped);
|
|
|
|
contentDocument.body.appendChild(element);
|
|
assert_equals(element.customElementRegistry, scoped);
|
|
}, "Adoption with scoped registry");
|
|
|
|
test(t => {
|
|
const contentDocument = document.body.appendChild(document.createElement('iframe')).contentDocument;
|
|
t.add_cleanup(() => contentDocument.defaultView.frameElement.remove());
|
|
const element = document.createElement('div');
|
|
assert_equals(element.customElementRegistry, customElements);
|
|
|
|
const scoped = new CustomElementRegistry();
|
|
const scopedElement = contentDocument.createElement('div', { customElementRegistry: scoped });
|
|
contentDocument.body.appendChild(scopedElement);
|
|
assert_equals(scopedElement.customElementRegistry, scoped);
|
|
scopedElement.appendChild(element);
|
|
assert_equals(element.customElementRegistry, contentDocument.customElementRegistry);
|
|
}, "Adoption with global registry into a scoped registry");
|
|
|
|
test(t => {
|
|
const contentDocument = document.body.appendChild(document.createElement('iframe')).contentDocument;
|
|
t.add_cleanup(() => contentDocument.defaultView.frameElement.remove());
|
|
const element = document.createElement('div', { customElementRegistry: customElements });
|
|
assert_equals(element.customElementRegistry, customElements);
|
|
|
|
const scoped = new CustomElementRegistry();
|
|
const scopedElement = contentDocument.createElement('div', { customElementRegistry: scoped });
|
|
contentDocument.body.appendChild(scopedElement);
|
|
assert_equals(scopedElement.customElementRegistry, scoped);
|
|
scopedElement.appendChild(element);
|
|
assert_equals(element.customElementRegistry, contentDocument.customElementRegistry);
|
|
}, "Adoption with explicit global registry into a scoped registry");
|
|
|
|
test(t => {
|
|
const contentDocument = document.body.appendChild(document.createElement('iframe')).contentDocument;
|
|
t.add_cleanup(() => contentDocument.defaultView.frameElement.remove());
|
|
const scoped = new CustomElementRegistry();
|
|
const element = document.createElement('div', { customElementRegistry: scoped });
|
|
assert_equals(element.customElementRegistry, scoped);
|
|
|
|
const scoped2 = new CustomElementRegistry();
|
|
const scopedElement = contentDocument.createElement('div', { customElementRegistry: scoped2 });
|
|
contentDocument.body.appendChild(scopedElement);
|
|
assert_equals(scopedElement.customElementRegistry, scoped2);
|
|
scopedElement.appendChild(element);
|
|
assert_equals(element.customElementRegistry, scoped);
|
|
}, "Adoption with scoped registry into a scoped registry");
|
|
|
|
test(t => {
|
|
const contentDocument = document.body.appendChild(document.createElement('iframe')).contentDocument;
|
|
t.add_cleanup(() => contentDocument.defaultView.frameElement.remove());
|
|
const element = document.createElement('div');
|
|
const elementShadow = element.attachShadow({ mode: "closed" });
|
|
assert_equals(elementShadow.customElementRegistry, customElements);
|
|
|
|
contentDocument.body.appendChild(element);
|
|
// In certain implementations touching element.customElementRegistry can poison the results so we
|
|
// don't do that here.
|
|
assert_equals(elementShadow.customElementRegistry, contentDocument.customElementRegistry);
|
|
}, "Adoption including shadow root with global registry");
|
|
|
|
test(t => {
|
|
const contentDocument = document.body.appendChild(document.createElement('iframe')).contentDocument;
|
|
t.add_cleanup(() => contentDocument.defaultView.frameElement.remove());
|
|
const element = document.createElement('div');
|
|
const elementShadow = element.attachShadow({ mode: "closed", customElementRegistry: customElements });
|
|
assert_equals(elementShadow.customElementRegistry, customElements);
|
|
|
|
contentDocument.body.appendChild(element);
|
|
assert_equals(elementShadow.customElementRegistry, contentDocument.customElementRegistry);
|
|
}, "Adoption including shadow root with explicit global registry");
|
|
|
|
test(t => {
|
|
const contentDocument = document.body.appendChild(document.createElement('iframe')).contentDocument;
|
|
t.add_cleanup(() => contentDocument.defaultView.frameElement.remove());
|
|
const element = document.createElement('div');
|
|
const scoped = new CustomElementRegistry();
|
|
const elementShadow = element.attachShadow({ mode: "closed", customElementRegistry: scoped });
|
|
assert_equals(elementShadow.customElementRegistry, scoped);
|
|
|
|
contentDocument.body.appendChild(element);
|
|
assert_equals(elementShadow.customElementRegistry, scoped);
|
|
}, "Adoption including shadow root with scoped registry");
|
|
|
|
test(t => {
|
|
const contentDocument = document.body.appendChild(document.createElement('iframe')).contentDocument;
|
|
t.add_cleanup(() => contentDocument.defaultView.frameElement.remove());
|
|
const element = document.createElement('div');
|
|
const elementShadow = element.attachShadow({ mode: "closed" });
|
|
assert_equals(elementShadow.customElementRegistry, customElements);
|
|
|
|
const scoped = new CustomElementRegistry();
|
|
const scopedElement = contentDocument.createElement('div', { customElementRegistry: scoped });
|
|
contentDocument.body.appendChild(scopedElement);
|
|
assert_equals(scopedElement.customElementRegistry, scoped);
|
|
scopedElement.appendChild(element);
|
|
assert_equals(elementShadow.customElementRegistry, contentDocument.customElementRegistry);
|
|
}, "Adoption including shadow root with global registry into a scoped registry");
|
|
|
|
test(t => {
|
|
const contentDocument = document.body.appendChild(document.createElement('iframe')).contentDocument;
|
|
t.add_cleanup(() => contentDocument.defaultView.frameElement.remove());
|
|
const element = document.createElement('div');
|
|
const elementShadow = element.attachShadow({ mode: "closed", customElementRegistry: customElements });
|
|
assert_equals(elementShadow.customElementRegistry, customElements);
|
|
|
|
const scoped = new CustomElementRegistry();
|
|
const scopedElement = contentDocument.createElement('div', { customElementRegistry: scoped });
|
|
contentDocument.body.appendChild(scopedElement);
|
|
assert_equals(scopedElement.customElementRegistry, scoped);
|
|
scopedElement.appendChild(element);
|
|
assert_equals(elementShadow.customElementRegistry, contentDocument.customElementRegistry);
|
|
}, "Adoption including shadow root with explicit global registry into a scoped registry");
|
|
|
|
test(t => {
|
|
const contentDocument = document.body.appendChild(document.createElement('iframe')).contentDocument;
|
|
t.add_cleanup(() => contentDocument.defaultView.frameElement.remove());
|
|
const element = document.createElement('div');
|
|
const scoped = new CustomElementRegistry();
|
|
const elementShadow = element.attachShadow({ mode: "closed", customElementRegistry: scoped });
|
|
assert_equals(elementShadow.customElementRegistry, scoped);
|
|
|
|
const scoped2 = new CustomElementRegistry();
|
|
const scopedElement = contentDocument.createElement('div', { customElementRegistry: scoped2 });
|
|
contentDocument.body.appendChild(scopedElement);
|
|
assert_equals(scopedElement.customElementRegistry, scoped2);
|
|
scopedElement.appendChild(element);
|
|
assert_equals(elementShadow.customElementRegistry, scoped);
|
|
}, "Adoption including shadow root with scoped registry into a scoped registry");
|
|
|
|
|
|
// Target document has a null registry
|
|
|
|
test(t => {
|
|
const contentDocument = document.implementation.createHTMLDocument();
|
|
const element = document.createElement('div');
|
|
assert_equals(element.customElementRegistry, customElements);
|
|
|
|
contentDocument.body.appendChild(element);
|
|
assert_equals(element.customElementRegistry, null);
|
|
}, "Adoption with global registry (null registry target)");
|
|
|
|
test(t => {
|
|
const contentDocument = document.implementation.createHTMLDocument();
|
|
const element = document.createElement('div', { customElementRegistry: customElements });
|
|
assert_equals(element.customElementRegistry, customElements);
|
|
|
|
contentDocument.body.appendChild(element);
|
|
assert_equals(element.customElementRegistry, null);
|
|
}, "Adoption with explicit global registry (null registry target)");
|
|
|
|
test(t => {
|
|
const contentDocument = document.implementation.createHTMLDocument();
|
|
const scoped = new CustomElementRegistry();
|
|
const element = document.createElement('div', { customElementRegistry: scoped });
|
|
assert_equals(element.customElementRegistry, scoped);
|
|
|
|
contentDocument.body.appendChild(element);
|
|
assert_equals(element.customElementRegistry, scoped);
|
|
}, "Adoption with scoped registry (null registry target)");
|
|
|
|
test(t => {
|
|
const contentDocument = document.implementation.createHTMLDocument();
|
|
const element = document.createElement('div');
|
|
assert_equals(element.customElementRegistry, customElements);
|
|
|
|
const scoped = new CustomElementRegistry();
|
|
const scopedElement = contentDocument.createElement('div', { customElementRegistry: scoped });
|
|
contentDocument.body.appendChild(scopedElement);
|
|
assert_equals(scopedElement.customElementRegistry, scoped);
|
|
scopedElement.appendChild(element);
|
|
assert_equals(element.customElementRegistry, null);
|
|
}, "Adoption with global registry into a scoped registry (null registry target)");
|
|
|
|
test(t => {
|
|
const contentDocument = document.implementation.createHTMLDocument();
|
|
const element = document.createElement('div', { customElementRegistry: customElements });
|
|
assert_equals(element.customElementRegistry, customElements);
|
|
|
|
const scoped = new CustomElementRegistry();
|
|
const scopedElement = contentDocument.createElement('div', { customElementRegistry: scoped });
|
|
contentDocument.body.appendChild(scopedElement);
|
|
assert_equals(scopedElement.customElementRegistry, scoped);
|
|
scopedElement.appendChild(element);
|
|
assert_equals(element.customElementRegistry, null);
|
|
}, "Adoption with explicit global registry into a scoped registry (null registry target)");
|
|
|
|
test(t => {
|
|
const contentDocument = document.implementation.createHTMLDocument();
|
|
const scoped = new CustomElementRegistry();
|
|
const element = document.createElement('div', { customElementRegistry: scoped });
|
|
assert_equals(element.customElementRegistry, scoped);
|
|
|
|
const scoped2 = new CustomElementRegistry();
|
|
const scopedElement = contentDocument.createElement('div', { customElementRegistry: scoped2 });
|
|
contentDocument.body.appendChild(scopedElement);
|
|
assert_equals(scopedElement.customElementRegistry, scoped2);
|
|
scopedElement.appendChild(element);
|
|
assert_equals(element.customElementRegistry, scoped);
|
|
}, "Adoption with scoped registry into a scoped registry (null registry target)");
|
|
|
|
test(t => {
|
|
const contentDocument = document.implementation.createHTMLDocument();
|
|
const element = document.createElement('div');
|
|
const elementShadow = element.attachShadow({ mode: "closed" });
|
|
assert_equals(elementShadow.customElementRegistry, customElements);
|
|
|
|
contentDocument.body.appendChild(element);
|
|
// In certain implementations touching element.customElementRegistry can poison the results so we
|
|
// don't do that here.
|
|
assert_equals(elementShadow.customElementRegistry, null);
|
|
}, "Adoption including shadow root with global registry (null registry target)");
|
|
|
|
test(t => {
|
|
const contentDocument = document.implementation.createHTMLDocument();
|
|
const element = document.createElement('div');
|
|
const elementShadow = element.attachShadow({ mode: "closed", customElementRegistry: customElements });
|
|
assert_equals(elementShadow.customElementRegistry, customElements);
|
|
|
|
contentDocument.body.appendChild(element);
|
|
assert_equals(elementShadow.customElementRegistry, null);
|
|
}, "Adoption including shadow root with explicit global registry (null registry target)");
|
|
|
|
test(t => {
|
|
const contentDocument = document.implementation.createHTMLDocument();
|
|
const element = document.createElement('div');
|
|
const scoped = new CustomElementRegistry();
|
|
const elementShadow = element.attachShadow({ mode: "closed", customElementRegistry: scoped });
|
|
assert_equals(elementShadow.customElementRegistry, scoped);
|
|
|
|
contentDocument.body.appendChild(element);
|
|
assert_equals(elementShadow.customElementRegistry, scoped);
|
|
}, "Adoption including shadow root with scoped registry (null registry target)");
|
|
|
|
test(t => {
|
|
const contentDocument = document.implementation.createHTMLDocument();
|
|
const element = document.createElement('div');
|
|
const elementShadow = element.attachShadow({ mode: "closed" });
|
|
assert_equals(elementShadow.customElementRegistry, customElements);
|
|
|
|
const scoped = new CustomElementRegistry();
|
|
const scopedElement = contentDocument.createElement('div', { customElementRegistry: scoped });
|
|
contentDocument.body.appendChild(scopedElement);
|
|
assert_equals(scopedElement.customElementRegistry, scoped);
|
|
scopedElement.appendChild(element);
|
|
assert_equals(elementShadow.customElementRegistry, null);
|
|
}, "Adoption including shadow root with global registry into a scoped registry (null registry target)");
|
|
|
|
test(t => {
|
|
const contentDocument = document.implementation.createHTMLDocument();
|
|
const element = document.createElement('div');
|
|
const elementShadow = element.attachShadow({ mode: "closed", customElementRegistry: customElements });
|
|
assert_equals(elementShadow.customElementRegistry, customElements);
|
|
|
|
const scoped = new CustomElementRegistry();
|
|
const scopedElement = contentDocument.createElement('div', { customElementRegistry: scoped });
|
|
contentDocument.body.appendChild(scopedElement);
|
|
assert_equals(scopedElement.customElementRegistry, scoped);
|
|
scopedElement.appendChild(element);
|
|
assert_equals(elementShadow.customElementRegistry, null);
|
|
}, "Adoption including shadow root with explicit global registry into a scoped registry (null registry target)");
|
|
|
|
test(t => {
|
|
const contentDocument = document.implementation.createHTMLDocument();
|
|
const element = document.createElement('div');
|
|
const scoped = new CustomElementRegistry();
|
|
const elementShadow = element.attachShadow({ mode: "closed", customElementRegistry: scoped });
|
|
assert_equals(elementShadow.customElementRegistry, scoped);
|
|
|
|
const scoped2 = new CustomElementRegistry();
|
|
const scopedElement = contentDocument.createElement('div', { customElementRegistry: scoped2 });
|
|
contentDocument.body.appendChild(scopedElement);
|
|
assert_equals(scopedElement.customElementRegistry, scoped2);
|
|
scopedElement.appendChild(element);
|
|
assert_equals(elementShadow.customElementRegistry, scoped);
|
|
}, "Adoption including shadow root with scoped registry into a scoped registry (null registry target)");
|
|
|
|
|
|
// Target document has a scoped registry
|
|
|
|
test(t => {
|
|
const documentRegistry = new CustomElementRegistry();
|
|
const contentDocument = document.implementation.createHTMLDocument();
|
|
documentRegistry.initialize(contentDocument);
|
|
assert_equals(contentDocument.customElementRegistry, documentRegistry);
|
|
const element = document.createElement('div');
|
|
assert_equals(element.customElementRegistry, customElements);
|
|
|
|
contentDocument.body.appendChild(element);
|
|
assert_equals(element.customElementRegistry, null);
|
|
}, "Adoption with global registry (scoped registry target)");
|
|
|
|
test(t => {
|
|
const documentRegistry = new CustomElementRegistry();
|
|
const contentDocument = document.implementation.createHTMLDocument();
|
|
documentRegistry.initialize(contentDocument);
|
|
assert_equals(contentDocument.customElementRegistry, documentRegistry);
|
|
|
|
const element = document.createElement('div', { customElementRegistry: customElements });
|
|
assert_equals(element.customElementRegistry, customElements);
|
|
|
|
contentDocument.body.appendChild(element);
|
|
assert_equals(element.customElementRegistry, null);
|
|
}, "Adoption with explicit global registry (scoped registry target)");
|
|
|
|
test(t => {
|
|
const documentRegistry = new CustomElementRegistry();
|
|
const contentDocument = document.implementation.createHTMLDocument();
|
|
documentRegistry.initialize(contentDocument);
|
|
assert_equals(contentDocument.customElementRegistry, documentRegistry);
|
|
|
|
const scoped = new CustomElementRegistry();
|
|
const element = document.createElement('div', { customElementRegistry: scoped });
|
|
assert_equals(element.customElementRegistry, scoped);
|
|
|
|
contentDocument.body.appendChild(element);
|
|
assert_equals(element.customElementRegistry, scoped);
|
|
}, "Adoption with scoped registry (scoped registry target)");
|
|
|
|
test(t => {
|
|
const documentRegistry = new CustomElementRegistry();
|
|
const contentDocument = document.implementation.createHTMLDocument();
|
|
documentRegistry.initialize(contentDocument);
|
|
assert_equals(contentDocument.customElementRegistry, documentRegistry);
|
|
|
|
const element = document.createElement('div');
|
|
assert_equals(element.customElementRegistry, customElements);
|
|
|
|
const scoped = new CustomElementRegistry();
|
|
const scopedElement = contentDocument.createElement('div', { customElementRegistry: scoped });
|
|
contentDocument.body.appendChild(scopedElement);
|
|
assert_equals(scopedElement.customElementRegistry, scoped);
|
|
scopedElement.appendChild(element);
|
|
assert_equals(element.customElementRegistry, null);
|
|
}, "Adoption with global registry into a scoped registry (scoped registry target)");
|
|
|
|
test(t => {
|
|
const documentRegistry = new CustomElementRegistry();
|
|
const contentDocument = document.implementation.createHTMLDocument();
|
|
documentRegistry.initialize(contentDocument);
|
|
assert_equals(contentDocument.customElementRegistry, documentRegistry);
|
|
|
|
const element = document.createElement('div', { customElementRegistry: customElements });
|
|
assert_equals(element.customElementRegistry, customElements);
|
|
|
|
const scoped = new CustomElementRegistry();
|
|
const scopedElement = contentDocument.createElement('div', { customElementRegistry: scoped });
|
|
contentDocument.body.appendChild(scopedElement);
|
|
assert_equals(scopedElement.customElementRegistry, scoped);
|
|
scopedElement.appendChild(element);
|
|
assert_equals(element.customElementRegistry, null);
|
|
}, "Adoption with explicit global registry into a scoped registry (scoped registry target)");
|
|
|
|
test(t => {
|
|
const documentRegistry = new CustomElementRegistry();
|
|
const contentDocument = document.implementation.createHTMLDocument();
|
|
documentRegistry.initialize(contentDocument);
|
|
assert_equals(contentDocument.customElementRegistry, documentRegistry);
|
|
|
|
const scoped = new CustomElementRegistry();
|
|
const element = document.createElement('div', { customElementRegistry: scoped });
|
|
assert_equals(element.customElementRegistry, scoped);
|
|
|
|
const scoped2 = new CustomElementRegistry();
|
|
const scopedElement = contentDocument.createElement('div', { customElementRegistry: scoped2 });
|
|
contentDocument.body.appendChild(scopedElement);
|
|
assert_equals(scopedElement.customElementRegistry, scoped2);
|
|
scopedElement.appendChild(element);
|
|
assert_equals(element.customElementRegistry, scoped);
|
|
}, "Adoption with scoped registry into a scoped registry (scoped registry target)");
|
|
|
|
test(t => {
|
|
const documentRegistry = new CustomElementRegistry();
|
|
const contentDocument = document.implementation.createHTMLDocument();
|
|
documentRegistry.initialize(contentDocument);
|
|
assert_equals(contentDocument.customElementRegistry, documentRegistry);
|
|
|
|
const element = document.createElement('div');
|
|
const elementShadow = element.attachShadow({ mode: "closed" });
|
|
assert_equals(elementShadow.customElementRegistry, customElements);
|
|
|
|
contentDocument.body.appendChild(element);
|
|
// In certain implementations touching element.customElementRegistry can poison the results so we
|
|
// don't do that here.
|
|
assert_equals(elementShadow.customElementRegistry, null);
|
|
}, "Adoption including shadow root with global registry (scoped registry target)");
|
|
|
|
test(t => {
|
|
const documentRegistry = new CustomElementRegistry();
|
|
const contentDocument = document.implementation.createHTMLDocument();
|
|
documentRegistry.initialize(contentDocument);
|
|
assert_equals(contentDocument.customElementRegistry, documentRegistry);
|
|
|
|
const element = document.createElement('div');
|
|
const elementShadow = element.attachShadow({ mode: "closed", customElementRegistry: customElements });
|
|
assert_equals(elementShadow.customElementRegistry, customElements);
|
|
|
|
contentDocument.body.appendChild(element);
|
|
assert_equals(elementShadow.customElementRegistry, null);
|
|
}, "Adoption including shadow root with explicit global registry (scoped registry target)");
|
|
|
|
test(t => {
|
|
const documentRegistry = new CustomElementRegistry();
|
|
const contentDocument = document.implementation.createHTMLDocument();
|
|
documentRegistry.initialize(contentDocument);
|
|
assert_equals(contentDocument.customElementRegistry, documentRegistry);
|
|
|
|
const element = document.createElement('div');
|
|
const scoped = new CustomElementRegistry();
|
|
const elementShadow = element.attachShadow({ mode: "closed", customElementRegistry: scoped });
|
|
assert_equals(elementShadow.customElementRegistry, scoped);
|
|
|
|
contentDocument.body.appendChild(element);
|
|
assert_equals(elementShadow.customElementRegistry, scoped);
|
|
}, "Adoption including shadow root with scoped registry (scoped registry target)");
|
|
|
|
test(t => {
|
|
const documentRegistry = new CustomElementRegistry();
|
|
const contentDocument = document.implementation.createHTMLDocument();
|
|
documentRegistry.initialize(contentDocument);
|
|
assert_equals(contentDocument.customElementRegistry, documentRegistry);
|
|
|
|
const element = document.createElement('div');
|
|
const elementShadow = element.attachShadow({ mode: "closed" });
|
|
assert_equals(elementShadow.customElementRegistry, customElements);
|
|
|
|
const scoped = new CustomElementRegistry();
|
|
const scopedElement = contentDocument.createElement('div', { customElementRegistry: scoped });
|
|
contentDocument.body.appendChild(scopedElement);
|
|
assert_equals(scopedElement.customElementRegistry, scoped);
|
|
scopedElement.appendChild(element);
|
|
assert_equals(elementShadow.customElementRegistry, null);
|
|
}, "Adoption including shadow root with global registry into a scoped registry (scoped registry target)");
|
|
|
|
test(t => {
|
|
const documentRegistry = new CustomElementRegistry();
|
|
const contentDocument = document.implementation.createHTMLDocument();
|
|
documentRegistry.initialize(contentDocument);
|
|
assert_equals(contentDocument.customElementRegistry, documentRegistry);
|
|
const element = document.createElement('div');
|
|
const elementShadow = element.attachShadow({ mode: "closed", customElementRegistry: customElements });
|
|
assert_equals(elementShadow.customElementRegistry, customElements);
|
|
|
|
const scoped = new CustomElementRegistry();
|
|
const scopedElement = contentDocument.createElement('div', { customElementRegistry: scoped });
|
|
contentDocument.body.appendChild(scopedElement);
|
|
assert_equals(scopedElement.customElementRegistry, scoped);
|
|
scopedElement.appendChild(element);
|
|
assert_equals(elementShadow.customElementRegistry, null);
|
|
}, "Adoption including shadow root with explicit global registry into a scoped registry (scoped registry target)");
|
|
|
|
test(t => {
|
|
const documentRegistry = new CustomElementRegistry();
|
|
const contentDocument = document.implementation.createHTMLDocument();
|
|
documentRegistry.initialize(contentDocument);
|
|
assert_equals(contentDocument.customElementRegistry, documentRegistry);
|
|
const element = document.createElement('div');
|
|
const scoped = new CustomElementRegistry();
|
|
const elementShadow = element.attachShadow({ mode: "closed", customElementRegistry: scoped });
|
|
assert_equals(elementShadow.customElementRegistry, scoped);
|
|
|
|
const scoped2 = new CustomElementRegistry();
|
|
const scopedElement = contentDocument.createElement('div', { customElementRegistry: scoped2 });
|
|
contentDocument.body.appendChild(scopedElement);
|
|
assert_equals(scopedElement.customElementRegistry, scoped2);
|
|
scopedElement.appendChild(element);
|
|
assert_equals(elementShadow.customElementRegistry, scoped);
|
|
}, "Adoption including shadow root with scoped registry into a scoped registry (scoped registry target)");
|