зеркало из https://github.com/mozilla/gecko-dev.git
246 строки
11 KiB
HTML
246 строки
11 KiB
HTML
<!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",
|
|
];
|
|
|
|
// 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 ];
|
|
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", "-moz-box", "-moz-inline-box",
|
|
"-moz-grid", "-moz-inline-grid", "-moz-grid-group", "-moz-grid-line", "-moz-stack", "-moz-inline-stack",
|
|
"-moz-deck", "-moz-popup", "-moz-groupbox",
|
|
"flex", "inline-flex", "-webkit-box", "-webkit-inline-box",
|
|
"-webkit-flex", "-webkit-inline-flex",
|
|
"grid", "inline-grid",
|
|
"ruby", "ruby-base", "ruby-base-container", "ruby-text", "ruby-text-container",
|
|
"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" ];
|
|
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", "none", "revert" ];
|
|
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>
|