test_custom_element_namespace.html (3179B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Custom Elements in an HTML document</title> 5 <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> 6 <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" /> 7 <script> 8 SimpleTest.waitForExplicitFinish(); 9 10 const HTML_NS = "http://www.w3.org/1999/xhtml"; 11 const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; 12 13 class TestXULCustomElement extends XULElement { 14 constructor() { 15 super(); 16 } 17 18 get connected() { 19 return true; 20 } 21 } 22 23 customElements.define("test-xul-element", TestXULCustomElement); 24 25 class TestHTMLCustomElement extends HTMLElement { 26 constructor() { 27 super(); 28 } 29 30 get connected() { 31 return true; 32 } 33 } 34 35 customElements.define("test-html-element", TestHTMLCustomElement); 36 37 function checkElement(element, ns, connected, type) { 38 is(element.namespaceURI, ns, `${type} should have the correct namespace`); 39 if (connected) { 40 ok(element.connected, `${type} should have applied the class`); 41 } else { 42 is(element.connected, undefined, `${type} should not have applied the class`); 43 } 44 } 45 46 function runTest() { 47 let element = new TestXULCustomElement(); 48 checkElement(element, XUL_NS, true, "instantiated XUL"); 49 50 element = document.getElementById("xul2"); 51 checkElement(element, HTML_NS, false, "parsed XUL as HTML"); 52 53 element = document.createElement("test-xul-element"); 54 checkElement(element, HTML_NS, false, "document.createElement(XUL)"); 55 56 element = document.createXULElement("test-xul-element"); 57 checkElement(element, XUL_NS, true, "document.createXULElement(XUL)"); 58 59 element = document.createElementNS(XUL_NS, "test-xul-element"); 60 checkElement(element, XUL_NS, true, "document.createElementNS(XUL, XUL)"); 61 62 element = document.createElementNS(HTML_NS, "test-xul-element"); 63 checkElement(element, HTML_NS, false, "document.createElementNS(HTML, XUL)"); 64 65 element = new TestHTMLCustomElement(); 66 checkElement(element, HTML_NS, true, "instantiated HTML"); 67 68 element = document.getElementById("html2"); 69 checkElement(element, HTML_NS, true, "parsed HTML as HTML"); 70 71 element = document.createElement("test-html-element"); 72 checkElement(element, HTML_NS, true, "document.createElement(HTML)"); 73 74 element = document.createXULElement("test-html-element"); 75 checkElement(element, XUL_NS, false, "document.createXULElement(HTML)"); 76 77 element = document.createElementNS(XUL_NS, "test-html-element"); 78 checkElement(element, XUL_NS, false, "document.createElementNS(XUL, HTML)"); 79 80 element = document.createElementNS(HTML_NS, "test-html-element"); 81 checkElement(element, HTML_NS, true, "document.createElementNS(HTML, HTML)"); 82 83 SimpleTest.finish(); 84 } 85 </script> 86 </head> 87 <body onload="runTest();"> 88 <p id="display"></p> 89 <div id="content"> 90 <test-xul-element id="xul2"/> 91 <test-html-element id="html2"/> 92 </div> 93 <pre id="test"></pre> 94 </body> 95 </html>