| OLD | NEW |
| 1 <!DOCTYPE HTML> | 1 <!DOCTYPE HTML> |
| 2 <html> | 2 <html> |
| 3 <head> | 3 <head> |
| 4 <script> | 4 <script> |
| 5 if (window.testRunner) | 5 if (window.testRunner) |
| 6 testRunner.overridePreference("WebKitCSSGridLayoutEnabled", 1); | 6 testRunner.overridePreference("WebKitCSSGridLayoutEnabled", 1); |
| 7 </script> | 7 </script> |
| 8 <link href="resources/grid.css" rel="stylesheet"> | 8 <link href="resources/grid.css" rel="stylesheet"> |
| 9 <style> | 9 <style> |
| 10 .gridWithFixed { | 10 .gridWithFixed { |
| 11 grid-columns: "first" 10px; | 11 grid-definition-columns: "first" 10px; |
| 12 grid-rows: "first" 15px; | 12 grid-definition-rows: "first" 15px; |
| 13 } | 13 } |
| 14 .gridWithPercent { | 14 .gridWithPercent { |
| 15 grid-columns: 53% "last"; | 15 grid-definition-columns: 53% "last"; |
| 16 grid-rows: 27% "last"; | 16 grid-definition-rows: 27% "last"; |
| 17 } | 17 } |
| 18 .gridWithAuto { | 18 .gridWithAuto { |
| 19 grid-columns: "first" auto; | 19 grid-definition-columns: "first" auto; |
| 20 grid-rows: auto "last"; | 20 grid-definition-rows: auto "last"; |
| 21 } | 21 } |
| 22 .gridWithMinMax { | 22 .gridWithMinMax { |
| 23 grid-columns: "first" minmax(10%, 15px); | 23 grid-definition-columns: "first" minmax(10%, 15px); |
| 24 grid-rows: minmax(20px, 50%) "last"; | 24 grid-definition-rows: minmax(20px, 50%) "last"; |
| 25 } | 25 } |
| 26 .gridWithFixedMultiple { | 26 .gridWithFixedMultiple { |
| 27 grid-columns: "first" "nav" 10px "last"; | 27 grid-definition-columns: "first" "nav" 10px "last"; |
| 28 grid-rows: "first" "nav" 15px "last"; | 28 grid-definition-rows: "first" "nav" 15px "last"; |
| 29 } | 29 } |
| 30 .gridWithPercentageSameStringMultipleTimes { | 30 .gridWithPercentageSameStringMultipleTimes { |
| 31 grid-columns: "first" "nav" 10% "nav" 15% "last"; | 31 grid-definition-columns: "first" "nav" 10% "nav" 15% "last"; |
| 32 grid-rows: "first" "nav2" 25% "nav2" 75% "last"; | 32 grid-definition-rows: "first" "nav2" 25% "nav2" 75% "last"; |
| 33 } | 33 } |
| 34 </style> | 34 </style> |
| 35 <script src="../js/resources/js-test-pre.js"></script> | 35 <script src="../js/resources/js-test-pre.js"></script> |
| 36 </head> | 36 </head> |
| 37 <body> | 37 <body> |
| 38 <div class="grid gridWithFixed" id="gridWithFixedElement"></div> | 38 <div class="grid gridWithFixed" id="gridWithFixedElement"></div> |
| 39 <div class="grid gridWithPercent" id="gridWithPercentElement"></div> | 39 <div class="grid gridWithPercent" id="gridWithPercentElement"></div> |
| 40 <div class="grid gridWithAuto" id="gridWithAutoElement"></div> | 40 <div class="grid gridWithAuto" id="gridWithAutoElement"></div> |
| 41 <div class="grid gridWithMinMax" id="gridWithMinMax"></div> | 41 <div class="grid gridWithMinMax" id="gridWithMinMax"></div> |
| 42 <div class="grid gridWithFixedMultiple" id="gridWithFixedMultiple"></div> | 42 <div class="grid gridWithFixedMultiple" id="gridWithFixedMultiple"></div> |
| 43 <div class="grid gridWithPercentageSameStringMultipleTimes" id="gridWithPercenta
geSameStringMultipleTimes"></div> | 43 <div class="grid gridWithPercentageSameStringMultipleTimes" id="gridWithPercenta
geSameStringMultipleTimes"></div> |
| 44 <script> | 44 <script> |
| 45 description('Test that setting and getting grid-columns and grid-rows works
as expected'); | 45 description('Test that setting and getting grid-definition-columns and grid-
definition-rows works as expected'); |
| 46 | 46 |
| 47 function testValue(gridElement, namedGridColumns, namedGridRows) | 47 function testValue(gridElement, namedGridDefinitionColumns, namedGridDefinit
ionRows) |
| 48 { | 48 { |
| 49 this.gridElement = gridElement; | 49 this.gridElement = gridElement; |
| 50 shouldBeEqualToString("getComputedStyle(gridElement, '').getPropertyValu
e('grid-columns')", namedGridColumns); | 50 shouldBeEqualToString("getComputedStyle(gridElement, '').getPropertyValu
e('grid-definition-columns')", namedGridDefinitionColumns); |
| 51 shouldBeEqualToString("getComputedStyle(gridElement, '').getPropertyValu
e('grid-rows')", namedGridRows); | 51 shouldBeEqualToString("getComputedStyle(gridElement, '').getPropertyValu
e('grid-definition-rows')", namedGridDefinitionRows); |
| 52 } | 52 } |
| 53 | 53 |
| 54 function testCSSValue(gridElementId, namedGridColumns, namedGridRows) | 54 function testCSSValue(gridElementId, namedGridDefinitionColumns, namedGridDe
finitionRows) |
| 55 { | 55 { |
| 56 testValue(document.getElementById(gridElementId), namedGridColumns, name
dGridRows); | 56 testValue(document.getElementById(gridElementId), namedGridDefinitionCol
umns, namedGridDefinitionRows); |
| 57 } | 57 } |
| 58 | 58 |
| 59 debug("Test getting grid-columns and grid-rows set through CSS"); | 59 debug("Test getting grid-definition-columns and grid-definition-rows set thr
ough CSS"); |
| 60 testCSSValue("gridWithFixedElement", "first 10px", "first 15px"); | 60 testCSSValue("gridWithFixedElement", "first 10px", "first 15px"); |
| 61 testCSSValue("gridWithPercentElement", "53% last", "27% last"); | 61 testCSSValue("gridWithPercentElement", "53% last", "27% last"); |
| 62 testCSSValue("gridWithAutoElement", "first auto", "auto last"); | 62 testCSSValue("gridWithAutoElement", "first auto", "auto last"); |
| 63 testCSSValue("gridWithMinMax", "first minmax(10%, 15px)", "minmax(20px, 50%)
last"); | 63 testCSSValue("gridWithMinMax", "first minmax(10%, 15px)", "minmax(20px, 50%)
last"); |
| 64 testCSSValue("gridWithFixedMultiple", "nav first 10px last", "nav first 15px
last"); | 64 testCSSValue("gridWithFixedMultiple", "nav first 10px last", "nav first 15px
last"); |
| 65 testCSSValue("gridWithPercentageSameStringMultipleTimes", "nav first 10% nav
15% last", "first nav2 25% nav2 75% last"); | 65 testCSSValue("gridWithPercentageSameStringMultipleTimes", "nav first 10% nav
15% last", "first nav2 25% nav2 75% last"); |
| 66 | 66 |
| 67 debug(""); | 67 debug(""); |
| 68 debug("Test getting and setting grid-columns and grid-rows through JS"); | 68 debug("Test getting and setting grid-definition-columns and grid-definition-
rows through JS"); |
| 69 var element = document.createElement("div"); | 69 var element = document.createElement("div"); |
| 70 document.body.appendChild(element); | 70 document.body.appendChild(element); |
| 71 element.style.gridColumns = "'first' 18px"; | 71 element.style.gridDefinitionColumns = "'first' 18px"; |
| 72 element.style.gridRows = "66px 'last'"; | 72 element.style.gridDefinitionRows = "66px 'last'"; |
| 73 testValue(element, "first 18px", "66px last"); | 73 testValue(element, "first 18px", "66px last"); |
| 74 | 74 |
| 75 element = document.createElement("div"); | 75 element = document.createElement("div"); |
| 76 document.body.appendChild(element); | 76 document.body.appendChild(element); |
| 77 element.style.gridColumns = "'first' 55%"; | 77 element.style.gridDefinitionColumns = "'first' 55%"; |
| 78 element.style.gridRows = "40% 'last'"; | 78 element.style.gridDefinitionRows = "40% 'last'"; |
| 79 testValue(element, "first 55%", "40% last"); | 79 testValue(element, "first 55%", "40% last"); |
| 80 | 80 |
| 81 element = document.createElement("div"); | 81 element = document.createElement("div"); |
| 82 document.body.appendChild(element); | 82 document.body.appendChild(element); |
| 83 element.style.gridColumns = "'first' auto"; | 83 element.style.gridDefinitionColumns = "'first' auto"; |
| 84 element.style.gridRows = "auto 'last'"; | 84 element.style.gridDefinitionRows = "auto 'last'"; |
| 85 testValue(element, "first auto", "auto last"); | 85 testValue(element, "first auto", "auto last"); |
| 86 | 86 |
| 87 element = document.createElement("div"); | 87 element = document.createElement("div"); |
| 88 document.body.appendChild(element); | 88 document.body.appendChild(element); |
| 89 element.style.gridColumns = "'first' min-content"; | 89 element.style.gridDefinitionColumns = "'first' min-content"; |
| 90 element.style.gridRows = "min-content 'last'"; | 90 element.style.gridDefinitionRows = "min-content 'last'"; |
| 91 testValue(element, "first min-content", "min-content last"); | 91 testValue(element, "first min-content", "min-content last"); |
| 92 | 92 |
| 93 element = document.createElement("div"); | 93 element = document.createElement("div"); |
| 94 document.body.appendChild(element); | 94 document.body.appendChild(element); |
| 95 element.style.gridColumns = "'first' max-content"; | 95 element.style.gridDefinitionColumns = "'first' max-content"; |
| 96 element.style.gridRows = "max-content 'last'"; | 96 element.style.gridDefinitionRows = "max-content 'last'"; |
| 97 testValue(element, "first max-content", "max-content last"); | 97 testValue(element, "first max-content", "max-content last"); |
| 98 | 98 |
| 99 element = document.createElement("div"); | 99 element = document.createElement("div"); |
| 100 document.body.appendChild(element); | 100 document.body.appendChild(element); |
| 101 element.style.gridColumns = "'first' minmax(55%, 45px)"; | 101 element.style.gridDefinitionColumns = "'first' minmax(55%, 45px)"; |
| 102 element.style.gridRows = "minmax(30px, 40%) 'last'"; | 102 element.style.gridDefinitionRows = "minmax(30px, 40%) 'last'"; |
| 103 testValue(element, "first minmax(55%, 45px)", "minmax(30px, 40%) last"); | 103 testValue(element, "first minmax(55%, 45px)", "minmax(30px, 40%) last"); |
| 104 | 104 |
| 105 element = document.createElement("div"); | 105 element = document.createElement("div"); |
| 106 document.body.appendChild(element); | 106 document.body.appendChild(element); |
| 107 element.style.font = "10px Ahem"; | 107 element.style.font = "10px Ahem"; |
| 108 element.style.gridColumns = "'first' minmax(22em, max-content)"; | 108 element.style.gridDefinitionColumns = "'first' minmax(22em, max-content)"; |
| 109 element.style.gridRows = "minmax(max-content, 5em) 'last'"; | 109 element.style.gridDefinitionRows = "minmax(max-content, 5em) 'last'"; |
| 110 testValue(element, "first minmax(220px, max-content)", "minmax(max-content,
50px) last"); | 110 testValue(element, "first minmax(220px, max-content)", "minmax(max-content,
50px) last"); |
| 111 | 111 |
| 112 element = document.createElement("div"); | 112 element = document.createElement("div"); |
| 113 document.body.appendChild(element); | 113 document.body.appendChild(element); |
| 114 element.style.font = "10px Ahem"; | 114 element.style.font = "10px Ahem"; |
| 115 element.style.gridColumns = "'first' minmax(22em, max-content)"; | 115 element.style.gridDefinitionColumns = "'first' minmax(22em, max-content)"; |
| 116 element.style.gridRows = "minmax(max-content, 5em) 'last'"; | 116 element.style.gridDefinitionRows = "minmax(max-content, 5em) 'last'"; |
| 117 testValue(element, "first minmax(220px, max-content)", "minmax(max-content,
50px) last"); | 117 testValue(element, "first minmax(220px, max-content)", "minmax(max-content,
50px) last"); |
| 118 | 118 |
| 119 element = document.createElement("div"); | 119 element = document.createElement("div"); |
| 120 document.body.appendChild(element); | 120 document.body.appendChild(element); |
| 121 element.style.gridColumns = "'first' minmax(min-content, max-content)"; | 121 element.style.gridDefinitionColumns = "'first' minmax(min-content, max-conte
nt)"; |
| 122 element.style.gridRows = "minmax(max-content, min-content) 'last'"; | 122 element.style.gridDefinitionRows = "minmax(max-content, min-content) 'last'"
; |
| 123 testValue(element, "first minmax(min-content, max-content)", "minmax(max-con
tent, min-content) last"); | 123 testValue(element, "first minmax(min-content, max-content)", "minmax(max-con
tent, min-content) last"); |
| 124 | 124 |
| 125 element = document.createElement("div"); | 125 element = document.createElement("div"); |
| 126 document.body.appendChild(element); | 126 document.body.appendChild(element); |
| 127 element.style.gridColumns = "'first' 'nav' minmax(min-content, max-content)
'last'"; | 127 element.style.gridDefinitionColumns = "'first' 'nav' minmax(min-content, max
-content) 'last'"; |
| 128 element.style.gridRows = "'first' 'nav' minmax(max-content, min-content) 'la
st'"; | 128 element.style.gridDefinitionRows = "'first' 'nav' minmax(max-content, min-co
ntent) 'last'"; |
| 129 testValue(element, "nav first minmax(min-content, max-content) last", "nav f
irst minmax(max-content, min-content) last"); | 129 testValue(element, "nav first minmax(min-content, max-content) last", "nav f
irst minmax(max-content, min-content) last"); |
| 130 | 130 |
| 131 element = document.createElement("div"); | 131 element = document.createElement("div"); |
| 132 document.body.appendChild(element); | 132 document.body.appendChild(element); |
| 133 element.style.gridColumns = "'first' 'nav' minmax(min-content, max-content)
'nav' auto 'last'"; | 133 element.style.gridDefinitionColumns = "'first' 'nav' minmax(min-content, max
-content) 'nav' auto 'last'"; |
| 134 element.style.gridRows = "'first' 'nav2' minmax(max-content, min-content) 'n
av2' minmax(10px, 15px) 'last'"; | 134 element.style.gridDefinitionRows = "'first' 'nav2' minmax(max-content, min-c
ontent) 'nav2' minmax(10px, 15px) 'last'"; |
| 135 testValue(element, "nav first minmax(min-content, max-content) nav auto last
", "first nav2 minmax(max-content, min-content) nav2 minmax(10px, 15px) last"); | 135 testValue(element, "nav first minmax(min-content, max-content) nav auto last
", "first nav2 minmax(max-content, min-content) nav2 minmax(10px, 15px) last"); |
| 136 | 136 |
| 137 element = document.createElement("div"); | 137 element = document.createElement("div"); |
| 138 document.body.appendChild(element); | 138 document.body.appendChild(element); |
| 139 element.style.gridColumns = "'foo' 'bar' auto 'foo' auto 'bar'"; | 139 element.style.gridDefinitionColumns = "'foo' 'bar' auto 'foo' auto 'bar'"; |
| 140 element.style.gridRows = "'foo' 'bar' auto 'foo' auto 'bar'"; | 140 element.style.gridDefinitionRows = "'foo' 'bar' auto 'foo' auto 'bar'"; |
| 141 testValue(element, "foo bar auto foo auto bar", "foo bar auto foo auto bar")
; | 141 testValue(element, "foo bar auto foo auto bar", "foo bar auto foo auto bar")
; |
| 142 | 142 |
| 143 debug(""); | 143 debug(""); |
| 144 debug("Test getting and setting invalid grid-columns and grid-rows through J
S"); | 144 debug("Test getting and setting invalid grid-definition-columns and grid-def
inition-rows through JS"); |
| 145 element = document.createElement("div"); | 145 element = document.createElement("div"); |
| 146 document.body.appendChild(element); | 146 document.body.appendChild(element); |
| 147 element.style.gridColumns = "'foo'"; | 147 element.style.gridDefinitionColumns = "'foo'"; |
| 148 element.style.gridRows = "'bar"; | 148 element.style.gridDefinitionRows = "'bar"; |
| 149 testValue(element, "none", "none"); | 149 testValue(element, "none", "none"); |
| 150 | 150 |
| 151 element = document.createElement("div"); | 151 element = document.createElement("div"); |
| 152 document.body.appendChild(element); | 152 document.body.appendChild(element); |
| 153 element.style.gridColumns = "'foo' 'bar'"; | 153 element.style.gridDefinitionColumns = "'foo' 'bar'"; |
| 154 element.style.gridRows = "'bar' 'foo'"; | 154 element.style.gridDefinitionRows = "'bar' 'foo'"; |
| 155 testValue(element, "none", "none"); | 155 testValue(element, "none", "none"); |
| 156 </script> | 156 </script> |
| 157 <script src="../js/resources/js-test-post.js"></script> | 157 <script src="../js/resources/js-test-post.js"></script> |
| 158 </body> | 158 </body> |
| 159 </html> | 159 </html> |
| OLD | NEW |