| Index: LayoutTests/fast/css-grid-layout/grid-template-shorthand-get-set.html
|
| diff --git a/LayoutTests/fast/css-grid-layout/grid-template-shorthand-get-set.html b/LayoutTests/fast/css-grid-layout/grid-template-shorthand-get-set.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e51b1b0353e11f0919253203fb6f8f44d3ad3614
|
| --- /dev/null
|
| +++ b/LayoutTests/fast/css-grid-layout/grid-template-shorthand-get-set.html
|
| @@ -0,0 +1,217 @@
|
| +<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
| +<html>
|
| +<head>
|
| +<link href="resources/grid.css" rel="stylesheet">
|
| +<style>
|
| +#gridTemplateWithNone {
|
| + grid-template: none;
|
| +}
|
| +#gridTemplateSimpleForm {
|
| + grid-template: 10px / 15px;
|
| +}
|
| +#gridTemplateSimpleFormWithNoneColumns {
|
| + grid-template: none / 15px;
|
| +}
|
| +#gridTemplateSimpleFormWithNoneRows {
|
| + grid-template: 10px / none;
|
| +}
|
| +#gridTemplateSimpleFormWithNone {
|
| + grid-template: none / none;
|
| +}
|
| +#gridTemplateComplexForm {
|
| + grid-template: 10px / "a" 15px;
|
| +}
|
| +#gridTemplateComplexFormWithLineNames {
|
| + grid-template: 10px / (head) "a" 15px (tail);
|
| +}
|
| +#gridTemplateComplexFormWithLineNamesMultipleColumns {
|
| + grid-template: 10px / (head) "a b" 15px (tail)
|
| +}
|
| +#gridTemplateComplexFormWithLineNamesMultipleRows {
|
| + grid-template: 10px / (head1) "a" 15px (tail1)
|
| + (head2) "b" 20px (tail2);
|
| +}
|
| +#gridTemplateComplexFormWithLineNamesMultipleRowsAndColumns {
|
| + grid-template: (first) 10px repeat(2, (nav nav2) 15px) / "a b c" 100px (nav)
|
| + (nav2) "d e f" 25px (nav)
|
| + (nav2) "g h i" 25px (last);
|
| +}
|
| +#gridTemplateComplexFormWithAuto {
|
| + grid-template: 10px / "a";
|
| +}
|
| +#gridTemplateComplexFormOnlyAreas {
|
| + grid-template: "a";
|
| +}
|
| +
|
| +/* Bad values. */
|
| +
|
| +#gridTemplateMultipleSlash {
|
| + grid-template: 10px / 20px / 30px;
|
| +}
|
| +#gridTemplateSimpleFormJustColumns {
|
| + grid-template: 10px;
|
| +}
|
| +#gridTemplateSimpleFormNoRows {
|
| + grid-template: 10px /;
|
| +}
|
| +#gridTemplateSimpleFormNoColumns {
|
| + grid-template: / 10px;
|
| +}
|
| +#gridTemplateSimpleFormNoColumnSize {
|
| + grid-template: (line) / 10px;
|
| +}
|
| +#gridTemplateSimpleFormWithFitContent {
|
| + grid-template: -webkit-fit-content / 10px;
|
| +}
|
| +#gridTemplateSimpleFormWithWrongRepeat {
|
| + grid-template: repeat(2, 50% (title) a) / 10px;
|
| +}
|
| +#gridTemplateSimpleFormWithMisplacedNone1 {
|
| + grid-template: 10px / none 20px;
|
| +}
|
| +#gridTemplateSimpleFormWithMisplacedNone2 {
|
| + grid-template: 10px / 20px none;
|
| +}
|
| +#gridTemplateSimpleFormWithMisplacedNone3 {
|
| + grid-template: none 10px / 20px;
|
| +}
|
| +#gridTemplateSimpleFormWithMisplacedNone4 {
|
| + grid-template: 10px none / 20px;
|
| +}
|
| +#gridTemplateComplexFormWithRepeat {
|
| + grid-template: 10px / "a" repeat(2, 50% (title));
|
| +}
|
| +#gridTemplateComplexFormWithWrongRepeat {
|
| + grid-template: repeat(2, 50% (title) a) / "a";
|
| +}
|
| +#griTemplateComplexFormdWithFitAvailable {
|
| + grid-template: -webkit-fit-available / "a";
|
| +}
|
| +#gridTemplateComplexFormNoColumnSize {
|
| + grid-template: (line) / "a";
|
| +}
|
| +#gridTemplateComplexFormMisplacedRowsSize1 {
|
| + grid-template: 25px / 10px "a";
|
| +}
|
| +#gridTemplateComplexFormMisplacedRowsSize2 {
|
| + grid-template: 25px / "a" (name) 10px;
|
| +}
|
| +#gridTemplateComplexFormColumnsNotParsing1 {
|
| + grid-template: a / "a" (name) 10px;
|
| +}
|
| +#gridTemplateComplexFormColumnsNotParsing2 {
|
| + grid-template: "B" / "a" (name) 10px;
|
| +}
|
| +#gridTemplateComplexFormWithNoneColumns {
|
| + grid-template: none / "a" (name) 10px;
|
| +}
|
| +
|
| +</style>
|
| +<script src="../../resources/js-test.js"></script>
|
| +</head>
|
| +<body>
|
| +<div class="grid" id="gridTemplateWithNone"></div>
|
| +<div class="grid" id="gridTemplateSimpleForm"></div>
|
| +<div class="grid" id="gridTemplateSimpleFormWithNoneColumns"></div>
|
| +<div class="grid" id="gridTemplateSimpleFormWithNoneRows"></div>
|
| +<div class="grid" id="gridTemplateSimpleFormWithNone"></div>
|
| +<div class="grid" id="gridTemplateComplexForm"></div>
|
| +<div class="grid" id="gridTemplateComplexFormWithLineNames"></div>
|
| +<div class="grid" id="gridTemplateComplexFormWithLineNamesMultipleColumns"></div>
|
| +<div class="grid" id="gridTemplateComplexFormWithLineNamesMultipleRows"></div>
|
| +<div class="grid" id="gridTemplateComplexFormWithLineNamesMultipleRowsAndColumns"></div>
|
| +<div class="grid" id="gridTemplateComplexFormWithAuto"></div>
|
| +<div class="grid" id="gridTemplateComplexFormOnlyAreas"></div>
|
| +<div class="grid" id="gridTemplateMultipleSlash"></div>
|
| +<div class="grid" id="gridTemplateSimpleFormJustColumns"></div>
|
| +<div class="grid" id="gridTemplateSimpleFormNoRows"></div>
|
| +<div class="grid" id="gridTemplateSimpleFormNoColumns"></div>
|
| +<div class="grid" id="gridTemplateSimpleFormNoColumnSize"></div>
|
| +<div class="grid" id="gridTemplateSimpleFormWithFitContent"></div>
|
| +<div class="grid" id="gridTemplateSimpleFormWithWrongRepeat"></div>
|
| +<div class="grid" id="gridTemplateSimpleFormWithMisplacedNone1"></div>
|
| +<div class="grid" id="gridTemplateSimpleFormWithMisplacedNone2"></div>
|
| +<div class="grid" id="gridTemplateSimpleFormWithMisplacedNone3"></div>
|
| +<div class="grid" id="gridTemplateSimpleFormWithMisplacedNone4"></div>
|
| +<div class="grid" id="gridTemplateComplexFormWithRepeat"></div>
|
| +<div class="grid" id="gridTemplateComplexFormWithWrongRepeat"></div>
|
| +<div class="grid" id="griTemplateComplexFormdWithFitAvailable"></div>
|
| +<div class="grid" id="gridTemplateComplexFormNoColumnSize"></div>
|
| +<div class="grid" id="gridTemplateComplexFormMisplacedRowsSize1"></div>
|
| +<div class="grid" id="gridTemplateComplexFormMisplacedRowsSize2"></div>
|
| +<div class="grid" id="gridTemplateComplexFormColumnsNotParsing1"></div>
|
| +<div class="grid" id="gridTemplateComplexFormColumnsNotParsing2"></div>
|
| +<div class="grid" id="gridTemplateComplexFormWithNoneColumns"></div>
|
| +<script src="resources/grid-template-shorthand-parsing-utils.js"></script>
|
| +<script>
|
| + description("This test checks that the 'grid-template' shorthand is properly parsed and the longhand properties correctly assigned.");
|
| +
|
| + debug("Test getting grid-template-areas set through CSS.");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateWithNone"), "none", "none", "none");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateSimpleForm"), "10px", "15px", "none");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWithNoneColumns"), "none", "15px", "none");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWithNoneRows"), "10px", "none", "none");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWithNone"), "none", "none", "none");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateComplexForm"), "10px", "15px", '"a"');
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWithLineNames"), "10px", "(head) 15px (tail)", '"a"');
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWithLineNamesMultipleColumns"), "10px", "(head) 15px (tail)", '"a b"');
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWithLineNamesMultipleRows"), "10px", "(head1) 15px (tail1 head2) 20px (tail2)", '"a" "b"');
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWithLineNamesMultipleRowsAndColumns"), "(first) 10px (nav nav2) 15px (nav nav2) 15px", "100px (nav nav2) 25px (nav nav2) 25px (last)", '"a b c" "d e f" "g h i"');
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWithAuto"), "10px", "0px", '"a"');
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormOnlyAreas"), "none", "0px", '"a"');
|
| +
|
| + debug("");
|
| + debug("Test getting wrong values for grid-template shorthand through CSS (they should resolve to the default: 'none')");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateMultipleSlash"), "none", "none", "none");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormJustColumns"), "none", "none", "none");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormNoRows"), "none", "none", "none");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormNoColumns"), "none", "none", "none");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormNoColumnSize"), "none", "none", "none");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWithFitContent"), "none", "none", "none");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWithWrongRepeat"), "none", "none", "none");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWithMisplacedNone1"), "none", "none", "none");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWithMisplacedNone2"), "none", "none", "none");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWithMisplacedNone3"), "none", "none", "none");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWithMisplacedNone4"), "none", "none", "none");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWithRepeat"), "none", "none", "none");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWithWrongRepeat"), "none", "none", "none");
|
| + testGridDefinitionsValues(document.getElementById("griTemplateComplexFormdWithFitAvailable"), "none", "none", "none");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormNoColumnSize"), "none", "none", "none");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormMisplacedRowsSize1"), "none", "none", "none");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormMisplacedRowsSize2"), "none", "none", "none");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormColumnsNotParsing1"), "none", "none", "none");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormColumnsNotParsing2"), "none", "none", "none");
|
| + testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWithNoneColumns"), "none", "none", "none");
|
| +
|
| + debug("");
|
| + debug("Test the initial value");
|
| + var element = document.createElement("div");
|
| + document.body.appendChild(element);
|
| + testGridDefinitionsValues(element, "none", "none", "none");
|
| + shouldBe("getComputedStyle(element, '').getPropertyValue('grid-template-columns')", "'none'");
|
| + shouldBe("getComputedStyle(element, '').getPropertyValue('grid-template-rows')", "'none'");
|
| + shouldBe("getComputedStyle(element, '').getPropertyValue('grid-template-areas')", "'none'");
|
| +
|
| + debug("");
|
| + debug("Test setting grid-template-columns and grid-template-rows back to 'none' through JS");
|
| + testGridDefinitionsSetJSValues("10px / (line) 'a' 20px", "10px", "(line) 20px", "\"a\"");
|
| + testGridDefinitionsSetJSValues("none", "none", "none", "none");
|
| +
|
| + debug("");
|
| + debug("Test getting and setting grid-template shorthand through JS");
|
| + testGridDefinitionsSetJSValues("18px / 66px", "18px", "66px", "none");
|
| + testGridDefinitionsSetJSValues("10px / (head) 'a' 15px (tail)", "10px", "(head) 15px (tail)", "\"a\"");
|
| + testGridDefinitionsSetJSValues("'a'", "none", "0px", "\"a\"", "none", "auto");
|
| +
|
| + debug("");
|
| + debug("Test setting grid-template shorthand to bad values through JS");
|
| + testGridDefinitionsSetBadJSValues("none / 'a'");
|
| + testGridDefinitionsSetBadJSValues("25px / 'a' (name) 10px");
|
| + testGridDefinitionsSetBadJSValues("'a' / 'b'");
|
| + testGridDefinitionsSetBadJSValues("15px");
|
| + testGridDefinitionsSetBadJSValues("15px / 20px none");
|
| + testGridDefinitionsSetBadJSValues("25px / 10px 'a'");
|
| +
|
| +</script>
|
| +</body>
|
| +</html>
|
|
|