Skip to content

Commit c7e9131

Browse files
annevkmoz-wptsync-bot
authored andcommitted
Bug 1949750 [wpt PR 50860] - DOM: rename importNode()'s deep to selfOnly (and invert its value), a=testonly
Automatic update from web-platform-tests DOM: rename importNode()'s deep to selfOnly (and invert its value) Part of whatwg/dom#1341. -- wpt-commits: 5bcf44cb07a74e284893af96926d932ec09705e7 wpt-pr: 50860
1 parent fdc1b08 commit c7e9131

File tree

1 file changed

+54
-7
lines changed

1 file changed

+54
-7
lines changed

testing/web-platform/tests/custom-elements/revamped-scoped-registry/Document-importNode.tentative.html

+54-7
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@
2525
</template>
2626
</some-element>
2727
</template>
28+
<div id="root">
29+
<span></span>
30+
</div>
2831
<script>
2932

3033
const scopedRegistry = new CustomElementRegistry();
@@ -54,7 +57,7 @@
5457
}, 'importNode should clone using the specified scoped regsitry');
5558

5659
test(() => {
57-
const clone = document.importNode(host, {deep: true, customElements: scopedRegistry});
60+
const clone = document.importNode(host, {selfOnly: false, customElements: scopedRegistry});
5861
assert_equals(clone.shadowRoot.querySelector('some-element').__proto__.constructor.name, 'HTMLElement');
5962
assert_false(clone.shadowRoot.querySelector('some-element') instanceof GlobalSomeElement);
6063
assert_false(clone.shadowRoot.querySelector('some-element') instanceof ScopedSomeElement);
@@ -63,14 +66,14 @@
6366
}, 'importNode should preserve null-ness of custom element registry');
6467

6568
test(() => {
66-
const clone = document.importNode(host.shadowRoot.querySelector('div'), {deep: true});
69+
const clone = document.importNode(host.shadowRoot.querySelector('div'), {selfOnly: false});
6770
assert_equals(clone.customElements, window.customElements);
6871
assert_true(clone.querySelector('some-element') instanceof GlobalSomeElement);
6972
assert_true(clone.querySelector('other-element') instanceof GlobalOtherElement);
7073
}, 'importNode should clone a shadow host with a declarative shadow DOM using the global registry by default');
7174

7275
test(() => {
73-
const clone = document.importNode(host.shadowRoot.querySelector('div'), {deep: true, customElements: scopedRegistry});
76+
const clone = document.importNode(host.shadowRoot.querySelector('div'), {selfOnly: false, customElements: scopedRegistry});
7477
assert_equals(clone.customElements, scopedRegistry);
7578
assert_true(clone.querySelector('some-element') instanceof ScopedSomeElement);
7679
assert_false(clone.querySelector('other-element') instanceof GlobalOtherElement);
@@ -79,7 +82,7 @@
7982
test(() => {
8083
const element = document.createElement('div', {customElements: emptyRegistry});
8184
element.innerHTML = '<some-element></some-element><other-element></other-element>';
82-
const clone = document.importNode(element, {deep: true, customElements: scopedRegistry});
85+
const clone = document.importNode(element, {selfOnly: false, customElements: scopedRegistry});
8386
assert_equals(clone.customElements, scopedRegistry);
8487
assert_true(clone.querySelector('some-element') instanceof ScopedSomeElement);
8588
assert_false(clone.querySelector('other-element') instanceof GlobalOtherElement);
@@ -90,7 +93,7 @@
9093
template.innerHTML = '<div><some-element>hello</some-element><other-element>world</other-element></div>';
9194
assert_equals(template.content.querySelector('some-element').__proto__.constructor.name, 'HTMLElement');
9295
assert_equals(template.content.querySelector('other-element').__proto__.constructor.name, 'HTMLElement');
93-
const clone = document.importNode(template.content, {deep: true});
96+
const clone = document.importNode(template.content, {selfOnly: false});
9497
assert_equals(clone.querySelector('some-element').customElements, window.customElements);
9598
assert_equals(clone.querySelector('some-element').__proto__.constructor.name, 'GlobalSomeElement');
9699
assert_equals(clone.querySelector('other-element').__proto__.constructor.name, 'GlobalOtherElement');
@@ -101,7 +104,7 @@
101104
template.innerHTML = '<div><some-element>hello</some-element><other-element>world</other-element></div>';
102105
assert_equals(template.content.querySelector('some-element').__proto__.constructor.name, 'HTMLElement');
103106
assert_equals(template.content.querySelector('other-element').__proto__.constructor.name, 'HTMLElement');
104-
const clone = document.importNode(template.content, {deep: true, customElements: scopedRegistry});
107+
const clone = document.importNode(template.content, {selfOnly: false, customElements: scopedRegistry});
105108
assert_equals(clone.querySelector('some-element').customElements, scopedRegistry);
106109
assert_equals(clone.querySelector('some-element').__proto__.constructor.name, 'ScopedSomeElement');
107110
assert_equals(clone.querySelector('other-element').__proto__.constructor.name, 'HTMLElement');
@@ -124,14 +127,58 @@
124127
</div>`;
125128
assert_equals(template.content.querySelector('some-element').__proto__.constructor.name, 'HTMLElement');
126129
assert_equals(template.content.querySelector('other-element').__proto__.constructor.name, 'HTMLElement');
127-
const clone = document.importNode(template.content, {deep: true});
130+
const clone = document.importNode(template.content, {selfOnly: false});
128131
assert_equals(clone.querySelector('some-element').customElements, window.customElements);
129132
assert_equals(clone.querySelector('some-element').__proto__.constructor.name, 'GlobalSomeElement');
130133
const otherElementInTemplate = clone.querySelector('template').content.querySelector('other-element');
131134
assert_equals(otherElementInTemplate.__proto__.constructor.name, 'HTMLElement');
132135
assert_equals(clone.querySelector('other-element').__proto__.constructor.name, 'GlobalOtherElement');
133136
}, 'importNode should clone a template content with a nested template element using a scoped registry');
134137

138+
test(() => {
139+
const clone = document.importNode(root);
140+
assert_false(clone.hasChildNodes());
141+
}, "importNode: don't pass options argument");
142+
143+
test(() => {
144+
const clone = document.importNode(root, false);
145+
assert_false(clone.hasChildNodes());
146+
}, "importNode: pass options argument with value false");
147+
148+
test(() => {
149+
const clone = document.importNode(root, true);
150+
assert_true(clone.hasChildNodes());
151+
}, "importNode: pass options argument with value true");
152+
153+
test(() => {
154+
const clone = document.importNode(root, undefined);
155+
assert_false(clone.hasChildNodes());
156+
}, "importNode: pass options argument with value undefined");
157+
158+
test(() => {
159+
const clone = document.importNode(root, { });
160+
assert_true(clone.hasChildNodes());
161+
}, "importNode: pass options argument with value { }");
162+
163+
test(() => {
164+
const clone = document.importNode(root, { selfOnly: false });
165+
assert_true(clone.hasChildNodes());
166+
}, "importNode: pass options argument with value { selfOnly: false }");
167+
168+
test(() => {
169+
const clone = document.importNode(root, { selfOnly: true });
170+
assert_false(clone.hasChildNodes());
171+
}, "importNode: pass options argument with value { selfOnly: true }");
172+
173+
test(() => {
174+
const clone = document.importNode(root, { customElements: scopedRegistry });
175+
assert_true(clone.hasChildNodes());
176+
}, "importNode: pass options argument with value { customElements: scopedRegistry }");
177+
178+
test(() => {
179+
assert_throws_js(TypeError, () => document.importNode(root, { customElements: null }));
180+
}, "importNode: pass options argument with value { customElements: null }");
181+
135182
</script>
136183
</body>
137184
</html>

0 commit comments

Comments
 (0)