0ea7e3ec452dce1ccd9bd325dec120ed87041927
[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"), "nav first 10px last", "nav first 15px last");
64     testGridTemplatesValues(document.getElementById("gridWithPercentageSameStringMultipleTimes"), "nav first 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'", "nav first minmax(-webkit-min-content, -webkit-max-content) last", "nav first 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'", "nav first 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>