Thu, 15 Jan 2015 21:03:48 +0100
Integrate friendly tips from Tor colleagues to make (or not) 4.5 alpha 3;
This includes removal of overloaded (but unused) methods, and addition of
a overlooked call to DataStruct::SetData(nsISupports, uint32_t, bool.)
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <title>Test for property priority preservation</title>
5 <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
6 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
7 </head>
8 <body>
9 <p id="display"></p>
10 <div id="content" style="display: none">
12 </div>
13 <pre id="test">
14 <script type="application/javascript">
16 /**
17 * Test that priorities are preserved correctly when setProperty is
18 * called, and during declaration block expansion/compression when other
19 * properties are manipulated.
20 */
22 var div = document.getElementById("content");
23 var s = div.style;
25 s.setProperty("text-decoration", "underline", "");
26 is(s.getPropertyValue("text-decoration"), "underline",
27 "text-decoration stored");
28 is(s.getPropertyPriority("text-decoration"), "",
29 "text-decoration priority stored");
30 s.setProperty("z-index", "7", "important");
31 is(s.getPropertyValue("z-index"), "7",
32 "z-index stored");
33 is(s.getPropertyPriority("z-index"), "important",
34 "z-index priority stored");
35 s.setProperty("z-index", "3", "");
36 is(s.getPropertyValue("z-index"), "3",
37 "z-index overridden by setting non-important");
38 is(s.getPropertyPriority("z-index"), "",
39 "z-index priority overridden by setting non-important");
40 is(s.getPropertyValue("text-decoration"), "underline",
41 "text-decoration still stored");
42 is(s.getPropertyPriority("text-decoration"), "",
43 "text-decoration priority still stored");
44 s.setProperty("text-decoration", "overline", "");
45 is(s.getPropertyValue("text-decoration"), "overline",
46 "text-decoration stored");
47 is(s.getPropertyPriority("text-decoration"), "",
48 "text-decoration priority stored");
49 is(s.getPropertyValue("z-index"), "3",
50 "z-index still stored");
51 is(s.getPropertyPriority("z-index"), "",
52 "z-index priority still stored");
53 s.setProperty("text-decoration", "line-through", "important");
54 is(s.getPropertyValue("text-decoration"), "line-through",
55 "text-decoration stored at new priority");
56 is(s.getPropertyPriority("text-decoration"), "important",
57 "text-decoration priority overridden");
58 is(s.getPropertyValue("z-index"), "3",
59 "z-index still stored");
60 is(s.getPropertyPriority("z-index"), "",
61 "z-index priority still stored");
63 // also test setting a shorthand
64 s.setProperty("font", "italic bold 12px/30px serif", "important");
65 is(s.getPropertyValue("font-style"), "italic", "font-style stored");
66 is(s.getPropertyPriority("font-style"), "important",
67 "font-style priority stored");
68 is(s.getPropertyValue("font-weight"), "bold", "font-weight stored");
69 is(s.getPropertyPriority("font-weight"), "important",
70 "font-weight priority stored");
71 is(s.getPropertyValue("font-size"), "12px", "font-size stored");
72 is(s.getPropertyPriority("font-size"), "important",
73 "font-size priority stored");
74 is(s.getPropertyValue("line-height"), "30px", "line-height stored");
75 is(s.getPropertyPriority("line-height"), "important",
76 "line-height priority stored");
77 is(s.getPropertyValue("font-family"), "serif", "font-family stored");
78 is(s.getPropertyPriority("font-family"), "important",
79 "font-family priority stored");
81 is(s.getPropertyValue("text-decoration"), "line-through",
82 "text-decoration still stored");
83 is(s.getPropertyPriority("text-decoration"), "important",
84 "text-decoration priority still stored");
85 is(s.getPropertyValue("z-index"), "3",
86 "z-index still stored");
87 is(s.getPropertyPriority("z-index"), "",
88 "z-index priority still stored");
90 // and overriding one element of that shorthand with some longhand
91 // test omitting the third argument to setProperty too (bug 655478)
92 s.setProperty("font-style", "normal");
94 is(s.getPropertyValue("font-style"), "normal", "font-style overridden");
95 is(s.getPropertyPriority("font-style"), "", "font-style priority overridden");
97 is(s.getPropertyValue("font-weight"), "bold", "font-weight unchanged");
98 is(s.getPropertyPriority("font-weight"), "important",
99 "font-weight priority unchanged");
100 is(s.getPropertyValue("font-size"), "12px", "font-size unchanged");
101 is(s.getPropertyPriority("font-size"), "important",
102 "font-size priority unchanged");
103 is(s.getPropertyValue("line-height"), "30px", "line-height unchanged");
104 is(s.getPropertyPriority("line-height"), "important",
105 "line-height priority unchanged");
106 is(s.getPropertyValue("font-family"), "serif", "font-family unchanged");
107 is(s.getPropertyPriority("font-family"), "important",
108 "font-family priority unchanged");
110 is(s.getPropertyValue("text-decoration"), "line-through",
111 "text-decoration still stored");
112 is(s.getPropertyPriority("text-decoration"), "important",
113 "text-decoration priority still stored");
114 is(s.getPropertyValue("z-index"), "3",
115 "z-index still stored");
116 is(s.getPropertyPriority("z-index"), "",
117 "z-index priority still stored");
119 s.setProperty("border-radius", "2em", "");
120 is(s.getPropertyValue("border-radius"), "2em",
121 "border-radius serialization 1")
123 s.setProperty("border-top-left-radius", "3em 4em", "");
124 is(s.getPropertyValue("border-radius"),
125 "3em 2em 2em / 4em 2em 2em",
126 "border-radius serialization 2");
128 s.setProperty("border-radius", "2em / 3em", "");
129 is(s.getPropertyValue("border-radius"),
130 "2em / 3em",
131 "border-radius serialization 3")
133 s.setProperty("border-top-left-radius", "4em", "");
134 is(s.getPropertyValue("border-radius"),
135 "4em 2em 2em / 4em 3em 3em",
136 "border-radius serialization 3");
138 </script>
139 </pre>
140 </body>
141 </html>