| OLD | NEW |
| 1 <!DOCTYPE HTML> | 1 <!DOCTYPE HTML> |
| 2 <html> | 2 <html> |
| 3 <head> | 3 <head> |
| 4 <link href="resources/grid.css" rel="stylesheet"> | 4 <link href="resources/grid.css" rel="stylesheet"> |
| 5 <style> | 5 <style> |
| 6 .gridItem { | 6 .gridItem { |
| 7 grid-column: 1; | 7 grid-column: 1; |
| 8 grid-row: 1; | 8 grid-row: 1; |
| 9 height: 22px; | 9 height: 22px; |
| 10 width: 77px; | 10 width: 77px; |
| 11 } | 11 } |
| 12 .gridWithFixed { | 12 .gridWithFixed { |
| 13 grid-definition-columns: "first" 10px; | 13 grid-definition-columns: (first) 10px; |
| 14 grid-definition-rows: "first" 15px; | 14 grid-definition-rows: (first) 15px; |
| 15 } | 15 } |
| 16 .gridWithPercent { | 16 .gridWithPercent { |
| 17 grid-definition-columns: 53% "last"; | 17 grid-definition-columns: 53% (last); |
| 18 grid-definition-rows: 27% "last"; | 18 grid-definition-rows: 27% (last); |
| 19 } | 19 } |
| 20 .gridWithAuto { | 20 .gridWithAuto { |
| 21 grid-definition-columns: "first" auto; | 21 grid-definition-columns: (first) auto; |
| 22 grid-definition-rows: auto "last"; | 22 grid-definition-rows: auto (last); |
| 23 } | 23 } |
| 24 .gridWithMinMax { | 24 .gridWithMinMax { |
| 25 grid-definition-columns: "first" minmax(10%, 15px); | 25 grid-definition-columns: (first) minmax(10%, 15px); |
| 26 grid-definition-rows: minmax(20px, 50%) "last"; | 26 grid-definition-rows: minmax(20px, 50%) (last); |
| 27 } | 27 } |
| 28 .gridWithFixedMultiple { | 28 .gridWithFixedMultiple { |
| 29 grid-definition-columns: "first" "nav" 10px "last"; | 29 grid-definition-columns: (first nav) 10px (last); |
| 30 grid-definition-rows: "first" "nav" 15px "last"; | 30 grid-definition-rows: (first nav) 15px (last); |
| 31 } | 31 } |
| 32 .gridWithPercentageSameStringMultipleTimes { | 32 .gridWithPercentageSameStringMultipleTimes { |
| 33 grid-definition-columns: "first" "nav" 10% "nav" 15% "last"; | 33 grid-definition-columns: (first nav) 10% (nav) 15% (last); |
| 34 grid-definition-rows: "first" "nav2" 25% "nav2" 75% "last"; | 34 grid-definition-rows: (first nav2) 25% (nav2) 75% (last); |
| 35 } | 35 } |
| 36 </style> | 36 </style> |
| 37 <script src="../../resources/js-test.js"></script> | 37 <script src="../../resources/js-test.js"></script> |
| 38 </head> | 38 </head> |
| 39 <body> | 39 <body> |
| 40 <div class="gridWithFixed" id="gridWithFixedElement"></div> | 40 <div class="gridWithFixed" id="gridWithFixedElement"></div> |
| 41 <div class="gridWithPercent" id="gridWithPercentElement"></div> | 41 <div class="gridWithPercent" id="gridWithPercentElement"></div> |
| 42 <div class="gridWithAuto" id="gridWithAutoElement"></div> | 42 <div class="gridWithAuto" id="gridWithAutoElement"></div> |
| 43 <div class="gridWithAuto" id="gridWithAutoWithChildrenElement"> | 43 <div class="gridWithAuto" id="gridWithAutoWithChildrenElement"> |
| 44 <div class="gridItem"></div> | 44 <div class="gridItem"></div> |
| 45 </div> | 45 </div> |
| 46 <div class="gridWithMinMax" id="gridWithMinMax"></div> | 46 <div class="gridWithMinMax" id="gridWithMinMax"></div> |
| 47 <div class="gridWithFixedMultiple" id="gridWithFixedMultiple"></div> | 47 <div class="gridWithFixedMultiple" id="gridWithFixedMultiple"></div> |
| 48 <div class="gridWithPercentageSameStringMultipleTimes" id="gridWithPercentageSam
eStringMultipleTimes"></div> | 48 <div class="gridWithPercentageSameStringMultipleTimes" id="gridWithPercentageSam
eStringMultipleTimes"></div> |
| 49 | 49 |
| 50 <script src="resources/grid-definitions-parsing-utils.js"></script> | 50 <script src="resources/grid-definitions-parsing-utils.js"></script> |
| 51 <script> | 51 <script> |
| 52 description('Test that setting and getting grid-definition-columns and grid-
definition-rows works as expected'); | 52 description('Test that setting and getting grid-definition-columns and grid-
definition-rows works as expected'); |
| 53 | 53 |
| 54 debug("Test getting grid-definition-columns and grid-definition-rows set thr
ough CSS"); | 54 debug("Test getting grid-definition-columns and grid-definition-rows set thr
ough CSS"); |
| 55 testGridDefinitionsValues(document.getElementById("gridWithFixedElement"), "
first 10px", "first 15px"); | 55 testGridDefinitionsValues(document.getElementById("gridWithFixedElement"), "
first 10px", "first 15px"); |
| 56 testGridDefinitionsValues(document.getElementById("gridWithPercentElement"),
"53% last", "27% last"); | 56 testGridDefinitionsValues(document.getElementById("gridWithPercentElement"),
"53% last", "27% last"); |
| 57 testGridDefinitionsValues(document.getElementById("gridWithAutoElement"), "f
irst auto", "auto last"); | 57 testGridDefinitionsValues(document.getElementById("gridWithAutoElement"), "f
irst auto", "auto last"); |
| 58 testGridDefinitionsValues(document.getElementById("gridWithMinMax"), "first
minmax(10%, 15px)", "minmax(20px, 50%) last"); | 58 testGridDefinitionsValues(document.getElementById("gridWithMinMax"), "first
minmax(10%, 15px)", "minmax(20px, 50%) last"); |
| 59 testGridDefinitionsValues(document.getElementById("gridWithFixedMultiple"),
"first nav 10px last", "first nav 15px last"); | 59 testGridDefinitionsValues(document.getElementById("gridWithFixedMultiple"),
"first nav 10px last", "first nav 15px last"); |
| 60 testGridDefinitionsValues(document.getElementById("gridWithPercentageSameStr
ingMultipleTimes"), "first nav 10% nav 15% last", "first nav2 25% nav2 75% last"
); | 60 testGridDefinitionsValues(document.getElementById("gridWithPercentageSameStr
ingMultipleTimes"), "first nav 10% nav 15% last", "first nav2 25% nav2 75% last"
); |
| 61 | 61 |
| 62 debug(""); | 62 debug(""); |
| 63 debug("Test getting and setting grid-definition-columns and grid-definition-
rows through JS"); | 63 debug("Test getting and setting grid-definition-columns and grid-definition-
rows through JS"); |
| 64 testNonGridDefinitionsSetJSValues("'first' 18px", "66px 'last'", "first 18px
", "66px last", "first 18px", "66px last"); | 64 testNonGridDefinitionsSetJSValues("(first) 18px", "66px (last)", "first 18px
", "66px last", "first 18px", "66px last"); |
| 65 testNonGridDefinitionsSetJSValues("'first' 55%", "40% 'last'", "first 55%",
"40% last", "first 55%", "40% last"); | 65 testNonGridDefinitionsSetJSValues("(first) 55%", "40% (last)", "first 55%",
"40% last", "first 55%", "40% last"); |
| 66 testNonGridDefinitionsSetJSValues("'first' auto", "auto 'last'", "first auto
", "auto last", "first auto", "auto last"); | 66 testNonGridDefinitionsSetJSValues("(first) auto", "auto (last)", "first auto
", "auto last", "first auto", "auto last"); |
| 67 testNonGridDefinitionsSetJSValues("'first' min-content", "min-content 'last'
", "first min-content", "min-content last", "first min-content", "min-content la
st"); | 67 testNonGridDefinitionsSetJSValues("(first) min-content", "min-content (last)
", "first min-content", "min-content last", "first min-content", "min-content la
st"); |
| 68 testNonGridDefinitionsSetJSValues("'first' max-content", "max-content 'last'
", "first max-content", "max-content last", "first max-content", "max-content la
st"); | 68 testNonGridDefinitionsSetJSValues("(first) max-content", "max-content (last)
", "first max-content", "max-content last", "first max-content", "max-content la
st"); |
| 69 testNonGridDefinitionsSetJSValues("'first' minmax(55%, 45px)", "minmax(30px,
40%) 'last'", "first minmax(55%, 45px)", "minmax(30px, 40%) last", "first minma
x(55%, 45px)", "minmax(30px, 40%) last"); | 69 testNonGridDefinitionsSetJSValues("(first) minmax(55%, 45px)", "minmax(30px,
40%) (last)", "first minmax(55%, 45px)", "minmax(30px, 40%) last", "first minma
x(55%, 45px)", "minmax(30px, 40%) last"); |
| 70 testNonGridDefinitionsSetJSValues("'first' minmax(22em, max-content)", "minm
ax(max-content, 5em) 'last'", "first minmax(220px, max-content)", "minmax(max-co
ntent, 50px) last", "first minmax(22em, max-content)", "minmax(max-content, 5em)
last", "first minmax(220px, max-content)", "minmax(max-content, 50px) last", "m
inmax(max-content, 50px) last"); | 70 testNonGridDefinitionsSetJSValues("(first) minmax(22em, max-content)", "minm
ax(max-content, 5em) (last)", "first minmax(220px, max-content)", "minmax(max-co
ntent, 50px) last", "first minmax(22em, max-content)", "minmax(max-content, 5em)
last", "first minmax(220px, max-content)", "minmax(max-content, 50px) last", "m
inmax(max-content, 50px) last"); |
| 71 testNonGridDefinitionsSetJSValues("'first' minmax(22em, min-content)", "minm
ax(min-content, 5em) 'last'", "first minmax(220px, min-content)", "minmax(min-co
ntent, 50px) last", "first minmax(22em, min-content)", "minmax(min-content, 5em)
last", "first minmax(220px, min-content)", "minmax(min-content, 50px) last", "m
inmax(min-content, 50px) last"); | 71 testNonGridDefinitionsSetJSValues("(first) minmax(22em, min-content)", "minm
ax(min-content, 5em) (last)", "first minmax(220px, min-content)", "minmax(min-co
ntent, 50px) last", "first minmax(22em, min-content)", "minmax(min-content, 5em)
last", "first minmax(220px, min-content)", "minmax(min-content, 50px) last", "m
inmax(min-content, 50px) last"); |
| 72 testNonGridDefinitionsSetJSValues("'first' minmax(min-content, max-content)"
, "minmax(max-content, min-content) 'last'", "first minmax(min-content, max-cont
ent)", "minmax(max-content, min-content) last", "first minmax(min-content, max-c
ontent)", "minmax(max-content, min-content) last"); | 72 testNonGridDefinitionsSetJSValues("(first) minmax(min-content, max-content)"
, "minmax(max-content, min-content) (last)", "first minmax(min-content, max-cont
ent)", "minmax(max-content, min-content) last", "first minmax(min-content, max-c
ontent)", "minmax(max-content, min-content) last"); |
| 73 testNonGridDefinitionsSetJSValues("'first' 'nav' minmax(min-content, max-con
tent) 'last'", "'first' 'nav' minmax(max-content, min-content) 'last'", "first n
av minmax(min-content, max-content) last", "first nav minmax(max-content, min-co
ntent) last", "first nav minmax(min-content, max-content) last", "first nav minm
ax(max-content, min-content) last"); | 73 testNonGridDefinitionsSetJSValues("(first nav) minmax(min-content, max-conte
nt) (last)", "(first nav) minmax(max-content, min-content) (last)", "first nav m
inmax(min-content, max-content) last", "first nav minmax(max-content, min-conten
t) last", "first nav minmax(min-content, max-content) last", "first nav minmax(m
ax-content, min-content) last"); |
| 74 testNonGridDefinitionsSetJSValues("'first' 'nav' minmax(min-content, max-con
tent) 'nav' auto 'last'", "'first' 'nav2' minmax(max-content, min-content) 'nav2
' minmax(10px, 15px) 'last'", "first nav minmax(min-content, max-content) nav au
to last", "first nav2 minmax(max-content, min-content) nav2 minmax(10px, 15px) l
ast", "first nav minmax(min-content, max-content) nav auto last", "first nav2 mi
nmax(max-content, min-content) nav2 minmax(10px, 15px) last");; | 74 testNonGridDefinitionsSetJSValues("(first nav) minmax(min-content, max-conte
nt) (nav) auto (last)", "(first nav2) minmax(max-content, min-content) (nav2) mi
nmax(10px, 15px) (last)", "first nav minmax(min-content, max-content) nav auto l
ast", "first nav2 minmax(max-content, min-content) nav2 minmax(10px, 15px) last"
, "first nav minmax(min-content, max-content) nav auto last", "first nav2 minmax
(max-content, min-content) nav2 minmax(10px, 15px) last");; |
| 75 testNonGridDefinitionsSetJSValues("'foo' 'bar' auto 'foo' auto 'bar'", "'foo
' 'bar' auto 'foo' auto 'bar'", "foo bar auto foo auto bar", "foo bar auto foo a
uto bar", "foo bar auto foo auto bar", "foo bar auto foo auto bar"); | 75 testNonGridDefinitionsSetJSValues("(foo bar) auto (foo) auto (bar)", "(foo b
ar) auto (foo) auto (bar)", "foo bar auto foo auto bar", "foo bar auto foo auto
bar", "foo bar auto foo auto bar", "foo bar auto foo auto bar"); |
| 76 | 76 |
| 77 debug(""); | 77 debug(""); |
| 78 debug("Test getting and setting invalid grid-definition-columns and grid-def
inition-rows through JS"); | 78 debug("Test getting and setting invalid grid-definition-columns and grid-def
inition-rows through JS"); |
| 79 element = document.createElement("div"); | 79 element = document.createElement("div"); |
| 80 document.body.appendChild(element); | 80 document.body.appendChild(element); |
| 81 element.style.gridDefinitionColumns = "'foo'"; | 81 element.style.gridDefinitionColumns = "'foo'"; |
| 82 element.style.gridDefinitionRows = "'bar"; | 82 element.style.gridDefinitionRows = "'bar"; |
| 83 shouldBeEqualToString("getComputedStyle(element, '').getPropertyValue('grid-
definition-columns')", "none"); | 83 shouldBeEqualToString("getComputedStyle(element, '').getPropertyValue('grid-
definition-columns')", "none"); |
| 84 shouldBeEqualToString("getComputedStyle(element, '').getPropertyValue('grid-
definition-rows')", "none"); | 84 shouldBeEqualToString("getComputedStyle(element, '').getPropertyValue('grid-
definition-rows')", "none"); |
| 85 | 85 |
| 86 element = document.createElement("div"); | 86 element = document.createElement("div"); |
| 87 document.body.appendChild(element); | 87 document.body.appendChild(element); |
| 88 element.style.gridDefinitionColumns = "'foo' 'bar'"; | 88 element.style.gridDefinitionColumns = "'foo' 'bar'"; |
| 89 element.style.gridDefinitionRows = "'bar' 'foo'"; | 89 element.style.gridDefinitionRows = "'bar' 'foo'"; |
| 90 shouldBeEqualToString("getComputedStyle(element, '').getPropertyValue('grid-
definition-columns')", "none"); | 90 shouldBeEqualToString("getComputedStyle(element, '').getPropertyValue('grid-
definition-columns')", "none"); |
| 91 shouldBeEqualToString("getComputedStyle(element, '').getPropertyValue('grid-
definition-rows')", "none"); | 91 shouldBeEqualToString("getComputedStyle(element, '').getPropertyValue('grid-
definition-rows')", "none"); |
| 92 </script> | 92 </script> |
| 93 </body> | 93 </body> |
| 94 </html> | 94 </html> |
| OLD | NEW |