Bug 1266268 - [css-grid] Tests <percentage> for grid gap properties.

This commit is contained in:
Mats Palmgren 2016-05-25 10:48:52 +02:00
parent 5e2c16366e
commit cd270495b8
7 changed files with 374 additions and 6 deletions

View File

@ -0,0 +1,90 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>Reference: Percentage 'grid-column-gap'</title>
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1266268">
<style type="text/css">
html,body {
color:black; background-color:white; font-size:16px; padding:0; margin:0;
}
separator { clear:both; display:block; height:6px; }
.grid {
display: grid;
float: left;
position: relative;
border: 1px solid;
border-block-start: 2px solid blue;
grid-template: 3px 5px 7px / 11px 7px 5px;
padding: 1px 1px 3px 2px;
margin-right: 4px;
width: 60px;
height: 40px;
grid-column-gap: 6px;
}
.vl.grid, .vr.grid, .vlr.grid, .vrl.grid { grid-column-gap: 4px; }
item1,item2,item3 {
display: block;
background: grey;
justify-self: stretch;
align-self: stretch;
}
item1 { grid-area: 1 / 1; }
item2 { grid-area: 2 / 2; }
item3 { grid-area: 3 / 3; }
.hl { writing-mode: horizontal-tb; direction:ltr; }
.hr { writing-mode: horizontal-tb; direction:rtl; }
.vl { writing-mode: vertical-lr; }
.vr { writing-mode: vertical-rl; }
.vlr { writing-mode: vertical-lr; direction:rtl; }
.vrl { writing-mode: vertical-rl; direction:ltr; }
.astart { align-content:start; }
.aend { align-content:end; }
.aflexstart { align-content:flex-start; }
.aflexend { align-content:flex-end; }
.acenter { align-content:center; }
.aleft { align-content:left; }
.aright { align-content:right; }
.aspace-between{ align-content:space-between; }
.aspace-around { align-content:space-around; }
.aspace-evenly { align-content:space-evenly; }
.astretch1, .astretch2, .astretch3, .astretch4 { align-content:stretch; }
.astretch2 { grid-template-rows: minmax(3px,auto) 5px 7px; }
.astretch3 { grid-template-rows: minmax(3px,auto) minmax(5px,auto) 7px; }
.astretch4 { grid-template-rows: minmax(3px,auto) minmax(5px,auto) minmax(7px,auto); }
</style>
</head>
<body>
<script>
var gridwm = [ "hl", "hr", "vl", "vr", "vlr", "vrl" ];
var test = [ "start", "end", "flexstart", "flexend", "center", "left", "right",
"space-between", "space-around", "space-evenly",
"stretch1", "stretch2", "stretch3", "stretch4" ];
for (var k = 0; k < test.length; ++k) {
for (var i = 0; i < gridwm.length; ++i) {
var div = document.createElement("div");
div.className = "grid a" + test[k] + " " + gridwm[i];
div.appendChild(document.createElement("item1"));
div.appendChild(document.createElement("item2"));
div.appendChild(document.createElement("item3"));
document.body.appendChild(div)
}
document.body.appendChild(document.createElement("separator"));
}
</script>
</body>
</html>

View File

@ -0,0 +1,91 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>CSS Grid Test: Percentage 'grid-column-gap'</title>
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1266268">
<link rel="help" href="http://dev.w3.org/csswg/css-grid/#gutters">
<link rel="match" href="grid-column-gap-004-ref.html">
<style type="text/css">
html,body {
color:black; background-color:white; font-size:16px; padding:0; margin:0;
}
separator { clear:both; display:block; height:6px; }
.grid {
display: grid;
float: left;
position: relative;
border: 1px solid;
border-block-start: 2px solid blue;
grid-template: 3px 5px 7px / 11px 7px 5px;
padding: 1px 1px 3px 2px;
margin-right: 4px;
width: 60px;
height: 40px;
grid-column-gap: 10%;
}
item1,item2,item3 {
display: block;
background: grey;
justify-self: stretch;
align-self: stretch;
}
item1 { grid-area: 1 / 1; }
item2 { grid-area: 2 / 2; }
item3 { grid-area: 3 / 3; }
.hl { writing-mode: horizontal-tb; direction:ltr; }
.hr { writing-mode: horizontal-tb; direction:rtl; }
.vl { writing-mode: vertical-lr; }
.vr { writing-mode: vertical-rl; }
.vlr { writing-mode: vertical-lr; direction:rtl; }
.vrl { writing-mode: vertical-rl; direction:ltr; }
.astart { align-content:start; }
.aend { align-content:end; }
.aflexstart { align-content:flex-start; }
.aflexend { align-content:flex-end; }
.acenter { align-content:center; }
.aleft { align-content:left; }
.aright { align-content:right; }
.aspace-between{ align-content:space-between; }
.aspace-around { align-content:space-around; }
.aspace-evenly { align-content:space-evenly; }
.astretch1, .astretch2, .astretch3, .astretch4 { align-content:stretch; }
.astretch2 { grid-template-rows: minmax(3px,auto) 5px 7px; }
.astretch3 { grid-template-rows: minmax(3px,auto) minmax(5px,auto) 7px; }
.astretch4 { grid-template-rows: minmax(3px,auto) minmax(5px,auto) minmax(7px,auto); }
</style>
</head>
<body>
<script>
var gridwm = [ "hl", "hr", "vl", "vr", "vlr", "vrl" ];
var test = [ "start", "end", "flexstart", "flexend", "center", "left", "right",
"space-between", "space-around", "space-evenly",
"stretch1", "stretch2", "stretch3", "stretch4" ];
for (var k = 0; k < test.length; ++k) {
for (var i = 0; i < gridwm.length; ++i) {
var div = document.createElement("div");
div.className = "grid a" + test[k] + " " + gridwm[i];
div.appendChild(document.createElement("item1"));
div.appendChild(document.createElement("item2"));
div.appendChild(document.createElement("item3"));
document.body.appendChild(div)
}
document.body.appendChild(document.createElement("separator"));
}
</script>
</body>
</html>

View File

@ -0,0 +1,90 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>Reference: Percentage 'grid-row-gap'</title>
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1266268">
<style type="text/css">
html,body {
color:black; background-color:white; font-size:16px; padding:0; margin:0;
}
separator { clear:both; display:block; height:6px; }
.grid {
display: grid;
float: left;
position: relative;
border: 1px solid;
border-block-start: 2px solid blue;
grid-template: 3px 5px 7px / 11px 7px 5px;
padding: 1px 1px 3px 2px;
margin-right: 4px;
width: 40px;
height: 30px;
grid-row-gap: 3px;
}
.vl.grid, .vr.grid, .vlr.grid, .vrl.grid { grid-row-gap: 4px; }
item1,item2,item3 {
display: block;
background: grey;
justify-self: stretch;
align-self: stretch;
}
item1 { grid-area: 1 / 1; }
item2 { grid-area: 2 / 2; }
item3 { grid-area: 3 / 3; }
.hl { writing-mode: horizontal-tb; direction:ltr; }
.hr { writing-mode: horizontal-tb; direction:rtl; }
.vl { writing-mode: vertical-lr; }
.vr { writing-mode: vertical-rl; }
.vlr { writing-mode: vertical-lr; direction:rtl; }
.vrl { writing-mode: vertical-rl; direction:ltr; }
.astart { align-content:start; }
.aend { align-content:end; }
.aflexstart { align-content:flex-start; }
.aflexend { align-content:flex-end; }
.acenter { align-content:center; }
.aleft { align-content:left; }
.aright { align-content:right; }
.aspace-between{ align-content:space-between; }
.aspace-around { align-content:space-around; }
.aspace-evenly { align-content:space-evenly; }
.astretch1, .astretch2, .astretch3, .astretch4 { align-content:stretch; }
.astretch2 { grid-template-rows: minmax(3px,auto) 5px 7px; }
.astretch3 { grid-template-rows: minmax(3px,auto) minmax(5px,auto) 7px; }
.astretch4 { grid-template-rows: minmax(3px,auto) minmax(5px,auto) minmax(7px,auto); }
</style>
</head>
<body>
<script>
var gridwm = [ "hl", "hr", "vl", "vr", "vlr", "vrl" ];
var test = [ "start", "end", "flexstart", "flexend", "center", "left", "right",
"space-between", "space-around", "space-evenly",
"stretch1", "stretch2", "stretch3", "stretch4" ];
for (var k = 0; k < test.length; ++k) {
for (var i = 0; i < gridwm.length; ++i) {
var div = document.createElement("div");
div.className = "grid a" + test[k] + " " + gridwm[i];
div.appendChild(document.createElement("item1"));
div.appendChild(document.createElement("item2"));
div.appendChild(document.createElement("item3"));
document.body.appendChild(div)
}
document.body.appendChild(document.createElement("separator"));
}
</script>
</body>
</html>

View File

@ -0,0 +1,91 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>CSS Grid Test: Percentage 'grid-row-gap'</title>
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1266268">
<link rel="help" href="http://dev.w3.org/csswg/css-grid/#gutters">
<link rel="match" href="grid-row-gap-005-ref.html">
<style type="text/css">
html,body {
color:black; background-color:white; font-size:16px; padding:0; margin:0;
}
separator { clear:both; display:block; height:6px; }
.grid {
display: grid;
float: left;
position: relative;
border: 1px solid;
border-block-start: 2px solid blue;
grid-template: 3px 5px 7px / 11px 7px 5px;
padding: 1px 1px 3px 2px;
margin-right: 4px;
width: 40px;
height: 30px;
grid-row-gap: 10%;
}
item1,item2,item3 {
display: block;
background: grey;
justify-self: stretch;
align-self: stretch;
}
item1 { grid-area: 1 / 1; }
item2 { grid-area: 2 / 2; }
item3 { grid-area: 3 / 3; }
.hl { writing-mode: horizontal-tb; direction:ltr; }
.hr { writing-mode: horizontal-tb; direction:rtl; }
.vl { writing-mode: vertical-lr; }
.vr { writing-mode: vertical-rl; }
.vlr { writing-mode: vertical-lr; direction:rtl; }
.vrl { writing-mode: vertical-rl; direction:ltr; }
.astart { align-content:start; }
.aend { align-content:end; }
.aflexstart { align-content:flex-start; }
.aflexend { align-content:flex-end; }
.acenter { align-content:center; }
.aleft { align-content:left; }
.aright { align-content:right; }
.aspace-between{ align-content:space-between; }
.aspace-around { align-content:space-around; }
.aspace-evenly { align-content:space-evenly; }
.astretch1, .astretch2, .astretch3, .astretch4 { align-content:stretch; }
.astretch2 { grid-template-rows: minmax(3px,auto) 5px 7px; }
.astretch3 { grid-template-rows: minmax(3px,auto) minmax(5px,auto) 7px; }
.astretch4 { grid-template-rows: minmax(3px,auto) minmax(5px,auto) minmax(7px,auto); }
</style>
</head>
<body>
<script>
var gridwm = [ "hl", "hr", "vl", "vr", "vlr", "vrl" ];
var test = [ "start", "end", "flexstart", "flexend", "center", "left", "right",
"space-between", "space-around", "space-evenly",
"stretch1", "stretch2", "stretch3", "stretch4" ];
for (var k = 0; k < test.length; ++k) {
for (var i = 0; i < gridwm.length; ++i) {
var div = document.createElement("div");
div.className = "grid a" + test[k] + " " + gridwm[i];
div.appendChild(document.createElement("item1"));
div.appendChild(document.createElement("item2"));
div.appendChild(document.createElement("item3"));
document.body.appendChild(div)
}
document.body.appendChild(document.createElement("separator"));
}
</script>
</body>
</html>

View File

@ -83,10 +83,12 @@ skip-if(Android&&isDebugBuild) == grid-justify-content-003.html grid-justify-con
skip-if(Android&&isDebugBuild) == grid-column-gap-001.html grid-column-gap-001-ref.html # Bug 1245884 - slow
== grid-column-gap-002.html grid-column-gap-002-ref.html
== grid-column-gap-003.html grid-column-gap-003-ref.html
== grid-column-gap-004.html grid-column-gap-004-ref.html
== grid-row-gap-001.html grid-row-gap-001-ref.html
skip-if(Android&&isDebugBuild) == grid-row-gap-002.html grid-row-gap-002-ref.html # Bug 1245884 - slow
skip-if(Android&&isDebugBuild) == grid-row-gap-003.html grid-row-gap-003-ref.html # Bug 1245884 - slow
skip-if(Android&&isDebugBuild) == grid-row-gap-004.html grid-row-gap-004-ref.html # Bug 1245884 - slow
== grid-row-gap-005.html grid-row-gap-005-ref.html
== grid-container-overflow-001.html grid-container-overflow-001-ref.html
== grid-item-margin-left-auto-001.html grid-item-margin-left-auto-001-ref.html
== grid-item-margin-left-auto-002.html grid-item-margin-left-auto-002-ref.html

View File

@ -6443,16 +6443,18 @@ if (IsCSSPropertyPrefEnabled("layout.css.grid.enabled")) {
inherited: false,
type: CSS_TYPE_LONGHAND,
initial_values: [ "0" ],
other_values: [ "2px", "1em", "calc(1px + 1em)" ],
invalid_values: [ "-1px", "2%", "auto", "none", "1px 1px", "calc(1%)" ],
other_values: [ "2px", "2%", "1em", "calc(1px + 1em)", "calc(1%)",
"calc(1% + 1ch)" ],
invalid_values: [ "-1px", "auto", "none", "1px 1px", "-1%" ],
};
gCSSProperties["grid-row-gap"] = {
domProp: "gridRowGap",
inherited: false,
type: CSS_TYPE_LONGHAND,
initial_values: [ "0" ],
other_values: [ "2px", "1em", "calc(1px + 1em)" ],
invalid_values: [ "-1px", "2%", "auto", "none", "1px 1px", "calc(1%)" ],
other_values: [ "2px", "2%", "1em", "calc(1px + 1em)", "calc(1%)",
"calc(1% + 1ch)" ],
invalid_values: [ "-1px", "auto", "none", "1px 1px", "-1%" ],
};
gCSSProperties["grid-gap"] = {
domProp: "gridGap",
@ -6460,9 +6462,9 @@ if (IsCSSPropertyPrefEnabled("layout.css.grid.enabled")) {
type: CSS_TYPE_TRUE_SHORTHAND,
subproperties: [ "grid-column-gap", "grid-row-gap" ],
initial_values: [ "0", "0 0" ],
other_values: [ "1ch 0", "1em 1px", "calc(1px + 1ch)" ],
other_values: [ "1ch 0", "1px 1%", "1em 1px", "calc(1px) calc(1%)" ],
invalid_values: [ "-1px", "1px -1px", "1px 1px 1px", "inherit 1px",
"1px 1%", "1px auto" ]
"1px auto" ]
};
}

View File

@ -1897,6 +1897,8 @@ function test_grid_gap(prop) {
}
test_length_transition(prop);
test_length_clamped(prop);
test_percent_transition(prop);
test_percent_clamped(prop);
}
function test_pos_integer_or_auto_transition(prop) {