OLD | NEW |
(Empty) | |
| 1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| 2 <html> |
| 3 <head> |
| 4 <link href="resources/grid.css" rel="stylesheet"> |
| 5 <style> |
| 6 #gridTemplateWithNone { |
| 7 grid-template: none; |
| 8 } |
| 9 #gridTemplateSimpleForm { |
| 10 grid-template: 10px / 15px; |
| 11 } |
| 12 #gridTemplateSimpleFormWithNoneColumns { |
| 13 grid-template: none / 15px; |
| 14 } |
| 15 #gridTemplateSimpleFormWithNoneRows { |
| 16 grid-template: 10px / none; |
| 17 } |
| 18 #gridTemplateSimpleFormWithNone { |
| 19 grid-template: none / none; |
| 20 } |
| 21 #gridTemplateComplexForm { |
| 22 grid-template: 10px / "a" 15px; |
| 23 } |
| 24 #gridTemplateComplexFormWithLineNames { |
| 25 grid-template: 10px / (head) "a" 15px (tail); |
| 26 } |
| 27 #gridTemplateComplexFormWithLineNamesMultipleColumns { |
| 28 grid-template: 10px / (head) "a b" 15px (tail) |
| 29 } |
| 30 #gridTemplateComplexFormWithLineNamesMultipleRows { |
| 31 grid-template: 10px / (head1) "a" 15px (tail1) |
| 32 (head2) "b" 20px (tail2); |
| 33 } |
| 34 #gridTemplateComplexFormWithLineNamesMultipleRowsAndColumns { |
| 35 grid-template: (first) 10px repeat(2, (nav nav2) 15px) / "a b c" 100px
(nav) |
| 36 (nav2) "d e f" 25px
(nav) |
| 37 (nav2) "g h i" 25px
(last); |
| 38 } |
| 39 #gridTemplateComplexFormWithAuto { |
| 40 grid-template: 10px / "a"; |
| 41 } |
| 42 #gridTemplateComplexFormOnlyAreas { |
| 43 grid-template: "a"; |
| 44 } |
| 45 |
| 46 /* Bad values. */ |
| 47 |
| 48 #gridTemplateMultipleSlash { |
| 49 grid-template: 10px / 20px / 30px; |
| 50 } |
| 51 #gridTemplateSimpleFormJustColumns { |
| 52 grid-template: 10px; |
| 53 } |
| 54 #gridTemplateSimpleFormNoRows { |
| 55 grid-template: 10px /; |
| 56 } |
| 57 #gridTemplateSimpleFormNoColumns { |
| 58 grid-template: / 10px; |
| 59 } |
| 60 #gridTemplateSimpleFormNoColumnSize { |
| 61 grid-template: (line) / 10px; |
| 62 } |
| 63 #gridTemplateSimpleFormWithFitContent { |
| 64 grid-template: -webkit-fit-content / 10px; |
| 65 } |
| 66 #gridTemplateSimpleFormWithWrongRepeat { |
| 67 grid-template: repeat(2, 50% (title) a) / 10px; |
| 68 } |
| 69 #gridTemplateSimpleFormWithMisplacedNone1 { |
| 70 grid-template: 10px / none 20px; |
| 71 } |
| 72 #gridTemplateSimpleFormWithMisplacedNone2 { |
| 73 grid-template: 10px / 20px none; |
| 74 } |
| 75 #gridTemplateSimpleFormWithMisplacedNone3 { |
| 76 grid-template: none 10px / 20px; |
| 77 } |
| 78 #gridTemplateSimpleFormWithMisplacedNone4 { |
| 79 grid-template: 10px none / 20px; |
| 80 } |
| 81 #gridTemplateComplexFormWithRepeat { |
| 82 grid-template: 10px / "a" repeat(2, 50% (title)); |
| 83 } |
| 84 #gridTemplateComplexFormWithWrongRepeat { |
| 85 grid-template: repeat(2, 50% (title) a) / "a"; |
| 86 } |
| 87 #griTemplateComplexFormdWithFitAvailable { |
| 88 grid-template: -webkit-fit-available / "a"; |
| 89 } |
| 90 #gridTemplateComplexFormNoColumnSize { |
| 91 grid-template: (line) / "a"; |
| 92 } |
| 93 #gridTemplateComplexFormMisplacedRowsSize1 { |
| 94 grid-template: 25px / 10px "a"; |
| 95 } |
| 96 #gridTemplateComplexFormMisplacedRowsSize2 { |
| 97 grid-template: 25px / "a" (name) 10px; |
| 98 } |
| 99 #gridTemplateComplexFormColumnsNotParsing1 { |
| 100 grid-template: a / "a" (name) 10px; |
| 101 } |
| 102 #gridTemplateComplexFormColumnsNotParsing2 { |
| 103 grid-template: "B" / "a" (name) 10px; |
| 104 } |
| 105 #gridTemplateComplexFormWithNoneColumns { |
| 106 grid-template: none / "a" (name) 10px; |
| 107 } |
| 108 |
| 109 </style> |
| 110 <script src="../../resources/js-test.js"></script> |
| 111 </head> |
| 112 <body> |
| 113 <div class="grid" id="gridTemplateWithNone"></div> |
| 114 <div class="grid" id="gridTemplateSimpleForm"></div> |
| 115 <div class="grid" id="gridTemplateSimpleFormWithNoneColumns"></div> |
| 116 <div class="grid" id="gridTemplateSimpleFormWithNoneRows"></div> |
| 117 <div class="grid" id="gridTemplateSimpleFormWithNone"></div> |
| 118 <div class="grid" id="gridTemplateComplexForm"></div> |
| 119 <div class="grid" id="gridTemplateComplexFormWithLineNames"></div> |
| 120 <div class="grid" id="gridTemplateComplexFormWithLineNamesMultipleColumns"></div
> |
| 121 <div class="grid" id="gridTemplateComplexFormWithLineNamesMultipleRows"></div> |
| 122 <div class="grid" id="gridTemplateComplexFormWithLineNamesMultipleRowsAndColumns
"></div> |
| 123 <div class="grid" id="gridTemplateComplexFormWithAuto"></div> |
| 124 <div class="grid" id="gridTemplateComplexFormOnlyAreas"></div> |
| 125 <div class="grid" id="gridTemplateMultipleSlash"></div> |
| 126 <div class="grid" id="gridTemplateSimpleFormJustColumns"></div> |
| 127 <div class="grid" id="gridTemplateSimpleFormNoRows"></div> |
| 128 <div class="grid" id="gridTemplateSimpleFormNoColumns"></div> |
| 129 <div class="grid" id="gridTemplateSimpleFormNoColumnSize"></div> |
| 130 <div class="grid" id="gridTemplateSimpleFormWithFitContent"></div> |
| 131 <div class="grid" id="gridTemplateSimpleFormWithWrongRepeat"></div> |
| 132 <div class="grid" id="gridTemplateSimpleFormWithMisplacedNone1"></div> |
| 133 <div class="grid" id="gridTemplateSimpleFormWithMisplacedNone2"></div> |
| 134 <div class="grid" id="gridTemplateSimpleFormWithMisplacedNone3"></div> |
| 135 <div class="grid" id="gridTemplateSimpleFormWithMisplacedNone4"></div> |
| 136 <div class="grid" id="gridTemplateComplexFormWithRepeat"></div> |
| 137 <div class="grid" id="gridTemplateComplexFormWithWrongRepeat"></div> |
| 138 <div class="grid" id="griTemplateComplexFormdWithFitAvailable"></div> |
| 139 <div class="grid" id="gridTemplateComplexFormNoColumnSize"></div> |
| 140 <div class="grid" id="gridTemplateComplexFormMisplacedRowsSize1"></div> |
| 141 <div class="grid" id="gridTemplateComplexFormMisplacedRowsSize2"></div> |
| 142 <div class="grid" id="gridTemplateComplexFormColumnsNotParsing1"></div> |
| 143 <div class="grid" id="gridTemplateComplexFormColumnsNotParsing2"></div> |
| 144 <div class="grid" id="gridTemplateComplexFormWithNoneColumns"></div> |
| 145 <script src="resources/grid-template-shorthand-parsing-utils.js"></script> |
| 146 <script> |
| 147 description("This test checks that the 'grid-template' shorthand is properly
parsed and the longhand properties correctly assigned."); |
| 148 |
| 149 debug("Test getting grid-template-areas set through CSS."); |
| 150 testGridDefinitionsValues(document.getElementById("gridTemplateWithNone"), "
none", "none", "none"); |
| 151 testGridDefinitionsValues(document.getElementById("gridTemplateSimpleForm"),
"10px", "15px", "none"); |
| 152 testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWit
hNoneColumns"), "none", "15px", "none"); |
| 153 testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWit
hNoneRows"), "10px", "none", "none"); |
| 154 testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWit
hNone"), "none", "none", "none"); |
| 155 testGridDefinitionsValues(document.getElementById("gridTemplateComplexForm")
, "10px", "15px", '"a"'); |
| 156 testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWi
thLineNames"), "10px", "(head) 15px (tail)", '"a"'); |
| 157 testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWi
thLineNamesMultipleColumns"), "10px", "(head) 15px (tail)", '"a b"'); |
| 158 testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWi
thLineNamesMultipleRows"), "10px", "(head1) 15px (tail1 head2) 20px (tail2)", '"
a" "b"'); |
| 159 testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWi
thLineNamesMultipleRowsAndColumns"), "(first) 10px (nav nav2) 15px (nav nav2) 15
px", "100px (nav nav2) 25px (nav nav2) 25px (last)", '"a b c" "d e f" "g h i"'); |
| 160 testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWi
thAuto"), "10px", "0px", '"a"'); |
| 161 testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormOn
lyAreas"), "none", "0px", '"a"'); |
| 162 |
| 163 debug(""); |
| 164 debug("Test getting wrong values for grid-template shorthand through CSS (th
ey should resolve to the default: 'none')"); |
| 165 testGridDefinitionsValues(document.getElementById("gridTemplateMultipleSlash
"), "none", "none", "none"); |
| 166 testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormJus
tColumns"), "none", "none", "none"); |
| 167 testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormNoR
ows"), "none", "none", "none"); |
| 168 testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormNoC
olumns"), "none", "none", "none"); |
| 169 testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormNoC
olumnSize"), "none", "none", "none"); |
| 170 testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWit
hFitContent"), "none", "none", "none"); |
| 171 testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWit
hWrongRepeat"), "none", "none", "none"); |
| 172 testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWit
hMisplacedNone1"), "none", "none", "none"); |
| 173 testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWit
hMisplacedNone2"), "none", "none", "none"); |
| 174 testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWit
hMisplacedNone3"), "none", "none", "none"); |
| 175 testGridDefinitionsValues(document.getElementById("gridTemplateSimpleFormWit
hMisplacedNone4"), "none", "none", "none"); |
| 176 testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWi
thRepeat"), "none", "none", "none"); |
| 177 testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWi
thWrongRepeat"), "none", "none", "none"); |
| 178 testGridDefinitionsValues(document.getElementById("griTemplateComplexFormdWi
thFitAvailable"), "none", "none", "none"); |
| 179 testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormNo
ColumnSize"), "none", "none", "none"); |
| 180 testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormMi
splacedRowsSize1"), "none", "none", "none"); |
| 181 testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormMi
splacedRowsSize2"), "none", "none", "none"); |
| 182 testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormCo
lumnsNotParsing1"), "none", "none", "none"); |
| 183 testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormCo
lumnsNotParsing2"), "none", "none", "none"); |
| 184 testGridDefinitionsValues(document.getElementById("gridTemplateComplexFormWi
thNoneColumns"), "none", "none", "none"); |
| 185 |
| 186 debug(""); |
| 187 debug("Test the initial value"); |
| 188 var element = document.createElement("div"); |
| 189 document.body.appendChild(element); |
| 190 testGridDefinitionsValues(element, "none", "none", "none"); |
| 191 shouldBe("getComputedStyle(element, '').getPropertyValue('grid-template-colu
mns')", "'none'"); |
| 192 shouldBe("getComputedStyle(element, '').getPropertyValue('grid-template-rows
')", "'none'"); |
| 193 shouldBe("getComputedStyle(element, '').getPropertyValue('grid-template-area
s')", "'none'"); |
| 194 |
| 195 debug(""); |
| 196 debug("Test setting grid-template-columns and grid-template-rows back to 'no
ne' through JS"); |
| 197 testGridDefinitionsSetJSValues("10px / (line) 'a' 20px", "10px", "(line) 20p
x", "\"a\""); |
| 198 testGridDefinitionsSetJSValues("none", "none", "none", "none"); |
| 199 |
| 200 debug(""); |
| 201 debug("Test getting and setting grid-template shorthand through JS"); |
| 202 testGridDefinitionsSetJSValues("18px / 66px", "18px", "66px", "none"); |
| 203 testGridDefinitionsSetJSValues("10px / (head) 'a' 15px (tail)", "10px", "(he
ad) 15px (tail)", "\"a\""); |
| 204 testGridDefinitionsSetJSValues("'a'", "none", "0px", "\"a\"", "none", "auto"
); |
| 205 |
| 206 debug(""); |
| 207 debug("Test setting grid-template shorthand to bad values through JS"); |
| 208 testGridDefinitionsSetBadJSValues("none / 'a'"); |
| 209 testGridDefinitionsSetBadJSValues("25px / 'a' (name) 10px"); |
| 210 testGridDefinitionsSetBadJSValues("'a' / 'b'"); |
| 211 testGridDefinitionsSetBadJSValues("15px"); |
| 212 testGridDefinitionsSetBadJSValues("15px / 20px none"); |
| 213 testGridDefinitionsSetBadJSValues("25px / 10px 'a'"); |
| 214 |
| 215 </script> |
| 216 </body> |
| 217 </html> |
OLD | NEW |