Document-importNode-customized-builtins.html (1262B)
1 <!DOCTYPE html> 2 <link rel="help" href="https://dom.spec.whatwg.org/#dom-document-importnode"> 3 <script src="/resources/testharness.js"></script> 4 <script src="/resources/testharnessreport.js"></script> 5 <script src="../resources/custom-elements-helpers.js"></script> 6 <body> 7 <script> 8 test_with_window((w, doc) => { 9 class MyDiv extends HTMLDivElement {} 10 class MyDiv2 extends w.HTMLDivElement {} 11 customElements.define('my-div', MyDiv, { extends: 'div' }); 12 w.customElements.define('my-div', MyDiv2, { extends: 'div' }); 13 14 let original = document.createElement('div', { is: 'my-div' }); 15 assert_true(original instanceof MyDiv); 16 17 let imported = doc.importNode(original); 18 assert_true(imported instanceof MyDiv2); 19 }, 'built-in: document.importNode() should import custom elements successfully'); 20 21 test_with_window((w, doc) => { 22 class MyDiv2 extends w.HTMLDivElement {} 23 w.customElements.define('my-div2', MyDiv2, { extends: 'div' }); 24 25 let original = document.createElement('div', { is: 'my-div2' }); 26 assert_equals(original.constructor, HTMLDivElement); 27 28 let imported = doc.importNode(original); 29 assert_true(imported instanceof MyDiv2); 30 }, 'built-in: document.importNode() should import "undefined" custom elements successfully'); 31 </script> 32 </body>