diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /dom/tests/mochitest/webcomponents/test_custom_element_namespace.xhtml | |
parent | Initial commit. (diff) | |
download | firefox-esr-upstream.tar.xz firefox-esr-upstream.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/tests/mochitest/webcomponents/test_custom_element_namespace.xhtml')
-rw-r--r-- | dom/tests/mochitest/webcomponents/test_custom_element_namespace.xhtml | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/dom/tests/mochitest/webcomponents/test_custom_element_namespace.xhtml b/dom/tests/mochitest/webcomponents/test_custom_element_namespace.xhtml new file mode 100644 index 0000000000..5bfdd779ad --- /dev/null +++ b/dom/tests/mochitest/webcomponents/test_custom_element_namespace.xhtml @@ -0,0 +1,104 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <title>Custom Elements in an XHTML document</title> + <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" /> + <script> + SimpleTest.waitForExplicitFinish(); + + const HTML_NS = "http://www.w3.org/1999/xhtml"; + const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; + + class TestXULCustomElement extends XULElement { + constructor() { + super(); + } + + get connected() { + return true; + } + } + + customElements.define("test-xul-element", TestXULCustomElement); + + class TestHTMLCustomElement extends HTMLElement { + constructor() { + super(); + } + + get connected() { + return true; + } + } + + customElements.define("test-html-element", TestHTMLCustomElement); + + function checkElement(element, ns, connected, type) { + is(element.namespaceURI, ns, `${type} should have the correct namespace`); + if (connected) { + ok(element.connected, `${type} should have applied the class`); + } else { + is(element.connected, undefined, `${type} should not have applied the class`); + } + } + + function runTest() { + let element = new TestXULCustomElement(); + checkElement(element, XUL_NS, true, "instantiated XUL"); + + element = document.getElementById("xul1"); + checkElement(element, XUL_NS, true, "parsed XUL as XUL"); + + element = document.getElementById("xul2"); + checkElement(element, HTML_NS, false, "parsed XUL as HTML"); + + element = document.createElement("test-xul-element"); + checkElement(element, HTML_NS, false, "document.createElement(XUL)"); + + element = document.createXULElement("test-xul-element"); + checkElement(element, XUL_NS, true, "document.createXULElement(XUL)"); + + element = document.createElementNS(XUL_NS, "test-xul-element"); + checkElement(element, XUL_NS, true, "document.createElementNS(XUL, XUL)"); + + element = document.createElementNS(HTML_NS, "test-xul-element"); + checkElement(element, HTML_NS, false, "document.createElementNS(HTML, XUL)"); + + element = new TestHTMLCustomElement(); + checkElement(element, HTML_NS, true, "instantiated HTML"); + + element = document.getElementById("html1"); + checkElement(element, XUL_NS, false, "parsed HTML as XUL"); + + element = document.getElementById("html2"); + checkElement(element, HTML_NS, true, "parsed HTML as HTML"); + + element = document.createElement("test-html-element"); + checkElement(element, HTML_NS, true, "document.createElement(HTML)"); + + element = document.createXULElement("test-html-element"); + checkElement(element, XUL_NS, false, "document.createXULElement(HTML)"); + + element = document.createElementNS(XUL_NS, "test-html-element"); + checkElement(element, XUL_NS, false, "document.createElementNS(XUL, HTML)"); + + element = document.createElementNS(HTML_NS, "test-html-element"); + checkElement(element, HTML_NS, true, "document.createElementNS(HTML, HTML)"); + + SimpleTest.finish(); + } + </script> +</head> +<body onload="runTest();"> + <p id="display"></p> + <div id="content"> + <test-xul-element xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" id="xul1"/> + <test-html-element xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" id="html1"/> + <test-xul-element id="xul2"/> + <test-html-element id="html2"/> + </div> + <pre id="test"></pre> +</body> +</html> |