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 |