diff options
Diffstat (limited to '')
-rw-r--r-- | dom/base/test/test_bug418214.html | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/dom/base/test/test_bug418214.html b/dom/base/test/test_bug418214.html new file mode 100644 index 0000000000..0c747a873f --- /dev/null +++ b/dom/base/test/test_bug418214.html @@ -0,0 +1,105 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=418214 +--> +<head> + <title>Test for Bug 418214</title> + <script src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> +</head> +<body> +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=418214">Mozilla Bug 418214</a> +<p id="display"></p> +<div id="content" style="display: none"> + +</div> +<pre id="test"> +<script class="testbody" type="text/javascript"> + +var str = '<root xmlns:html="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" xmlns:math="http://www.w3.org/1998/Math/MathML"><html:div id="d" style="border:: invalid"/><svg:svg id="s" style="border:: invalid"/><math:math id="m" style="border:: invalid"/></root>'; + +/** Test for Bug 418214 **/ +var doc = (new DOMParser()).parseFromString(str, "text/xml"); +var d = doc.getElementById("d"); +var s = doc.getElementById("s"); +var m = doc.getElementById("m"); + +is(d.getAttribute("style"), "border:: invalid", + "Shouldn't be parsing style on HTML in data documents"); +is(s.getAttribute("style"), "border:: invalid", + "Shouldn't be parsing style on SVG in data documents"); +is(m.getAttribute("style"), "border:: invalid", + "Shouldn't be parsing style on MathML in data documents"); + +var d2 = d.cloneNode(true); +var s2 = s.cloneNode(true); +var m2 = m.cloneNode(true); + +is(d2.getAttribute("style"), "border:: invalid", + "Shouldn't be parsing style on HTML on clone"); +is(s2.getAttribute("style"), "border:: invalid", + "Shouldn't be parsing style on SVG on clone"); +is(m2.getAttribute("style"), "border:: invalid", + "Shouldn't be parsing style on MathML on clone"); + +d2.style; +s2.style; +m2.style; + +is(d2.getAttribute("style"), "border:: invalid", + "Getting .style shouldn't affect style attribute on HTML"); +is(s2.getAttribute("style"), "border:: invalid", + "Getting .style shouldn't affect style attribute on SVG"); +is(m2.getAttribute("style"), "border:: invalid", + "Getting .style shouldn't affect style attribute on MathML"); + +d2.style.color = "green"; +s2.style.color = "green"; +m2.style.color = "green"; + +is(d2.getAttribute("style"), "color: green;", + "Adjusting .style should parse style on HTML"); +is(s2.getAttribute("style"), "color: green;", + "Adjusting .style should parse style on SVG"); +is(m2.getAttribute("style"), "color: green;", + "Adjusting .style should parse style on MathML"); + +d = document.adoptNode(d); +s = document.adoptNode(s); +m = document.adoptNode(m); + +is(d.getAttribute("style"), "border:: invalid", + "Adopting should not parse style on HTML"); +is(s.getAttribute("style"), "border:: invalid", + "Adopting should not parse style on SVG"); +is(m.getAttribute("style"), "border:: invalid", + "Adopting should not parse style on MathML"); + +$("display").appendChild(d); +$("display").appendChild(s); +$("display").appendChild(m); + +is(d.getAttribute("style"), "border:: invalid", + "Adopting should not parse style on HTML"); +is(s.getAttribute("style"), "border:: invalid", + "Adopting should not parse style on SVG"); +is(m.getAttribute("style"), "border:: invalid", + "Adopting should not parse style on MathML"); + +d.style.color = "green"; +s.style.color = "green"; +m.style.color = "green"; + +is(d.getAttribute("style"), "color: green;", + "Adjusting .style should parse style on HTML"); +is(s.getAttribute("style"), "color: green;", + "Adjusting .style should parse style on SVG"); +is(m.getAttribute("style"), "color: green;", + "Adjusting .style should parse style on MathML"); + +</script> +</pre> +</body> +</html> + |