summaryrefslogtreecommitdiffstats
path: root/dom/base/test/test_bug418214.html
blob: 0c747a873f3efc9d56a3a461d40d48a9740770c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
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>