layout/inspector/tests/test_bug877690.html

branch
TOR_BUG_9701
changeset 8
97036ab72558
equal deleted inserted replaced
-1:000000000000 0:f1a54c716395
1 <!DOCTYPE HTML>
2 <html>
3 <!--
4 https://bugzilla.mozilla.org/show_bug.cgi?id=877690
5 -->
6 <head>
7 <meta charset="utf-8">
8 <title>Test for Bug 877690</title>
9 <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
10 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
11 <script type="application/javascript">
12
13 /** Test for Bug 877690 **/
14
15 // Returns true if array contains item. False otherwise. Raises an exception if
16 // array is not an Array object. If the item is found in array, remove item.
17 function contains(array, item) {
18 if (!array.indexOf) {
19 throw new "First argument is not an array";
20 }
21 var index = array.indexOf(item);
22 if (index == -1) {
23 return false;
24 }
25 array.splice(index, 1);
26 return true;
27 }
28
29 // Returns true if values contains all and only the expected values. False otherwise.
30 function testValues(values, expected) {
31 expected.forEach(function (expectedValue) {
32 if (!contains(values, expectedValue)) {
33 return false;
34 }
35 });
36 return values.length === 0;
37 }
38
39 function do_test() {
40 var utils = SpecialPowers.Cc["@mozilla.org/inspector/dom-utils;1"]
41 .getService(SpecialPowers.Ci.inIDOMUtils);
42
43 // test a property with keywords and colors
44 var prop = "color";
45 var values = utils.getCSSValuesForProperty(prop);
46 var expected = [ "initial", "inherit", "unset", "aliceblue", "antiquewhite", "aqua", "aquamarine", "azure",
47 "beige", "bisque", "black", "blanchedalmond", "blue", "blueviolet", "brown", "burlywood",
48 "cadetblue", "chartreuse", "chocolate", "coral", "cornflowerblue", "cornsilk", "crimson",
49 "cyan", "darkblue", "darkcyan", "darkgoldenrod", "darkgray", "darkgreen", "darkgrey",
50 "darkkhaki", "darkmagenta", "darkolivegreen", "darkorange", "darkorchid", "darkred",
51 "darksalmon", "darkseagreen", "darkslateblue", "darkslategray", "darkslategrey",
52 "darkturquoise", "darkviolet", "deeppink", "deepskyblue", "dimgray", "dimgrey", "dodgerblue",
53 "firebrick", "floralwhite", "forestgreen", "fuchsia", "gainsboro", "ghostwhite", "gold",
54 "goldenrod", "gray", "grey", "green", "greenyellow", "honeydew", "hotpink", "indianred",
55 "indigo", "ivory", "khaki", "lavender", "lavenderblush", "lawngreen", "lemonchiffon", "lightblue",
56 "lightcoral", "lightcyan", "lightgoldenrodyellow", "lightgray", "lightgreen", "lightgrey",
57 "lightpink", "lightsalmon", "lightseagreen", "lightskyblue", "lightslategray", "lightslategrey",
58 "lightsteelblue", "lightyellow", "lime", "limegreen", "linen", "magenta", "maroon", "mediumaquamarine",
59 "mediumblue", "mediumorchid", "mediumpurple", "mediumseagreen", "mediumslateblue", "mediumspringgreen",
60 "mediumturquoise", "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin", "navajowhite",
61 "navy", "oldlace", "olive", "olivedrab", "orange", "orangered", "orchid", "palegoldenrod", "palegreen",
62 "paleturquoise", "palevioletred", "papayawhip", "peachpuff", "peru", "pink", "plum", "powderblue",
63 "purple", "red", "rosybrown", "royalblue", "saddlebrown", "salmon", "sandybrown", "seagreen",
64 "seashell", "sienna", "silver", "skyblue", "slateblue", "slategray", "slategrey", "snow", "springgreen",
65 "steelblue", "tan", "teal", "thistle", "tomato", "transparent", "turquoise", "violet", "wheat",
66 "white", "whitesmoke", "yellow", "yellowgreen", "rgb", "hsl", "rgba", "hsla" ];
67 ok(testValues(values, expected), "property color's values.");
68
69 // test a shorthand property
70 var prop = "background";
71 var values = utils.getCSSValuesForProperty(prop);
72 var expected = [ "initial", "inherit", "unset", "aliceblue", "antiquewhite", "aqua", "aquamarine", "azure",
73 "beige", "bisque", "black", "blanchedalmond", "blue", "blueviolet", "brown", "burlywood", "cadetblue",
74 "chartreuse", "chocolate", "coral", "cornflowerblue", "cornsilk", "crimson", "cyan", "darkblue",
75 "darkcyan", "darkgoldenrod", "darkgray", "darkgreen", "darkgrey", "darkkhaki", "darkmagenta",
76 "darkolivegreen", "darkorange", "darkorchid", "darkred", "darksalmon", "darkseagreen", "darkslateblue",
77 "darkslategray", "darkslategrey", "darkturquoise", "darkviolet", "deeppink", "deepskyblue", "dimgray",
78 "dimgrey", "dodgerblue", "firebrick", "floralwhite", "forestgreen", "fuchsia", "gainsboro", "ghostwhite",
79 "gold", "goldenrod", "gray", "grey", "green", "greenyellow", "honeydew", "hotpink", "indianred",
80 "indigo", "ivory", "khaki", "lavender", "lavenderblush", "lawngreen", "lemonchiffon", "lightblue",
81 "lightcoral", "lightcyan", "lightgoldenrodyellow", "lightgray", "lightgreen", "lightgrey", "lightpink",
82 "lightsalmon", "lightseagreen", "lightskyblue", "lightslategray", "lightslategrey", "lightsteelblue",
83 "lightyellow", "lime", "limegreen", "linen", "magenta", "maroon", "mediumaquamarine", "mediumblue",
84 "mediumorchid", "mediumpurple", "mediumseagreen", "mediumslateblue", "mediumspringgreen",
85 "mediumturquoise", "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin",
86 "navajowhite", "navy", "oldlace", "olive", "olivedrab", "orange", "orangered", "orchid", "palegoldenrod",
87 "palegreen", "paleturquoise", "palevioletred", "papayawhip", "peachpuff", "peru", "pink", "plum",
88 "powderblue", "purple", "red", "rosybrown", "royalblue", "saddlebrown", "salmon", "sandybrown",
89 "seagreen", "seashell", "sienna", "silver", "skyblue", "slateblue", "slategray", "slategrey",
90 "snow", "springgreen", "steelblue", "tan", "teal", "thistle", "tomato", "transparent", "turquoise",
91 "violet", "wheat", "white", "whitesmoke", "yellow", "yellowgreen", "no-repeat", "repeat",
92 "repeat-x", "repeat-y", "fixed", "scroll", "local", "center", "top", "bottom", "left", "right",
93 "border-box", "padding-box", "content-box", "border-box", "padding-box", "content-box", "contain",
94 "cover", "rgb", "hsl", "rgba", "hsla", "none", "-moz-element", "-moz-image-rect", "url", "linear-gradient",
95 "radial-gradient", "repeating-linear-gradient", "repeating-radial-gradient", "-moz-linear-gradient",
96 "-moz-radial-gradient", "-moz-repeating-linear-gradient", "-moz-repeating-radial-gradient" ];
97 ok(testValues(values, expected), "Shorthand property values.");
98
99 var prop = "border";
100 var values = utils.getCSSValuesForProperty(prop);
101 var expected = [ "-moz-calc", "initial", "unset", "-moz-use-text-color", "aliceblue",
102 "antiquewhite", "aqua", "aquamarine", "azure", "beige", "bisque", "black", "blanchedalmond", "blue", "blueviolet",
103 "brown", "burlywood", "cadetblue", "calc", "chartreuse", "chocolate", "coral", "cornflowerblue", "cornsilk",
104 "crimson", "cyan", "darkblue", "darkcyan", "darkgoldenrod", "darkgray", "darkgreen", "darkgrey", "darkkhaki",
105 "darkmagenta", "darkolivegreen", "darkorange", "darkorchid", "darkred", "darksalmon", "darkseagreen",
106 "darkslateblue", "darkslategray", "darkslategrey", "darkturquoise", "darkviolet", "dashed", "deeppink",
107 "deepskyblue", "dimgray", "dimgrey", "dodgerblue", "dotted", "double", "fill", "firebrick", "floralwhite",
108 "forestgreen", "fuchsia", "gainsboro", "ghostwhite", "gold", "goldenrod", "gray", "grey", "green", "greenyellow",
109 "groove", "hidden", "honeydew", "hotpink", "hsl", "hsla", "indianred", "indigo", "inherit", "inset", "ivory",
110 "khaki", "lavender", "lavenderblush", "lawngreen", "lemonchiffon", "lightblue", "lightcoral", "lightcyan",
111 "lightgoldenrodyellow", "lightgray", "lightgreen", "lightgrey", "lightpink", "lightsalmon", "lightseagreen",
112 "lightskyblue", "lightslategray", "lightslategrey", "lightsteelblue", "lightyellow", "lime", "limegreen",
113 "linen", "logical", "magenta", "maroon", "medium", "mediumaquamarine", "mediumblue", "mediumorchid",
114 "mediumpurple", "mediumseagreen", "mediumslateblue", "mediumspringgreen", "mediumturquoise",
115 "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin", "navajowhite", "navy", "none",
116 "oldlace", "olive", "olivedrab", "orange", "orangered", "orchid", "outset", "palegoldenrod", "palegreen",
117 "paleturquoise", "palevioletred", "papayawhip", "peachpuff", "peru", "physical", "pink", "plum", "powderblue",
118 "purple", "red", "repeat", "rgb", "rgba", "ridge", "rosybrown", "round", "royalblue", "saddlebrown", "salmon",
119 "sandybrown", "seagreen", "seashell", "sienna", "silver", "skyblue", "slateblue", "slategray", "slategrey",
120 "snow", "solid", "springgreen", "steelblue", "stretch", "tan", "teal", "thick", "thin", "thistle", "tomato",
121 "transparent", "turquoise", "-moz-element", "-moz-image-rect", "url", "violet", "wheat", "white", "whitesmoke",
122 "yellow", "yellowgreen", "linear-gradient", "radial-gradient", "repeating-linear-gradient",
123 "repeating-radial-gradient", "-moz-linear-gradient", "-moz-radial-gradient", "-moz-repeating-linear-gradient",
124 "-moz-repeating-radial-gradient" ]
125 ok(testValues(values, expected), "Shorthand property values.");
126
127 // test keywords only
128 var prop = "border-top";
129 var values = utils.getCSSValuesForProperty(prop);
130 var expected = [ "initial", "inherit", "unset", "thin", "medium", "thick", "none", "hidden", "dotted",
131 "dashed", "solid", "double", "groove", "ridge", "inset", "outset", "-moz-use-text-color",
132 "aliceblue", "antiquewhite", "aqua", "aquamarine", "azure", "beige", "bisque", "black",
133 "blanchedalmond", "blue", "blueviolet", "brown", "burlywood", "cadetblue", "chartreuse",
134 "chocolate", "coral", "cornflowerblue", "cornsilk", "crimson", "cyan", "darkblue", "darkcyan",
135 "darkgoldenrod", "darkgray", "darkgreen", "darkgrey", "darkkhaki", "darkmagenta", "darkolivegreen",
136 "darkorange", "darkorchid", "darkred", "darksalmon", "darkseagreen", "darkslateblue", "darkslategray",
137 "darkslategrey", "darkturquoise", "darkviolet", "deeppink", "deepskyblue", "dimgray", "dimgrey",
138 "dodgerblue", "firebrick", "floralwhite", "forestgreen", "fuchsia", "gainsboro", "ghostwhite",
139 "gold", "goldenrod", "gray", "grey", "green", "greenyellow", "honeydew", "hotpink", "indianred",
140 "indigo", "ivory", "khaki", "lavender", "lavenderblush", "lawngreen", "lemonchiffon", "lightblue",
141 "lightcoral", "lightcyan", "lightgoldenrodyellow", "lightgray", "lightgreen", "lightgrey",
142 "lightpink", "lightsalmon", "lightseagreen", "lightskyblue", "lightslategray", "lightslategrey",
143 "lightsteelblue", "lightyellow", "lime", "limegreen", "linen", "magenta", "maroon", "mediumaquamarine",
144 "mediumblue", "mediumorchid", "mediumpurple", "mediumseagreen", "mediumslateblue", "mediumspringgreen",
145 "mediumturquoise", "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin", "navajowhite",
146 "navy", "oldlace", "olive", "olivedrab", "orange", "orangered", "orchid", "palegoldenrod", "palegreen",
147 "paleturquoise", "palevioletred", "papayawhip", "peachpuff", "peru", "pink", "plum", "powderblue",
148 "purple", "red", "rosybrown", "royalblue", "saddlebrown", "salmon", "sandybrown", "seagreen", "seashell",
149 "sienna", "silver", "skyblue", "slateblue", "slategray", "slategrey", "snow", "springgreen", "steelblue",
150 "tan", "teal", "thistle", "tomato", "transparent", "turquoise", "violet", "wheat", "white", "whitesmoke",
151 "yellow", "yellowgreen", "calc", "-moz-calc", "rgb", "hsl", "rgba", "hsla" ];
152 ok(testValues(values, expected), "property border-top's values.");
153
154 // tests no keywords or colors
155 var prop = "padding-bottom";
156 var values = utils.getCSSValuesForProperty(prop);
157 var expected = [ "initial", "inherit", "unset", "calc", "-moz-calc" ];
158 ok(testValues(values, expected), "property padding-bottom's values.");
159
160 // test proprety
161 var prop = "display";
162 var values = utils.getCSSValuesForProperty(prop);
163 var expected = [ "initial", "inherit", "unset", "none", "inline", "block", "inline-block", "list-item",
164 "table", "inline-table", "table-row-group", "table-header-group", "table-footer-group", "table-row",
165 "table-column-group", "table-column", "table-cell", "table-caption", "-moz-box", "-moz-inline-box",
166 "-moz-grid", "-moz-inline-grid", "-moz-grid-group", "-moz-grid-line", "-moz-stack", "-moz-inline-stack",
167 "-moz-deck", "-moz-popup", "-moz-groupbox", "flex", "inline-flex", "grid", "inline-grid" ];
168 ok(testValues(values, expected), "property display's values.");
169
170 // test property
171 var prop = "float";
172 var values = utils.getCSSValuesForProperty(prop);
173 var expected = [ "initial", "inherit", "unset", "none", "left", "right" ];
174 ok(testValues(values, expected), "proprety float values");
175
176 // Test property with "auto"
177 var prop = "margin";
178 var values = utils.getCSSValuesForProperty(prop);
179 var expected = [ "-moz-calc", "initial", "unset", "auto", "calc", "inherit" ];
180 ok(testValues(values, expected), "property margin's values.");
181
182 // Test property with "normal"
183 var prop = "font-style";
184 var values = utils.getCSSValuesForProperty(prop);
185 var expected = [ "initial", "inherit", "unset", "italic", "normal", "oblique" ];
186 ok(testValues(values, expected), "property font-style's values.");
187
188 // Test property with "cubic-bezier" and "step".
189 var prop = "-moz-transition";
190 var values = utils.getCSSValuesForProperty(prop);
191 var expected = [ "initial", "all", "unset", "cubic-bezier", "ease", "ease-in", "ease-in-out",
192 "ease-out", "inherit", "linear", "none", "step-end", "step-start",
193 "steps" ];
194 ok(testValues(values, expected), "property -moz-transition's values.");
195
196 // test invalid property
197 var prop = "invalidProperty";
198 try {
199 utils.getCSSValuesForProperty(prop);
200 ok(false, "invalid property should throw an exception");
201 }
202 catch(e) {
203 // test passed
204 }
205
206 // test border-image propery, for bug 973345
207 var prop = "border-image";
208 var values = utils.getCSSValuesForProperty(prop);
209 var expected = [ "-moz-calc", "initial", "unset", "-moz-use-text-color", "aliceblue",
210 "antiquewhite", "aqua", "aquamarine", "azure", "beige", "bisque", "black", "blanchedalmond", "blue", "blueviolet",
211 "brown", "burlywood", "cadetblue", "calc", "chartreuse", "chocolate", "coral", "cornflowerblue", "cornsilk",
212 "crimson", "cyan", "darkblue", "darkcyan", "darkgoldenrod", "darkgray", "darkgreen", "darkgrey", "darkkhaki",
213 "darkmagenta", "darkolivegreen", "darkorange", "darkorchid", "darkred", "darksalmon", "darkseagreen",
214 "darkslateblue", "darkslategray", "darkslategrey", "darkturquoise", "darkviolet", "dashed", "deeppink",
215 "deepskyblue", "dimgray", "dimgrey", "dodgerblue", "dotted", "double", "fill", "firebrick", "floralwhite",
216 "forestgreen", "fuchsia", "gainsboro", "ghostwhite", "gold", "goldenrod", "gray", "grey", "green", "greenyellow",
217 "groove", "hidden", "honeydew", "hotpink", "hsl", "hsla", "indianred", "indigo", "inherit", "inset", "ivory",
218 "khaki", "lavender", "lavenderblush", "lawngreen", "lemonchiffon", "lightblue", "lightcoral", "lightcyan",
219 "lightgoldenrodyellow", "lightgray", "lightgreen", "lightgrey", "lightpink", "lightsalmon", "lightseagreen",
220 "lightskyblue", "lightslategray", "lightslategrey", "lightsteelblue", "lightyellow", "lime", "limegreen",
221 "linen", "logical", "magenta", "maroon", "medium", "mediumaquamarine", "mediumblue", "mediumorchid",
222 "mediumpurple", "mediumseagreen", "mediumslateblue", "mediumspringgreen", "mediumturquoise",
223 "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin", "navajowhite", "navy", "none",
224 "oldlace", "olive", "olivedrab", "orange", "orangered", "orchid", "outset", "palegoldenrod", "palegreen",
225 "paleturquoise", "palevioletred", "papayawhip", "peachpuff", "peru", "physical", "pink", "plum", "powderblue",
226 "purple", "red", "repeat", "rgb", "rgba", "ridge", "rosybrown", "round", "royalblue", "saddlebrown", "salmon",
227 "sandybrown", "seagreen", "seashell", "sienna", "silver", "skyblue", "slateblue", "slategray", "slategrey",
228 "snow", "solid", "springgreen", "steelblue", "stretch", "tan", "teal", "thick", "thin", "thistle", "tomato",
229 "transparent", "turquoise", "-moz-element", "-moz-image-rect", "url", "violet", "wheat", "white", "whitesmoke",
230 "yellow", "yellowgreen", "linear-gradient", "radial-gradient", "repeating-linear-gradient",
231 "repeating-radial-gradient", "-moz-linear-gradient", "-moz-radial-gradient", "-moz-repeating-linear-gradient",
232 "-moz-repeating-radial-gradient" ]
233 ok(testValues(values, expected), "property border-image's values.");
234
235 SimpleTest.finish();
236 }
237
238 SimpleTest.waitForExplicitFinish();
239 addLoadEvent(do_test);
240
241 </script>
242 </head>
243 <body>
244 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=877690">Mozilla Bug 877690</a>
245 <p id="display"></p>
246 <div id="content" style="display: none">
247 </div>
248 <pre id="test">
249 </pre>
250 </body>
251 </html>

mercurial