1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/layout/inspector/tests/test_bug877690.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,251 @@ 1.4 +<!DOCTYPE HTML> 1.5 +<html> 1.6 +<!-- 1.7 +https://bugzilla.mozilla.org/show_bug.cgi?id=877690 1.8 +--> 1.9 +<head> 1.10 +<meta charset="utf-8"> 1.11 +<title>Test for Bug 877690</title> 1.12 +<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> 1.13 +<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> 1.14 +<script type="application/javascript"> 1.15 + 1.16 +/** Test for Bug 877690 **/ 1.17 + 1.18 +// Returns true if array contains item. False otherwise. Raises an exception if 1.19 +// array is not an Array object. If the item is found in array, remove item. 1.20 +function contains(array, item) { 1.21 + if (!array.indexOf) { 1.22 + throw new "First argument is not an array"; 1.23 + } 1.24 + var index = array.indexOf(item); 1.25 + if (index == -1) { 1.26 + return false; 1.27 + } 1.28 + array.splice(index, 1); 1.29 + return true; 1.30 +} 1.31 + 1.32 +// Returns true if values contains all and only the expected values. False otherwise. 1.33 +function testValues(values, expected) { 1.34 + expected.forEach(function (expectedValue) { 1.35 + if (!contains(values, expectedValue)) { 1.36 + return false; 1.37 + } 1.38 + }); 1.39 + return values.length === 0; 1.40 +} 1.41 + 1.42 +function do_test() { 1.43 + var utils = SpecialPowers.Cc["@mozilla.org/inspector/dom-utils;1"] 1.44 + .getService(SpecialPowers.Ci.inIDOMUtils); 1.45 + 1.46 + // test a property with keywords and colors 1.47 + var prop = "color"; 1.48 + var values = utils.getCSSValuesForProperty(prop); 1.49 + var expected = [ "initial", "inherit", "unset", "aliceblue", "antiquewhite", "aqua", "aquamarine", "azure", 1.50 + "beige", "bisque", "black", "blanchedalmond", "blue", "blueviolet", "brown", "burlywood", 1.51 + "cadetblue", "chartreuse", "chocolate", "coral", "cornflowerblue", "cornsilk", "crimson", 1.52 + "cyan", "darkblue", "darkcyan", "darkgoldenrod", "darkgray", "darkgreen", "darkgrey", 1.53 + "darkkhaki", "darkmagenta", "darkolivegreen", "darkorange", "darkorchid", "darkred", 1.54 + "darksalmon", "darkseagreen", "darkslateblue", "darkslategray", "darkslategrey", 1.55 + "darkturquoise", "darkviolet", "deeppink", "deepskyblue", "dimgray", "dimgrey", "dodgerblue", 1.56 + "firebrick", "floralwhite", "forestgreen", "fuchsia", "gainsboro", "ghostwhite", "gold", 1.57 + "goldenrod", "gray", "grey", "green", "greenyellow", "honeydew", "hotpink", "indianred", 1.58 + "indigo", "ivory", "khaki", "lavender", "lavenderblush", "lawngreen", "lemonchiffon", "lightblue", 1.59 + "lightcoral", "lightcyan", "lightgoldenrodyellow", "lightgray", "lightgreen", "lightgrey", 1.60 + "lightpink", "lightsalmon", "lightseagreen", "lightskyblue", "lightslategray", "lightslategrey", 1.61 + "lightsteelblue", "lightyellow", "lime", "limegreen", "linen", "magenta", "maroon", "mediumaquamarine", 1.62 + "mediumblue", "mediumorchid", "mediumpurple", "mediumseagreen", "mediumslateblue", "mediumspringgreen", 1.63 + "mediumturquoise", "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin", "navajowhite", 1.64 + "navy", "oldlace", "olive", "olivedrab", "orange", "orangered", "orchid", "palegoldenrod", "palegreen", 1.65 + "paleturquoise", "palevioletred", "papayawhip", "peachpuff", "peru", "pink", "plum", "powderblue", 1.66 + "purple", "red", "rosybrown", "royalblue", "saddlebrown", "salmon", "sandybrown", "seagreen", 1.67 + "seashell", "sienna", "silver", "skyblue", "slateblue", "slategray", "slategrey", "snow", "springgreen", 1.68 + "steelblue", "tan", "teal", "thistle", "tomato", "transparent", "turquoise", "violet", "wheat", 1.69 + "white", "whitesmoke", "yellow", "yellowgreen", "rgb", "hsl", "rgba", "hsla" ]; 1.70 + ok(testValues(values, expected), "property color's values."); 1.71 + 1.72 + // test a shorthand property 1.73 + var prop = "background"; 1.74 + var values = utils.getCSSValuesForProperty(prop); 1.75 + var expected = [ "initial", "inherit", "unset", "aliceblue", "antiquewhite", "aqua", "aquamarine", "azure", 1.76 + "beige", "bisque", "black", "blanchedalmond", "blue", "blueviolet", "brown", "burlywood", "cadetblue", 1.77 + "chartreuse", "chocolate", "coral", "cornflowerblue", "cornsilk", "crimson", "cyan", "darkblue", 1.78 + "darkcyan", "darkgoldenrod", "darkgray", "darkgreen", "darkgrey", "darkkhaki", "darkmagenta", 1.79 + "darkolivegreen", "darkorange", "darkorchid", "darkred", "darksalmon", "darkseagreen", "darkslateblue", 1.80 + "darkslategray", "darkslategrey", "darkturquoise", "darkviolet", "deeppink", "deepskyblue", "dimgray", 1.81 + "dimgrey", "dodgerblue", "firebrick", "floralwhite", "forestgreen", "fuchsia", "gainsboro", "ghostwhite", 1.82 + "gold", "goldenrod", "gray", "grey", "green", "greenyellow", "honeydew", "hotpink", "indianred", 1.83 + "indigo", "ivory", "khaki", "lavender", "lavenderblush", "lawngreen", "lemonchiffon", "lightblue", 1.84 + "lightcoral", "lightcyan", "lightgoldenrodyellow", "lightgray", "lightgreen", "lightgrey", "lightpink", 1.85 + "lightsalmon", "lightseagreen", "lightskyblue", "lightslategray", "lightslategrey", "lightsteelblue", 1.86 + "lightyellow", "lime", "limegreen", "linen", "magenta", "maroon", "mediumaquamarine", "mediumblue", 1.87 + "mediumorchid", "mediumpurple", "mediumseagreen", "mediumslateblue", "mediumspringgreen", 1.88 + "mediumturquoise", "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin", 1.89 + "navajowhite", "navy", "oldlace", "olive", "olivedrab", "orange", "orangered", "orchid", "palegoldenrod", 1.90 + "palegreen", "paleturquoise", "palevioletred", "papayawhip", "peachpuff", "peru", "pink", "plum", 1.91 + "powderblue", "purple", "red", "rosybrown", "royalblue", "saddlebrown", "salmon", "sandybrown", 1.92 + "seagreen", "seashell", "sienna", "silver", "skyblue", "slateblue", "slategray", "slategrey", 1.93 + "snow", "springgreen", "steelblue", "tan", "teal", "thistle", "tomato", "transparent", "turquoise", 1.94 + "violet", "wheat", "white", "whitesmoke", "yellow", "yellowgreen", "no-repeat", "repeat", 1.95 + "repeat-x", "repeat-y", "fixed", "scroll", "local", "center", "top", "bottom", "left", "right", 1.96 + "border-box", "padding-box", "content-box", "border-box", "padding-box", "content-box", "contain", 1.97 + "cover", "rgb", "hsl", "rgba", "hsla", "none", "-moz-element", "-moz-image-rect", "url", "linear-gradient", 1.98 + "radial-gradient", "repeating-linear-gradient", "repeating-radial-gradient", "-moz-linear-gradient", 1.99 + "-moz-radial-gradient", "-moz-repeating-linear-gradient", "-moz-repeating-radial-gradient" ]; 1.100 + ok(testValues(values, expected), "Shorthand property values."); 1.101 + 1.102 + var prop = "border"; 1.103 + var values = utils.getCSSValuesForProperty(prop); 1.104 + var expected = [ "-moz-calc", "initial", "unset", "-moz-use-text-color", "aliceblue", 1.105 + "antiquewhite", "aqua", "aquamarine", "azure", "beige", "bisque", "black", "blanchedalmond", "blue", "blueviolet", 1.106 + "brown", "burlywood", "cadetblue", "calc", "chartreuse", "chocolate", "coral", "cornflowerblue", "cornsilk", 1.107 + "crimson", "cyan", "darkblue", "darkcyan", "darkgoldenrod", "darkgray", "darkgreen", "darkgrey", "darkkhaki", 1.108 + "darkmagenta", "darkolivegreen", "darkorange", "darkorchid", "darkred", "darksalmon", "darkseagreen", 1.109 + "darkslateblue", "darkslategray", "darkslategrey", "darkturquoise", "darkviolet", "dashed", "deeppink", 1.110 + "deepskyblue", "dimgray", "dimgrey", "dodgerblue", "dotted", "double", "fill", "firebrick", "floralwhite", 1.111 + "forestgreen", "fuchsia", "gainsboro", "ghostwhite", "gold", "goldenrod", "gray", "grey", "green", "greenyellow", 1.112 + "groove", "hidden", "honeydew", "hotpink", "hsl", "hsla", "indianred", "indigo", "inherit", "inset", "ivory", 1.113 + "khaki", "lavender", "lavenderblush", "lawngreen", "lemonchiffon", "lightblue", "lightcoral", "lightcyan", 1.114 + "lightgoldenrodyellow", "lightgray", "lightgreen", "lightgrey", "lightpink", "lightsalmon", "lightseagreen", 1.115 + "lightskyblue", "lightslategray", "lightslategrey", "lightsteelblue", "lightyellow", "lime", "limegreen", 1.116 + "linen", "logical", "magenta", "maroon", "medium", "mediumaquamarine", "mediumblue", "mediumorchid", 1.117 + "mediumpurple", "mediumseagreen", "mediumslateblue", "mediumspringgreen", "mediumturquoise", 1.118 + "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin", "navajowhite", "navy", "none", 1.119 + "oldlace", "olive", "olivedrab", "orange", "orangered", "orchid", "outset", "palegoldenrod", "palegreen", 1.120 + "paleturquoise", "palevioletred", "papayawhip", "peachpuff", "peru", "physical", "pink", "plum", "powderblue", 1.121 + "purple", "red", "repeat", "rgb", "rgba", "ridge", "rosybrown", "round", "royalblue", "saddlebrown", "salmon", 1.122 + "sandybrown", "seagreen", "seashell", "sienna", "silver", "skyblue", "slateblue", "slategray", "slategrey", 1.123 + "snow", "solid", "springgreen", "steelblue", "stretch", "tan", "teal", "thick", "thin", "thistle", "tomato", 1.124 + "transparent", "turquoise", "-moz-element", "-moz-image-rect", "url", "violet", "wheat", "white", "whitesmoke", 1.125 + "yellow", "yellowgreen", "linear-gradient", "radial-gradient", "repeating-linear-gradient", 1.126 + "repeating-radial-gradient", "-moz-linear-gradient", "-moz-radial-gradient", "-moz-repeating-linear-gradient", 1.127 + "-moz-repeating-radial-gradient" ] 1.128 + ok(testValues(values, expected), "Shorthand property values."); 1.129 + 1.130 + // test keywords only 1.131 + var prop = "border-top"; 1.132 + var values = utils.getCSSValuesForProperty(prop); 1.133 + var expected = [ "initial", "inherit", "unset", "thin", "medium", "thick", "none", "hidden", "dotted", 1.134 + "dashed", "solid", "double", "groove", "ridge", "inset", "outset", "-moz-use-text-color", 1.135 + "aliceblue", "antiquewhite", "aqua", "aquamarine", "azure", "beige", "bisque", "black", 1.136 + "blanchedalmond", "blue", "blueviolet", "brown", "burlywood", "cadetblue", "chartreuse", 1.137 + "chocolate", "coral", "cornflowerblue", "cornsilk", "crimson", "cyan", "darkblue", "darkcyan", 1.138 + "darkgoldenrod", "darkgray", "darkgreen", "darkgrey", "darkkhaki", "darkmagenta", "darkolivegreen", 1.139 + "darkorange", "darkorchid", "darkred", "darksalmon", "darkseagreen", "darkslateblue", "darkslategray", 1.140 + "darkslategrey", "darkturquoise", "darkviolet", "deeppink", "deepskyblue", "dimgray", "dimgrey", 1.141 + "dodgerblue", "firebrick", "floralwhite", "forestgreen", "fuchsia", "gainsboro", "ghostwhite", 1.142 + "gold", "goldenrod", "gray", "grey", "green", "greenyellow", "honeydew", "hotpink", "indianred", 1.143 + "indigo", "ivory", "khaki", "lavender", "lavenderblush", "lawngreen", "lemonchiffon", "lightblue", 1.144 + "lightcoral", "lightcyan", "lightgoldenrodyellow", "lightgray", "lightgreen", "lightgrey", 1.145 + "lightpink", "lightsalmon", "lightseagreen", "lightskyblue", "lightslategray", "lightslategrey", 1.146 + "lightsteelblue", "lightyellow", "lime", "limegreen", "linen", "magenta", "maroon", "mediumaquamarine", 1.147 + "mediumblue", "mediumorchid", "mediumpurple", "mediumseagreen", "mediumslateblue", "mediumspringgreen", 1.148 + "mediumturquoise", "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin", "navajowhite", 1.149 + "navy", "oldlace", "olive", "olivedrab", "orange", "orangered", "orchid", "palegoldenrod", "palegreen", 1.150 + "paleturquoise", "palevioletred", "papayawhip", "peachpuff", "peru", "pink", "plum", "powderblue", 1.151 + "purple", "red", "rosybrown", "royalblue", "saddlebrown", "salmon", "sandybrown", "seagreen", "seashell", 1.152 + "sienna", "silver", "skyblue", "slateblue", "slategray", "slategrey", "snow", "springgreen", "steelblue", 1.153 + "tan", "teal", "thistle", "tomato", "transparent", "turquoise", "violet", "wheat", "white", "whitesmoke", 1.154 + "yellow", "yellowgreen", "calc", "-moz-calc", "rgb", "hsl", "rgba", "hsla" ]; 1.155 + ok(testValues(values, expected), "property border-top's values."); 1.156 + 1.157 + // tests no keywords or colors 1.158 + var prop = "padding-bottom"; 1.159 + var values = utils.getCSSValuesForProperty(prop); 1.160 + var expected = [ "initial", "inherit", "unset", "calc", "-moz-calc" ]; 1.161 + ok(testValues(values, expected), "property padding-bottom's values."); 1.162 + 1.163 + // test proprety 1.164 + var prop = "display"; 1.165 + var values = utils.getCSSValuesForProperty(prop); 1.166 + var expected = [ "initial", "inherit", "unset", "none", "inline", "block", "inline-block", "list-item", 1.167 + "table", "inline-table", "table-row-group", "table-header-group", "table-footer-group", "table-row", 1.168 + "table-column-group", "table-column", "table-cell", "table-caption", "-moz-box", "-moz-inline-box", 1.169 + "-moz-grid", "-moz-inline-grid", "-moz-grid-group", "-moz-grid-line", "-moz-stack", "-moz-inline-stack", 1.170 + "-moz-deck", "-moz-popup", "-moz-groupbox", "flex", "inline-flex", "grid", "inline-grid" ]; 1.171 + ok(testValues(values, expected), "property display's values."); 1.172 + 1.173 + // test property 1.174 + var prop = "float"; 1.175 + var values = utils.getCSSValuesForProperty(prop); 1.176 + var expected = [ "initial", "inherit", "unset", "none", "left", "right" ]; 1.177 + ok(testValues(values, expected), "proprety float values"); 1.178 + 1.179 + // Test property with "auto" 1.180 + var prop = "margin"; 1.181 + var values = utils.getCSSValuesForProperty(prop); 1.182 + var expected = [ "-moz-calc", "initial", "unset", "auto", "calc", "inherit" ]; 1.183 + ok(testValues(values, expected), "property margin's values."); 1.184 + 1.185 + // Test property with "normal" 1.186 + var prop = "font-style"; 1.187 + var values = utils.getCSSValuesForProperty(prop); 1.188 + var expected = [ "initial", "inherit", "unset", "italic", "normal", "oblique" ]; 1.189 + ok(testValues(values, expected), "property font-style's values."); 1.190 + 1.191 + // Test property with "cubic-bezier" and "step". 1.192 + var prop = "-moz-transition"; 1.193 + var values = utils.getCSSValuesForProperty(prop); 1.194 + var expected = [ "initial", "all", "unset", "cubic-bezier", "ease", "ease-in", "ease-in-out", 1.195 + "ease-out", "inherit", "linear", "none", "step-end", "step-start", 1.196 + "steps" ]; 1.197 + ok(testValues(values, expected), "property -moz-transition's values."); 1.198 + 1.199 + // test invalid property 1.200 + var prop = "invalidProperty"; 1.201 + try { 1.202 + utils.getCSSValuesForProperty(prop); 1.203 + ok(false, "invalid property should throw an exception"); 1.204 + } 1.205 + catch(e) { 1.206 + // test passed 1.207 + } 1.208 + 1.209 + // test border-image propery, for bug 973345 1.210 + var prop = "border-image"; 1.211 + var values = utils.getCSSValuesForProperty(prop); 1.212 + var expected = [ "-moz-calc", "initial", "unset", "-moz-use-text-color", "aliceblue", 1.213 + "antiquewhite", "aqua", "aquamarine", "azure", "beige", "bisque", "black", "blanchedalmond", "blue", "blueviolet", 1.214 + "brown", "burlywood", "cadetblue", "calc", "chartreuse", "chocolate", "coral", "cornflowerblue", "cornsilk", 1.215 + "crimson", "cyan", "darkblue", "darkcyan", "darkgoldenrod", "darkgray", "darkgreen", "darkgrey", "darkkhaki", 1.216 + "darkmagenta", "darkolivegreen", "darkorange", "darkorchid", "darkred", "darksalmon", "darkseagreen", 1.217 + "darkslateblue", "darkslategray", "darkslategrey", "darkturquoise", "darkviolet", "dashed", "deeppink", 1.218 + "deepskyblue", "dimgray", "dimgrey", "dodgerblue", "dotted", "double", "fill", "firebrick", "floralwhite", 1.219 + "forestgreen", "fuchsia", "gainsboro", "ghostwhite", "gold", "goldenrod", "gray", "grey", "green", "greenyellow", 1.220 + "groove", "hidden", "honeydew", "hotpink", "hsl", "hsla", "indianred", "indigo", "inherit", "inset", "ivory", 1.221 + "khaki", "lavender", "lavenderblush", "lawngreen", "lemonchiffon", "lightblue", "lightcoral", "lightcyan", 1.222 + "lightgoldenrodyellow", "lightgray", "lightgreen", "lightgrey", "lightpink", "lightsalmon", "lightseagreen", 1.223 + "lightskyblue", "lightslategray", "lightslategrey", "lightsteelblue", "lightyellow", "lime", "limegreen", 1.224 + "linen", "logical", "magenta", "maroon", "medium", "mediumaquamarine", "mediumblue", "mediumorchid", 1.225 + "mediumpurple", "mediumseagreen", "mediumslateblue", "mediumspringgreen", "mediumturquoise", 1.226 + "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin", "navajowhite", "navy", "none", 1.227 + "oldlace", "olive", "olivedrab", "orange", "orangered", "orchid", "outset", "palegoldenrod", "palegreen", 1.228 + "paleturquoise", "palevioletred", "papayawhip", "peachpuff", "peru", "physical", "pink", "plum", "powderblue", 1.229 + "purple", "red", "repeat", "rgb", "rgba", "ridge", "rosybrown", "round", "royalblue", "saddlebrown", "salmon", 1.230 + "sandybrown", "seagreen", "seashell", "sienna", "silver", "skyblue", "slateblue", "slategray", "slategrey", 1.231 + "snow", "solid", "springgreen", "steelblue", "stretch", "tan", "teal", "thick", "thin", "thistle", "tomato", 1.232 + "transparent", "turquoise", "-moz-element", "-moz-image-rect", "url", "violet", "wheat", "white", "whitesmoke", 1.233 + "yellow", "yellowgreen", "linear-gradient", "radial-gradient", "repeating-linear-gradient", 1.234 + "repeating-radial-gradient", "-moz-linear-gradient", "-moz-radial-gradient", "-moz-repeating-linear-gradient", 1.235 + "-moz-repeating-radial-gradient" ] 1.236 + ok(testValues(values, expected), "property border-image's values."); 1.237 + 1.238 + SimpleTest.finish(); 1.239 +} 1.240 + 1.241 +SimpleTest.waitForExplicitFinish(); 1.242 +addLoadEvent(do_test); 1.243 + 1.244 +</script> 1.245 +</head> 1.246 +<body> 1.247 +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=877690">Mozilla Bug 877690</a> 1.248 +<p id="display"></p> 1.249 +<div id="content" style="display: none"> 1.250 +</div> 1.251 +<pre id="test"> 1.252 +</pre> 1.253 +</body> 1.254 +</html>