| <!DOCTYPE HTML> |
| <html> |
| <head> |
| <link href="resources/grid.css" rel="stylesheet"> |
| <style> |
| .gridItem { |
| -webkit-grid-column: 1; |
| -webkit-grid-row: 1; |
| height: 22px; |
| width: 77px; |
| } |
| .gridWithFixed { |
| -webkit-grid-template-columns: (first) 10px; |
| -webkit-grid-template-rows: (first) 15px; |
| } |
| .gridWithPercent { |
| -webkit-grid-template-columns: 53% (last); |
| -webkit-grid-template-rows: 27% (last); |
| } |
| .gridWithAuto { |
| -webkit-grid-template-columns: (first) auto; |
| -webkit-grid-template-rows: auto (last); |
| } |
| .gridWithMinMax { |
| -webkit-grid-template-columns: (first) minmax(10%, 15px); |
| -webkit-grid-template-rows: minmax(20px, 50%) (last); |
| } |
| .gridWithFixedMultiple { |
| -webkit-grid-template-columns: (first nav) 10px (last); |
| -webkit-grid-template-rows: (first nav) 15px (last); |
| } |
| .gridWithPercentageSameStringMultipleTimes { |
| -webkit-grid-template-columns: (first nav) 10% (nav) 15% (last); |
| -webkit-grid-template-rows: (first nav2) 25% (nav2) 75% (last); |
| } |
| </style> |
| <script src="../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <div class="gridWithFixed" id="gridWithFixedElement"></div> |
| <div class="gridWithPercent" id="gridWithPercentElement"></div> |
| <div class="gridWithAuto" id="gridWithAutoElement"></div> |
| <div class="gridWithAuto" id="gridWithAutoWithChildrenElement"> |
| <div class="gridItem"></div> |
| </div> |
| <div class="gridWithMinMax" id="gridWithMinMax"></div> |
| <div class="gridWithFixedMultiple" id="gridWithFixedMultiple"></div> |
| <div class="gridWithPercentageSameStringMultipleTimes" id="gridWithPercentageSameStringMultipleTimes"></div> |
| |
| <script src="resources/grid-definitions-parsing-utils.js"></script> |
| <script> |
| description('Test that setting and getting grid-template-columns and grid-template-rows works as expected'); |
| |
| debug("Test getting grid-template-columns and grid-template-rows set through CSS"); |
| testGridTemplatesValues(document.getElementById("gridWithFixedElement"), "(first) 10px", "(first) 15px"); |
| testGridTemplatesValues(document.getElementById("gridWithPercentElement"), "53% (last)", "27% (last)"); |
| testGridTemplatesValues(document.getElementById("gridWithAutoElement"), "(first) auto", "auto (last)"); |
| testGridTemplatesValues(document.getElementById("gridWithMinMax"), "(first) minmax(10%, 15px)", "minmax(20px, 50%) (last)"); |
| testGridTemplatesValues(document.getElementById("gridWithFixedMultiple"), "(first nav) 10px (last)", "(first nav) 15px (last)"); |
| testGridTemplatesValues(document.getElementById("gridWithPercentageSameStringMultipleTimes"), "(first nav) 10% (nav) 15% (last)", "(first nav2) 25% (nav2) 75% (last)"); |
| |
| debug(""); |
| debug("Test getting and setting grid-template-columns and grid-template-rows through JS"); |
| testNonGridTemplatesSetJSValues("(first) 18px", "66px (last)", "(first) 18px", "66px (last)", "(first) 18px", "66px (last)"); |
| testNonGridTemplatesSetJSValues("(first) 55%", "40% (last)", "(first) 55%", "40% (last)", "(first) 55%", "40% (last)"); |
| testNonGridTemplatesSetJSValues("(first) auto", "auto (last)", "(first) auto", "auto (last)", "(first) auto", "auto (last)"); |
| 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)"); |
| 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)"); |
| 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)"); |
| 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)"); |
| 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)"); |
| 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)"); |
| 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)"); |
| 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)");; |
| 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)"); |
| |
| debug(""); |
| debug("Test getting and setting invalid grid-template-columns and grid-template-rows through JS"); |
| element = document.createElement("div"); |
| document.body.appendChild(element); |
| element.style.webkitGridTemplateColumns = "(foo)"; |
| element.style.webkitGridTemplateRows = "(bar)"; |
| shouldBeEqualToString("getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns')", "none"); |
| shouldBeEqualToString("getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows')", "none"); |
| |
| element = document.createElement("div"); |
| document.body.appendChild(element); |
| element.style.webkitGridTemplateColumns = "(foo bar)"; |
| element.style.webkitGridTemplateRows = "(bar foo)"; |
| shouldBeEqualToString("getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns')", "none"); |
| shouldBeEqualToString("getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows')", "none"); |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |