gecko-dev/content/base/test/test_bug418214.html

102 lines
3.4 KiB
HTML

<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=418214
-->
<head>
<title>Test for Bug 418214</title>
<script type="text/javascript" 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";
is (m2.style, undefined, ".style shouldn't exist on MathML");
is(d2.getAttribute("style"), "color: green;",
"Adjusting .style should parse style on HTML");
is(s2.getAttribute("style"), "color: green;",
"Getting .style should parse style on SVG");
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";
is (m.style, undefined, ".style shouldn't exist on MathML");
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");
</script>
</pre>
</body>
</html>