summaryrefslogtreecommitdiffstats
path: root/layout/inspector/tests/test_bug877690.html
diff options
context:
space:
mode:
Diffstat (limited to 'layout/inspector/tests/test_bug877690.html')
-rw-r--r--layout/inspector/tests/test_bug877690.html262
1 files changed, 262 insertions, 0 deletions
diff --git a/layout/inspector/tests/test_bug877690.html b/layout/inspector/tests/test_bug877690.html
new file mode 100644
index 0000000000..1bd806606b
--- /dev/null
+++ b/layout/inspector/tests/test_bug877690.html
@@ -0,0 +1,262 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=877690
+-->
+<head>
+<meta charset="utf-8">
+<title>Test for Bug 877690</title>
+<script src="/tests/SimpleTest/SimpleTest.js"></script>
+<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+<script type="application/javascript">
+
+/** Test for Bug 877690 **/
+
+const InspectorUtils = SpecialPowers.InspectorUtils;
+
+// Returns true if values contains all and only the expected values. False otherwise.
+function testValues(values, expected) {
+ values.sort();
+ expected.sort();
+
+ if (values.length !== expected.length) {
+ return false;
+ }
+
+ for (var i = 0; i < values.length; ++i) {
+ if (values[i] !== expected[i]) {
+ return false;
+ }
+ }
+ return true;
+}
+
+function do_test() {
+ var allColors = [ "COLOR", "currentColor", "transparent", "rgb", "rgba", "hsl", "hsla" ];
+ var allGradients = [
+ "linear-gradient",
+ "-webkit-linear-gradient",
+ "-moz-linear-gradient",
+ "repeating-linear-gradient",
+ "-webkit-repeating-linear-gradient",
+ "-moz-repeating-linear-gradient",
+ "radial-gradient",
+ "-webkit-radial-gradient",
+ "-moz-radial-gradient",
+ "repeating-radial-gradient",
+ "-webkit-repeating-radial-gradient",
+ "-moz-repeating-radial-gradient",
+ "-webkit-gradient",
+ "conic-gradient",
+ "repeating-conic-gradient",
+ ];
+
+ // test a property with keywords and colors
+ var prop = "color";
+ var values = InspectorUtils.getCSSValuesForProperty(prop);
+ var expected = [ "initial", "inherit", "unset", "revert", ...allColors ];
+ ok(testValues(values, expected), "property color's values.");
+
+ // test a shorthand property
+ var prop = "background";
+ var values = InspectorUtils.getCSSValuesForProperty(prop);
+ var expected = [ "auto", "initial", "inherit", "unset", "revert", ...allColors, "no-repeat", "repeat",
+ "repeat-x", "repeat-y", "space", "round", "fixed", "scroll", "local", "center", "top", "bottom", "left", "right",
+ "border-box", "padding-box", "content-box", "text", "contain",
+ "cover", "none", "-moz-element", "-moz-image-rect", "url", ...allGradients ];
+
+ if(SpecialPowers.getBoolPref("layout.css.image-set.enabled")) {
+ expected.push("image-set");
+ }
+
+ if(SpecialPowers.getBoolPref("layout.css.cross-fade.enabled")) {
+ expected.push("cross-fade");
+ }
+
+ ok(testValues(values, expected), "property background values.");
+
+ var prop = "border";
+ var values = InspectorUtils.getCSSValuesForProperty(prop);
+ var expected = [ "initial", "unset", "revert", "dashed", "dotted", "double",
+ "groove", "hidden", "inherit", "inset", "medium", "none", "outset", "ridge",
+ "solid", "thick", "thin", ...allColors ]
+ ok(testValues(values, expected), "property border values.");
+
+ // test keywords only
+ var prop = "border-top";
+ var values = InspectorUtils.getCSSValuesForProperty(prop);
+ var expected = [ "initial", "inherit", "revert", "unset", "thin", "medium", "thick", "none", "hidden", "dotted",
+ "dashed", "solid", "double", "groove", "ridge", "inset", "outset", ...allColors ];
+ ok(testValues(values, expected), "property border-top's values.");
+
+ // tests no keywords or colors
+ var prop = "padding-bottom";
+ var values = InspectorUtils.getCSSValuesForProperty(prop);
+ var expected = [ "initial", "inherit", "unset", "revert" ];
+ ok(testValues(values, expected), "property padding-bottom's values.");
+
+ // test proprety
+ var prop = "display";
+ var values = InspectorUtils.getCSSValuesForProperty(prop);
+ var expected = [ "initial", "inherit", "unset", "revert", "none", "inline", "block", "inline-block", "list-item",
+ "table", "inline-table", "table-row-group", "table-header-group", "table-footer-group", "table-row",
+ "table-column-group", "table-column", "table-cell", "table-caption",
+ "flex", "inline-flex", "-webkit-box", "-webkit-inline-box",
+ "grid", "inline-grid", "inline list-item", "inline flow-root list-item", "flow-root list-item",
+ "ruby", "ruby-base", "ruby-base-container", "ruby-text", "ruby-text-container", "block ruby",
+ "contents", "flow-root" ];
+ ok(testValues(values, expected), "property display's values.");
+
+ // test property
+ var prop = "float";
+ var values = InspectorUtils.getCSSValuesForProperty(prop);
+ var expected = [ "initial", "inherit", "unset", "revert", "none", "left", "right", "inline-start", "inline-end" ];
+ ok(testValues(values, expected), "property float's values.");
+
+ // Test property with "auto"
+ var prop = "margin";
+ var values = InspectorUtils.getCSSValuesForProperty(prop);
+ var expected = [ "initial", "unset", "auto", "inherit", "revert" ];
+ ok(testValues(values, expected), "property margin's values.");
+
+ // Test property with "normal"
+ var prop = "font-style";
+ var values = InspectorUtils.getCSSValuesForProperty(prop);
+ var expected = [ "initial", "inherit", "unset", "revert", "italic", "normal", "oblique" ];
+ ok(testValues(values, expected), "property font-style's values.");
+
+ // Test property with "cubic-bezier" and "step".
+ var prop = "-moz-transition";
+ var values = InspectorUtils.getCSSValuesForProperty(prop);
+ var expected = [ "initial", "all", "unset", "cubic-bezier", "ease", "ease-in", "ease-in-out",
+ "ease-out", "inherit", "revert", "linear", "none", "step-end", "step-start",
+ "steps" ];
+ ok(testValues(values, expected), "property -moz-transition's values.");
+
+ // test invalid property
+ var prop = "invalidProperty";
+ try {
+ InspectorUtils.getCSSValuesForProperty(prop);
+ ok(false, "invalid property should throw an exception");
+ }
+ catch(e) {
+ // test passed
+ }
+
+ // test border-image property, for bug 973345
+ var prop = "border-image";
+ var values = InspectorUtils.getCSSValuesForProperty(prop);
+ var expected = [ "auto", "inherit", "revert", "initial", "unset", "repeat", "stretch",
+ "-moz-element", "-moz-image-rect", "url", ...allGradients,
+ "fill", "none", "round", "space" ];
+
+ if(SpecialPowers.getBoolPref("layout.css.image-set.enabled")) {
+ expected.push("image-set");
+ }
+
+ if(SpecialPowers.getBoolPref("layout.css.cross-fade.enabled")) {
+ expected.push("cross-fade");
+ }
+
+ ok(testValues(values, expected), "property border-image's values.");
+
+ var prop = "background-size"
+ var values = InspectorUtils.getCSSValuesForProperty(prop);
+ var expected = [ "auto", "inherit", "revert", "initial", "unset", "contain", "cover" ];
+ ok(testValues(values, expected), "property background-size's values.");
+
+ // Regression test for bug 1255401.
+ var prop = "all"
+ var values = InspectorUtils.getCSSValuesForProperty(prop);
+ var expected = [ "inherit", "initial", "unset", "revert" ];
+ ok(testValues(values, expected), "property all's values.");
+
+ var prop = "quotes"
+ var values = InspectorUtils.getCSSValuesForProperty(prop);
+ var expected = [ "inherit", "initial", "unset", "revert", "auto", "none" ];
+ ok(testValues(values, expected), "property quotes's values.");
+
+ // Regression test for bug 1255384.
+ for (prop of ["counter-increment", "counter-reset"]) {
+ var values = InspectorUtils.getCSSValuesForProperty(prop);
+ var expected = [ "inherit", "initial", "unset", "none", "revert" ];
+ ok(testValues(values, expected), "property " + prop + "'s values.");
+ }
+
+ // Regression test for bug 1430616
+ var prop = "text-align";
+ var values = InspectorUtils.getCSSValuesForProperty(prop);
+ ok(values.includes("match-parent"), "property text-align includes match-parent");
+
+ // Regression test for bug 1255402.
+ var expected = [ "inherit", "initial", "unset", "revert", "left", "right",
+ "top", "center", "bottom" ];
+ for (prop of ["object-position", "perspective-origin"]) {
+ var values = InspectorUtils.getCSSValuesForProperty(prop);
+ ok(testValues(values, expected), "property " + prop + "'s values");
+ }
+
+ // Regression test for bug 1255378.
+ var expected = [ "inherit", "initial", "unset", "revert", "none", ...allColors ];
+ var values = InspectorUtils.getCSSValuesForProperty("text-shadow");
+ ok(testValues(values, expected), "property text-shadow's values");
+
+ var expected = [ "inherit", "initial", "unset", "revert", "inset", "none", ...allColors ];
+ var values = InspectorUtils.getCSSValuesForProperty("box-shadow");
+ ok(testValues(values, expected), "property box-shadow's values");
+
+ // Regression test for bug 1255379.
+ var expected = [ "inherit", "initial", "unset", "revert", "none", "url",
+ "polygon", "circle", "ellipse", "inset", "path",
+ "fill-box", "stroke-box", "view-box", "margin-box",
+ "border-box", "padding-box", "content-box" ];
+ var values = InspectorUtils.getCSSValuesForProperty("clip-path");
+ ok(testValues(values, expected), "property clip-path's values");
+
+ var expected = [ "inherit", "initial", "unset", "revert", "auto", "rect" ];
+ var values = InspectorUtils.getCSSValuesForProperty("clip");
+ ok(testValues(values, expected), "property clip's values");
+
+ // Regression test for bug 1255380.
+ var expected = [ "normal", "none", "url", "counter", "counters",
+ "attr", "open-quote", "close-quote", "no-open-quote",
+ "no-close-quote", "inherit", "initial", "unset", "revert",
+ "-moz-alt-content" ];
+ var values = InspectorUtils.getCSSValuesForProperty("content");
+ ok(testValues(values, expected), "property counter's values");
+
+ // Regression test for bug 1255369.
+ var expected = ["none", "decimal", "decimal-leading-zero", "arabic-indic", "armenian",
+ "upper-armenian", "lower-armenian", "bengali", "cambodian", "khmer",
+ "cjk-decimal", "devanagari", "georgian", "gujarati", "gurmukhi", "hebrew",
+ "kannada", "lao", "malayalam", "mongolian", "myanmar", "oriya", "persian",
+ "lower-roman", "upper-roman", "tamil", "telugu", "thai", "tibetan",
+ "lower-alpha", "lower-latin", "upper-alpha", "upper-latin",
+ "cjk-earthly-branch", "cjk-heavenly-stem", "lower-greek",
+ "hiragana", "hiragana-iroha", "katakana", "katakana-iroha",
+ "disc", "circle", "square", "disclosure-open", "disclosure-closed",
+ "japanese-informal", "japanese-formal",
+ "korean-hangul-formal", "korean-hanja-informal", "korean-hanja-formal",
+ "simp-chinese-informal", "simp-chinese-formal",
+ "trad-chinese-informal", "trad-chinese-formal", "cjk-ideographic",
+ "ethiopic-numeric", "symbols", "inherit", "initial", "unset", "revert" ];
+ var values = InspectorUtils.getCSSValuesForProperty("list-style-type");
+ ok(testValues(values, expected), "property list-style-type's values");
+
+ SimpleTest.finish();
+}
+
+SimpleTest.waitForExplicitFinish();
+addLoadEvent(do_test);
+
+</script>
+</head>
+<body>
+<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=877690">Mozilla Bug 877690</a>
+<p id="display"></p>
+<div id="content" style="display: none">
+</div>
+<pre id="test">
+</pre>
+</body>
+</html>