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 .grid { | 6 .grid { |
7 /* Give an explicit size to the grid so that percentage grid tracks have a c onsistent resolution */ | 7 /* Give an explicit size to the grid so that percentage grid tracks have a c onsistent resolution */ |
8 width: 800px; | 8 width: 800px; |
9 height: 600px; | 9 height: 600px; |
10 } | 10 } |
11 .gridItem { | 11 .gridItem { |
12 grid-column: 1; | 12 grid-column: 1; |
13 grid-row: 1; | 13 grid-row: 1; |
14 height: 22px; | 14 height: 22px; |
15 width: 77px; | 15 width: 77px; |
16 } | 16 } |
17 .gridWithFixed { | 17 .gridWithFixed { |
18 grid-template-columns: (first) 10px; | 18 grid-template-columns: [first] 10px; |
19 grid-template-rows: (first) 15px; | 19 grid-template-rows: [first] 15px; |
20 } | 20 } |
21 .gridWithPercent { | 21 .gridWithPercent { |
22 grid-template-columns: 53% (last); | 22 grid-template-columns: 53% [last]; |
23 grid-template-rows: 27% (last); | 23 grid-template-rows: 27% [last]; |
24 } | 24 } |
25 .gridWithAuto { | 25 .gridWithAuto { |
26 grid-template-columns: (first) auto; | 26 grid-template-columns: [first] auto; |
27 grid-template-rows: auto (last); | 27 grid-template-rows: auto [last]; |
28 } | 28 } |
29 .gridWithMinMax { | 29 .gridWithMinMax { |
30 grid-template-columns: (first) minmax(10%, 15px); | 30 grid-template-columns: [first] minmax(10%, 15px); |
31 grid-template-rows: minmax(20px, 50%) (last); | 31 grid-template-rows: minmax(20px, 50%) [last]; |
32 } | 32 } |
33 .gridWithFixedMultiple { | 33 .gridWithFixedMultiple { |
34 grid-template-columns: (first nav) 10px (last); | 34 grid-template-columns: [first nav] 10px [last]; |
35 grid-template-rows: (first nav) 15px (last); | 35 grid-template-rows: [first nav] 15px [last]; |
36 } | 36 } |
37 .gridWithPercentageSameStringMultipleTimes { | 37 .gridWithPercentageSameStringMultipleTimes { |
38 grid-template-columns: (first nav) 10% (nav) 15% (last); | 38 grid-template-columns: [first nav] 10% [nav] 15% [last]; |
39 grid-template-rows: (first nav2) 25% (nav2) 75% (last); | 39 grid-template-rows: [first nav2] 25% [nav2] 75% [last]; |
40 } | 40 } |
41 .gridWithRepeat { | 41 .gridWithRepeat { |
42 grid-template-columns: (first) 10px repeat(2, (nav nav2) 50%); | 42 grid-template-columns: [first] 10px repeat(2, [nav nav2] 50%); |
43 grid-template-rows: 100px repeat(2, (nav nav2) 25%) (last); | 43 grid-template-rows: 100px repeat(2, [nav nav2] 25%) [last]; |
44 } | 44 } |
45 .gridWithEmptyParentheses { | 45 .gridWithEmptyBrackets { |
46 grid-template-columns: () 10px; | 46 grid-template-columns: [] 10px; |
47 grid-template-rows: 20px ( ) 50px (); | 47 grid-template-rows: 20px [ ] 50px []; |
48 } | 48 } |
49 .gridWithoutParentheses { | 49 .gridWithoutBrackets { |
50 grid-template-columns: first nav 10px; | 50 grid-template-columns: first nav 10px; |
51 grid-template-rows: first 50% last; | 51 grid-template-rows: first 50% last; |
52 } | 52 } |
53 .gridWithInvalidNestedParentheses { | 53 .gridWithInvalidNestedBrackets { |
54 grid-template-columns: (first (nav)) 10px (last); | 54 grid-template-columns: [first [nav]] 10px [last]; |
55 grid-template-rows: (first) 50% (last (nav) nav2); | 55 grid-template-rows: [first] 50% [last [nav] nav2]; |
56 } | 56 } |
57 .gridWithUnbalancedParentheses { | 57 .gridWithUnbalancedBrackets { |
58 grid-template-columns: (first nav 10px; | 58 grid-template-columns: [first nav 10px; |
59 grid-template-rows: (first) 50% last); | 59 grid-template-rows: [first] 50% last]; |
60 } | 60 } |
61 .gridWithMisplacedParentheses { | 61 .gridWithMisplacedBrackets { |
62 grid-template-columns: (first 10px) 50%; | 62 grid-template-columns: [first 10px] 50%; |
63 grid-template-rows: (first) (nav 50%); | 63 grid-template-rows: [first] [nav 50%]; |
64 } | 64 } |
65 .gridWithContiguousParentheses { | 65 .gridWithContiguousBrackets { |
66 grid-template-columns: (first) (nav) 10px; | 66 grid-template-columns: [first] [nav] 10px; |
67 grid-template-rows: 50px (nav nav2) (middle) 10px; | 67 grid-template-rows: 50px [nav nav2] [middle] 10px; |
68 } | 68 } |
Manuel Rego
2015/06/04 11:38:39
Would it make sense to keep a few of the old synta
| |
69 </style> | 69 </style> |
70 <script src="../../resources/js-test.js"></script> | 70 <script src="../../resources/js-test.js"></script> |
71 </head> | 71 </head> |
72 <body> | 72 <body> |
73 <div class="grid gridWithFixed" id="gridWithFixedElement"></div> | 73 <div class="grid gridWithFixed" id="gridWithFixedElement"></div> |
74 <div class="grid gridWithPercent" id="gridWithPercentElement"></div> | 74 <div class="grid gridWithPercent" id="gridWithPercentElement"></div> |
75 <div class="indefiniteSizeGrid gridWithPercent" id="gridWithPercentWithoutSize"> </div> | 75 <div class="indefiniteSizeGrid gridWithPercent" id="gridWithPercentWithoutSize"> </div> |
76 <div class="indefiniteSizeGrid gridWithPercent" id="gridWithPercentWithoutSizeWi thChildren"> | 76 <div class="indefiniteSizeGrid gridWithPercent" id="gridWithPercentWithoutSizeWi thChildren"> |
77 <div class="gridItem"></div> | 77 <div class="gridItem"></div> |
78 </div> | 78 </div> |
79 <div class="grid gridWithAuto" id="gridWithAutoElement"></div> | 79 <div class="grid gridWithAuto" id="gridWithAutoElement"></div> |
80 <div class="grid gridWithAuto" id="gridWithAutoWithChildrenElement"> | 80 <div class="grid gridWithAuto" id="gridWithAutoWithChildrenElement"> |
81 <div class="gridItem"></div> | 81 <div class="gridItem"></div> |
82 </div> | 82 </div> |
83 <div class="grid gridWithMinMax" id="gridWithMinMax"></div> | 83 <div class="grid gridWithMinMax" id="gridWithMinMax"></div> |
84 <div class="grid gridWithFixedMultiple" id="gridWithFixedMultiple"></div> | 84 <div class="grid gridWithFixedMultiple" id="gridWithFixedMultiple"></div> |
85 <div class="grid gridWithPercentageSameStringMultipleTimes" id="gridWithPercenta geSameStringMultipleTimes"></div> | 85 <div class="grid gridWithPercentageSameStringMultipleTimes" id="gridWithPercenta geSameStringMultipleTimes"></div> |
86 <div class="grid gridWithRepeat" id="gridWithRepeatElement"></div> | 86 <div class="grid gridWithRepeat" id="gridWithRepeatElement"></div> |
87 <div class="grid gridWithEmptyParentheses" id="gridWithEmptyParentheses"></div> | 87 <div class="grid gridWithEmptyBrackets" id="gridWithEmptyBrackets"></div> |
88 <div class="grid gridWithoutParentheses" id="gridWithoutParentheses"></div> | 88 <div class="grid gridWithoutBrackets" id="gridWithoutBrackets"></div> |
89 <div class="grid gridWithInvalidNestedParentheses" id="gridWithInvalidNestedPare ntheses"></div> | 89 <div class="grid gridWithInvalidNestedBrackets" id="gridWithInvalidNestedBracket s"></div> |
90 <div class="grid gridWithUnbalancedParentheses" id="gridWithUnbalancedParenthese s"></div> | 90 <div class="grid gridWithUnbalancedBrackets" id="gridWithUnbalancedBrackets"></d iv> |
91 <div class="grid gridWithMisplacedParentheses" id="gridWithMisplacedParentheses" ></div> | 91 <div class="grid gridWithMisplacedBrackets" id="gridWithMisplacedBrackets"></div > |
92 <div class="grid gridWithContiguousParentheses" id="gridWithContiguousParenthese s"></div> | 92 <div class="grid gridWithContiguousBrackets" id="gridWithContiguousBrackets"></d iv> |
93 | 93 |
94 <script src="resources/grid-definitions-parsing-utils.js"></script> | 94 <script src="resources/grid-definitions-parsing-utils.js"></script> |
95 <script> | 95 <script> |
96 description('Test that setting and getting grid-template-columns and grid-te mplate-rows works as expected'); | 96 description('Test that setting and getting grid-template-columns and grid-te mplate-rows works as expected'); |
97 | 97 |
98 debug("Test getting grid-template-columns and grid-template-rows set through CSS"); | 98 debug("Test getting grid-template-columns and grid-template-rows set through CSS"); |
99 testGridDefinitionsValues(document.getElementById("gridWithFixedElement"), " (first) 10px", "(first) 15px"); | 99 testGridDefinitionsValues(document.getElementById("gridWithFixedElement"), " [first] 10px", "[first] 15px"); |
100 testGridDefinitionsValues(document.getElementById("gridWithPercentElement"), "424px (last)", "162px (last)"); | 100 testGridDefinitionsValues(document.getElementById("gridWithPercentElement"), "424px [last]", "162px [last]"); |
101 testGridDefinitionsValues(document.getElementById("gridWithPercentWithoutSiz e"), "0px (last)", "0px (last)"); | 101 testGridDefinitionsValues(document.getElementById("gridWithPercentWithoutSiz e"), "0px [last]", "0px [last]"); |
102 testGridDefinitionsValues(document.getElementById("gridWithPercentWithoutSiz eWithChildren"), "77px (last)", "22px (last)"); | 102 testGridDefinitionsValues(document.getElementById("gridWithPercentWithoutSiz eWithChildren"), "77px [last]", "22px [last]"); |
103 testGridDefinitionsValues(document.getElementById("gridWithAutoElement"), "( first) 0px", "0px (last)"); | 103 testGridDefinitionsValues(document.getElementById("gridWithAutoElement"), "[ first] 0px", "0px [last]"); |
104 testGridDefinitionsValues(document.getElementById("gridWithAutoWithChildrenE lement"), "(first) 77px", "22px (last)"); | 104 testGridDefinitionsValues(document.getElementById("gridWithAutoWithChildrenE lement"), "[first] 77px", "22px [last]"); |
105 testGridDefinitionsValues(document.getElementById("gridWithMinMax"), "(first ) 80px", "300px (last)"); | 105 testGridDefinitionsValues(document.getElementById("gridWithMinMax"), "[first ] 80px", "300px [last]"); |
106 testGridDefinitionsValues(document.getElementById("gridWithFixedMultiple"), "(first nav) 10px (last)", "(first nav) 15px (last)"); | 106 testGridDefinitionsValues(document.getElementById("gridWithFixedMultiple"), "[first nav] 10px [last]", "[first nav] 15px [last]"); |
107 testGridDefinitionsValues(document.getElementById("gridWithPercentageSameStr ingMultipleTimes"), "(first nav) 80px (nav) 120px (last)", "(first nav2) 150px ( nav2) 450px (last)"); | 107 testGridDefinitionsValues(document.getElementById("gridWithPercentageSameStr ingMultipleTimes"), "[first nav] 80px [nav] 120px [last]", "[first nav2] 150px [ nav2] 450px [last]"); |
108 testGridDefinitionsValues(document.getElementById("gridWithRepeatElement"), "(first) 10px (nav nav2) 400px (nav nav2) 400px", "100px (nav nav2) 150px (nav n av2) 150px (last)"); | 108 testGridDefinitionsValues(document.getElementById("gridWithRepeatElement"), "[first] 10px [nav nav2] 400px [nav nav2] 400px", "100px [nav nav2] 150px [nav n av2] 150px [last]"); |
109 testGridDefinitionsValues(document.getElementById("gridWithEmptyParentheses" ), "10px", "20px 50px"); | 109 testGridDefinitionsValues(document.getElementById("gridWithEmptyBrackets"), "10px", "20px 50px"); |
110 | 110 |
111 debug(""); | 111 debug(""); |
112 debug("Test getting and setting grid-template-columns and grid-template-rows through JS"); | 112 debug("Test getting and setting grid-template-columns and grid-template-rows through JS"); |
113 testGridDefinitionsSetJSValues("(first) 18px", "66px (last)", "(first) 18px" , "66px (last)", "(first) 18px", "66px (last)"); | 113 testGridDefinitionsSetJSValues("[first] 18px", "66px [last]", "[first] 18px" , "66px [last]", "[first] 18px", "66px [last]"); |
114 testGridDefinitionsSetJSValues("(first) 55%", "40% (last)", "(first) 440px", "240px (last)", "(first) 55%", "40% (last)"); | 114 testGridDefinitionsSetJSValues("[first] 55%", "40% [last]", "[first] 440px", "240px [last]", "[first] 55%", "40% [last]"); |
115 testGridDefinitionsSetJSValues("(first) auto", "auto (last)", "(first) 0px", "0px (last)", "(first) auto", "auto (last)"); | 115 testGridDefinitionsSetJSValues("[first] auto", "auto [last]", "[first] 0px", "0px [last]", "[first] auto", "auto [last]"); |
116 testGridDefinitionsSetJSValues("(first) min-content", "min-content (last)", "(first) 0px", "0px (last)", "(first) min-content", "min-content (last)"); | 116 testGridDefinitionsSetJSValues("[first] min-content", "min-content [last]", "[first] 0px", "0px [last]", "[first] min-content", "min-content [last]"); |
117 testGridDefinitionsSetJSValues("(first) max-content", "max-content (last)", "(first) 0px", "0px (last)", "(first) max-content", "max-content (last)"); | 117 testGridDefinitionsSetJSValues("[first] max-content", "max-content [last]", "[first] 0px", "0px [last]", "[first] max-content", "max-content [last]"); |
118 testGridDefinitionsSetJSValues("(first) minmax(55%, 45px)", "minmax(30px, 40 %) (last)", "(first) 440px", "240px (last)", "(first) minmax(55%, 45px)", "minma x(30px, 40%) (last)"); | 118 testGridDefinitionsSetJSValues("[first] minmax(55%, 45px)", "minmax(30px, 40 %) [last]", "[first] 440px", "240px [last]", "[first] minmax(55%, 45px)", "minma x(30px, 40%) [last]"); |
119 testGridDefinitionsSetJSValues("(first) minmax(22em, max-content)", "minmax( max-content, 5em) (last)", "(first) 220px", "50px (last)", "(first) minmax(22em, max-content)", "minmax(max-content, 5em) (last)"); | 119 testGridDefinitionsSetJSValues("[first] minmax(22em, max-content)", "minmax( max-content, 5em) [last]", "[first] 220px", "50px [last]", "[first] minmax(22em, max-content)", "minmax(max-content, 5em) [last]"); |
120 testGridDefinitionsSetJSValues("(first) minmax(22em, min-content)", "minmax( min-content, 5em) (last)", "(first) 220px", "50px (last)", "(first) minmax(22em, min-content)", "minmax(min-content, 5em) (last)"); | 120 testGridDefinitionsSetJSValues("[first] minmax(22em, min-content)", "minmax( min-content, 5em) [last]", "[first] 220px", "50px [last]", "[first] minmax(22em, min-content)", "minmax(min-content, 5em) [last]"); |
121 testGridDefinitionsSetJSValues("(first) minmax(min-content, max-content)", " minmax(max-content, min-content) (last)", "(first) 0px", "0px (last)", "(first) minmax(min-content, max-content)", "minmax(max-content, min-content) (last)"); | 121 testGridDefinitionsSetJSValues("[first] minmax(min-content, max-content)", " minmax(max-content, min-content) [last]", "[first] 0px", "0px [last]", "[first] minmax(min-content, max-content)", "minmax(max-content, min-content) [last]"); |
122 testGridDefinitionsSetJSValues("(first nav) minmax(min-content, max-content) (last)", "(first nav) minmax(max-content, min-content) (last)", "(first nav) 0p x (last)", "(first nav) 0px (last)", "(first nav) minmax(min-content, max-conten t) (last)", "(first nav) minmax(max-content, min-content) (last)"); | 122 testGridDefinitionsSetJSValues("[first nav] minmax(min-content, max-content) [last]", "[first nav] minmax(max-content, min-content) [last]", "[first nav] 0p x [last]", "[first nav] 0px [last]", "[first nav] minmax(min-content, max-conten t) [last]", "[first nav] minmax(max-content, min-content) [last]"); |
123 testGridDefinitionsSetJSValues("(first nav) minmax(min-content, max-content) (nav) auto (last)", "(first nav2) minmax(max-content, min-content) (nav2) minma x(10px, 15px) (last)", "(first nav) 0px (nav) 0px (last)", "(first nav2) 0px (na v2) 15px (last)", "(first nav) minmax(min-content, max-content) (nav) auto (last )", "(first nav2) minmax(max-content, min-content) (nav2) minmax(10px, 15px) (la st)"); | 123 testGridDefinitionsSetJSValues("[first nav] minmax(min-content, max-content) [nav] auto [last]", "[first nav2] minmax(max-content, min-content) [nav2] minma x(10px, 15px) [last]", "[first nav] 0px [nav] 0px [last]", "[first nav2] 0px [na v2] 15px [last]", "[first nav] minmax(min-content, max-content) [nav] auto [last ]", "[first nav2] minmax(max-content, min-content) [nav2] minmax(10px, 15px) [la st]"); |
124 testGridDefinitionsSetJSValues("(foo bar) auto (foo) auto (bar)", "(foo bar) auto (foo) auto (bar)", "(foo bar) 0px (foo) 0px (bar)", "(foo bar) 0px (foo) 0 px (bar)", "(foo bar) auto (foo) auto (bar)", "(foo bar) auto (foo) auto (bar)") ; | 124 testGridDefinitionsSetJSValues("[foo bar] auto [foo] auto [bar]", "[foo bar] auto [foo] auto [bar]", "[foo bar] 0px [foo] 0px [bar]", "[foo bar] 0px [foo] 0 px [bar]", "[foo bar] auto [foo] auto [bar]", "[foo bar] auto [foo] auto [bar]") ; |
125 testGridDefinitionsSetJSValues("(first) auto repeat(2, (foo bar) 20px)", "22 0px (foo) repeat(1, 50% (baz)", "(first) 0px (foo bar) 20px (foo bar) 20px", "22 0px (foo) 300px (baz)", "(first) auto (foo bar) 20px (foo bar) 20px", "220px (fo o) 50% (baz)"); | 125 testGridDefinitionsSetJSValues("[first] auto repeat(2, [foo bar] 20px)", "22 0px [foo] repeat(1, 50% [baz]", "[first] 0px [foo bar] 20px [foo bar] 20px", "22 0px [foo] 300px [baz]", "[first] auto [foo bar] 20px [foo bar] 20px", "220px [fo o] 50% [baz]"); |
126 | 126 |
127 debug(""); | 127 debug(""); |
128 debug("Test getting invalid grid-template-columns and grid-template-rows set through CSS"); | 128 debug("Test getting invalid grid-template-columns and grid-template-rows set through CSS"); |
129 testGridDefinitionsValues(document.getElementById("gridWithoutParentheses"), "none", "none"); | 129 testGridDefinitionsValues(document.getElementById("gridWithoutBrackets"), "n one", "none"); |
130 testGridDefinitionsValues(document.getElementById("gridWithInvalidNestedPare ntheses"), "none", "none"); | 130 testGridDefinitionsValues(document.getElementById("gridWithInvalidNestedBrac kets"), "none", "none"); |
131 testGridDefinitionsValues(document.getElementById("gridWithUnbalancedParenth eses"), "none", "none"); | 131 testGridDefinitionsValues(document.getElementById("gridWithUnbalancedBracket s"), "none", "none"); |
132 testGridDefinitionsValues(document.getElementById("gridWithMisplacedParenthe ses"), "none", "none"); | 132 testGridDefinitionsValues(document.getElementById("gridWithMisplacedBrackets "), "none", "none"); |
133 testGridDefinitionsValues(document.getElementById("gridWithContiguousParenth eses"), "none", "none"); | 133 testGridDefinitionsValues(document.getElementById("gridWithContiguousBracket s"), "none", "none"); |
134 | 134 |
135 debug(""); | 135 debug(""); |
136 debug("Test getting and setting invalid grid-template-columns and grid-templ ate-rows through JS"); | 136 debug("Test getting and setting invalid grid-template-columns and grid-templ ate-rows through JS"); |
137 testGridDefinitionsSetBadJSValues("(foo)", "(bar"); | 137 testGridDefinitionsSetBadJSValues("[foo]", "(bar"); |
138 testGridDefinitionsSetBadJSValues("(foo bar)", "(bar foo)"); | 138 testGridDefinitionsSetBadJSValues("[foo bar]", "(bar foo)"); |
139 testGridDefinitionsSetBadJSValues("foo bar 10px", "50% baz bar foo 2em"); | 139 testGridDefinitionsSetBadJSValues("foo bar 10px", "50% baz bar foo 2em"); |
Manuel Rego
2015/06/04 11:38:39
Here, you're updating some examples but not other.
| |
140 testGridDefinitionsSetBadJSValues("(foo (bar)) 10px", "50% ((baz bar) foo) 2 em"); | 140 testGridDefinitionsSetBadJSValues("(foo [bar]) 10px", "50% ((baz bar) foo) 2 em"); |
141 testGridDefinitionsSetBadJSValues("(foo bar 10px", "50% (baz bar) foo) 2em") ; | 141 testGridDefinitionsSetBadJSValues("(foo bar 10px", "50% (baz bar) foo) 2em") ; |
142 testGridDefinitionsSetBadJSValues("(foo 10px) 2em", "(50% bar) (foo)"); | 142 testGridDefinitionsSetBadJSValues("(foo 10px) 2em", "(50% bar) [foo]"); |
143 </script> | 143 </script> |
144 </body> | 144 </body> |
145 </html> | 145 </html> |
OLD | NEW |