Index: third_party/WebKit/LayoutTests/custom-elements/imports/resources/create-element.html |
diff --git a/third_party/WebKit/LayoutTests/custom-elements/imports/resources/create-element.html b/third_party/WebKit/LayoutTests/custom-elements/imports/resources/create-element.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5dfcc47ede5ca7db17125cb9256d7b8a042d0e24 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/custom-elements/imports/resources/create-element.html |
@@ -0,0 +1,33 @@ |
+<script> |
+'use strict'; |
+let constructors = []; |
+test(() => { |
+ assert_equals(constructors.length, 0); |
+ |
+ class MyElement extends HTMLElement { |
+ constructor() { |
+ super(); |
+ constructors.push(this); |
+ } |
+ } |
+ |
+ customElements.define('my-element', MyElement); |
+ |
+ // createElement should synchronously call constructor. |
+ let el = document.createElement('my-element'); |
+ assert_equals(constructors.length, 1); |
+ |
+ let importDoc = document.currentScript.ownerDocument; |
+ let sandbox = importDoc.querySelector('#sandbox'); |
+ |
+ // createElement should work in imported document. |
+ let el2 = importDoc.createElement('my-element') |
+ assert_equals(constructors.length, 2); |
+ |
+ // new MyElement() should synchronously call constructor. |
+ let el3 = new MyElement(); |
+ assert_equals(constructors.length, 3); |
+ |
+ assert_array_equals(constructors, [el, el2, el3]); |
+}, 'createElement() should work in imported document.'); |
+</script> |