diff options
Diffstat (limited to 'layout/inspector/tests/test_bug877690.html')
-rw-r--r-- | layout/inspector/tests/test_bug877690.html | 262 |
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> |