Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(677)

Unified Diff: third_party/WebKit/LayoutTests/custom-elements/spec/doc-without-browsing-context.html

Issue 2313853002: Custom Elements: tests in a document without browsing context (Closed)
Patch Set: deleted unnecessary file that got in here by mistake Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/LayoutTests/custom-elements/spec/doc-without-browsing-context.html
diff --git a/third_party/WebKit/LayoutTests/custom-elements/spec/doc-without-browsing-context.html b/third_party/WebKit/LayoutTests/custom-elements/spec/doc-without-browsing-context.html
new file mode 100644
index 0000000000000000000000000000000000000000..fbaf1dc7277c7b923f7517f99042aa8aa8f02c31
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/custom-elements/spec/doc-without-browsing-context.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<title>Custom Elements: create an element inside a template </title>
+<link rel="help" href="https://dom.spec.whatwg.org/#concept-create-element">
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+<script src="resources/custom-elements-helpers.js"></script>
+<iframe id="iframe"></iframe>
+<script>
+'use strict';
+
+// A document`s browsing context only afffects the look up result of custom element definition
+// https://html.spec.whatwg.org/#look-up-a-custom-element-definition
+// There are two places where we need to look up a custom element definition:
+// 1. creating an element
+// https://dom.spec.whatwg.org/#concept-create-element
+// 2. trying to upgrade an element
+// https://html.spec.whatwg.org/#concept-try-upgrade
+// The previous observation leads to the following behaviours:
+// 1. an element in a document without browsing context should not be upgraded
+// 2. a custom element cannot be created in a document without browsing context
+// 3. an already "defined" custom element should remain "defined" after being inserted
+// into a document without browsing context
+
+test_with_window(w => {
+ let doc_without_browsing_context = w.document.implementation.createHTMLDocument();
+ let element = doc_without_browsing_context.createElement('a-a');
+ w.customElements.define('a-a', class extends w.HTMLElement {});
+ doc_without_browsing_context.body.appendChild(element);
+ assert_true(element.matches(':not(:defined)'));
+ w.document.body.appendChild(element);
+ assert_true(element.matches(':defined'));
+}, 'An element should not upgraded in a document without browsing context');
+
+test_with_window(w => {
+ let doc_without_browsing_context = w.document.implementation.createHTMLDocument();
+ w.customElements.define('b-b', class extends w.HTMLElement {});
+ let e1 = doc_without_browsing_context.createElement('b-b');
+ assert_true(e1.matches(':not(:defined)'));
+ let e2 = w.document.createElement('b-b');
+ assert_true(e2.matches(':defined'));
+}, 'Custom element should not be created in a document without browsing context');
+
+test_with_window(w => {
+ w.customElements.define('a-a', class extends w.HTMLElement {});
+ let element = w.document.createElement('a-a');
+ assert_true(element.matches(':defined'));
+ let doc_without_browsing_context = w.document.implementation.createHTMLDocument();
+ doc_without_browsing_context.body.appendChild(element);
+ let inserted_element = doc_without_browsing_context.body.querySelector('a-a');
+ assert_true(inserted_element.matches(':defined'));
+}, 'Inserting an already defined custom element into a document without browsing context ' +
+ 'should not change its state');
+</script>
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698