[CSS Grid Layout] getComputedStyle() not using author's order when showing named...
[WebKit-https.git] / LayoutTests / fast / css-grid-layout / non-named-grid-line-get-set.html
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <script>
5 if (window.testRunner)
6     testRunner.overridePreference("WebKitCSSGridLayoutEnabled", 1);
7 </script>
8 <link href="resources/grid.css" rel="stylesheet">
9 <style>
10 .gridItem {
11     -webkit-grid-column: 1;
12     -webkit-grid-row: 1;
13     height: 22px;
14     width: 77px;
15 }
16 .gridWithFixed {
17     -webkit-grid-template-columns: "first" 10px;
18     -webkit-grid-template-rows: "first" 15px;
19 }
20 .gridWithPercent {
21     -webkit-grid-template-columns: 53% "last";
22     -webkit-grid-template-rows: 27% "last";
23 }
24 .gridWithAuto {
25     -webkit-grid-template-columns: "first" auto;
26     -webkit-grid-template-rows: auto "last";
27 }
28 .gridWithMinMax {
29     -webkit-grid-template-columns: "first" minmax(10%, 15px);
30     -webkit-grid-template-rows: minmax(20px, 50%) "last";
31 }
32 .gridWithFixedMultiple {
33     -webkit-grid-template-columns: "first" "nav" 10px "last";
34     -webkit-grid-template-rows: "first" "nav" 15px "last";
35 }
36 .gridWithPercentageSameStringMultipleTimes {
37     -webkit-grid-template-columns: "first" "nav" 10% "nav" 15% "last";
38     -webkit-grid-template-rows: "first" "nav2" 25% "nav2" 75% "last";
39 }
40 </style>
41 <script src="../../resources/js-test-pre.js"></script>
42 </head>
43 <body>
44 <div class="gridWithFixed" id="gridWithFixedElement"></div>
45 <div class="gridWithPercent" id="gridWithPercentElement"></div>
46 <div class="gridWithAuto" id="gridWithAutoElement"></div>
47 <div class="gridWithAuto" id="gridWithAutoWithChildrenElement">
48     <div class="gridItem"></div>
49 </div>
50 <div class="gridWithMinMax" id="gridWithMinMax"></div>
51 <div class="gridWithFixedMultiple" id="gridWithFixedMultiple"></div>
52 <div class="gridWithPercentageSameStringMultipleTimes" id="gridWithPercentageSameStringMultipleTimes"></div>
53
54 <script src="resources/grid-definitions-parsing-utils.js"></script>
55 <script>
56     description('Test that setting and getting grid-template-columns and grid-template-rows works as expected');
57
58     debug("Test getting grid-template-columns and grid-template-rows set through CSS");
59     testGridTemplatesValues(document.getElementById("gridWithFixedElement"), "first 10px", "first 15px");
60     testGridTemplatesValues(document.getElementById("gridWithPercentElement"), "53% last", "27% last");
61     testGridTemplatesValues(document.getElementById("gridWithAutoElement"), "first auto", "auto last");
62     testGridTemplatesValues(document.getElementById("gridWithMinMax"), "first minmax(10%, 15px)", "minmax(20px, 50%) last");
63     testGridTemplatesValues(document.getElementById("gridWithFixedMultiple"), "first nav 10px last", "first nav 15px last");
64     testGridTemplatesValues(document.getElementById("gridWithPercentageSameStringMultipleTimes"), "first nav 10% nav 15% last", "first nav2 25% nav2 75% last");
65
66     debug("");
67     debug("Test getting and setting grid-template-columns and grid-template-rows through JS");
68     testNonGridTemplatesSetJSValues("'first' 18px", "66px 'last'", "first 18px", "66px last", "first 18px", "66px last");
69     testNonGridTemplatesSetJSValues("'first' 55%", "40% 'last'", "first 55%", "40% last", "first 55%", "40% last");
70     testNonGridTemplatesSetJSValues("'first' auto", "auto 'last'", "first auto", "auto last", "first auto", "auto last");
71     testNonGridTemplatesSetJSValues("'first' -webkit-min-content", "-webkit-min-content 'last'", "first -webkit-min-content", "-webkit-min-content last", "first -webkit-min-content", "-webkit-min-content last");
72     testNonGridTemplatesSetJSValues("'first' -webkit-max-content", "-webkit-max-content 'last'", "first -webkit-max-content", "-webkit-max-content last", "first -webkit-max-content", "-webkit-max-content last");
73     testNonGridTemplatesSetJSValues("'first' minmax(55%, 45px)", "minmax(30px, 40%) 'last'", "first minmax(55%, 45px)", "minmax(30px, 40%) last", "first minmax(55%, 45px)", "minmax(30px, 40%) last");
74     testNonGridTemplatesSetJSValues("'first' minmax(22em, -webkit-max-content)", "minmax(-webkit-max-content, 5em) 'last'", "first minmax(220px, -webkit-max-content)", "minmax(-webkit-max-content, 50px) last", "first minmax(22em, -webkit-max-content)", "minmax(-webkit-max-content, 5em) last", "first minmax(220px, -webkit-max-content)", "minmax(-webkit-max-content, 50px) last", "minmax(-webkit-max-content, 50px) last");
75     testNonGridTemplatesSetJSValues("'first' minmax(22em, -webkit-min-content)", "minmax(-webkit-min-content, 5em) 'last'", "first minmax(220px, -webkit-min-content)", "minmax(-webkit-min-content, 50px) last", "first minmax(22em, -webkit-min-content)", "minmax(-webkit-min-content, 5em) last", "first minmax(220px, -webkit-min-content)", "minmax(-webkit-min-content, 50px) last", "minmax(-webkit-min-content, 50px) last");
76     testNonGridTemplatesSetJSValues("'first' minmax(-webkit-min-content, -webkit-max-content)", "minmax(-webkit-max-content, -webkit-min-content) 'last'", "first minmax(-webkit-min-content, -webkit-max-content)", "minmax(-webkit-max-content, -webkit-min-content) last", "first minmax(-webkit-min-content, -webkit-max-content)", "minmax(-webkit-max-content, -webkit-min-content) last");
77     testNonGridTemplatesSetJSValues("'first' 'nav' minmax(-webkit-min-content, -webkit-max-content) 'last'", "'first' 'nav' minmax(-webkit-max-content, -webkit-min-content) 'last'", "first nav minmax(-webkit-min-content, -webkit-max-content) last", "first nav minmax(-webkit-max-content, -webkit-min-content) last", "first nav minmax(-webkit-min-content, -webkit-max-content) last", "first nav minmax(-webkit-max-content, -webkit-min-content) last");
78     testNonGridTemplatesSetJSValues("'first' 'nav' minmax(-webkit-min-content, -webkit-max-content) 'nav' auto 'last'", "'first' 'nav2' minmax(-webkit-max-content, -webkit-min-content) 'nav2' minmax(10px, 15px) 'last'", "first nav minmax(-webkit-min-content, -webkit-max-content) nav auto last", "first nav2 minmax(-webkit-max-content, -webkit-min-content) nav2 minmax(10px, 15px) last", "first nav minmax(-webkit-min-content, -webkit-max-content) nav auto last", "first nav2 minmax(-webkit-max-content, -webkit-min-content) nav2 minmax(10px, 15px) last");;
79     testNonGridTemplatesSetJSValues("'foo' 'bar' 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", "foo bar auto foo auto bar");
80
81     debug("");
82     debug("Test getting and setting invalid grid-template-columns and grid-template-rows through JS");
83     element = document.createElement("div");
84     document.body.appendChild(element);
85     element.style.webkitGridTemplateColumns = "'foo'";
86     element.style.webkitGridTemplateRows = "'bar";
87     shouldBeEqualToString("getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns')", "none");
88     shouldBeEqualToString("getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows')", "none");
89
90     element = document.createElement("div");
91     document.body.appendChild(element);
92     element.style.webkitGridTemplateColumns = "'foo' 'bar'";
93     element.style.webkitGridTemplateRows = "'bar' 'foo'";
94     shouldBeEqualToString("getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns')", "none");
95     shouldBeEqualToString("getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows')", "none");
96 </script>
97 <script src="../../resources/js-test-post.js"></script>
98 </body>
99 </html>