layout/inspector/tests/test_bug877690.html

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

     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">
    13 /** Test for Bug 877690 **/
    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 }
    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 }
    39 function do_test() {
    40   var utils = SpecialPowers.Cc["@mozilla.org/inspector/dom-utils;1"]
    41     .getService(SpecialPowers.Ci.inIDOMUtils);
    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.");
    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.");
    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.");
   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.");
   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.");
   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.");
   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");
   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.");
   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.");
   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.");
   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   }
   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.");
   235   SimpleTest.finish();
   236 }
   238 SimpleTest.waitForExplicitFinish();
   239 addLoadEvent(do_test);
   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