tor-browser

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

test_custom_element_namespace.xhtml (3682B)


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