tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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>