[CSS Grid Layout] Implementation of the grid-template shorthand.
[WebKit-https.git] / LayoutTests / fast / css-grid-layout / resources / grid-template-shorthand-parsing-utils.js
1 function testGridDefinitionsValues(element, computedColumnsValue, computedRowsValue, computedAreasValue)
2 {
3     window.element = element;
4     var elementID = element.id || "element";
5     shouldBeEqualToString("window.getComputedStyle(" + elementID + ", '').getPropertyValue('-webkit-grid-template-columns')", computedColumnsValue);
6     shouldBeEqualToString("window.getComputedStyle(" + elementID + ", '').getPropertyValue('-webkit-grid-template-rows')", computedRowsValue);
7     shouldBeEqualToString("window.getComputedStyle(" + elementID + ", '').getPropertyValue('-webkit-grid-template-areas')", computedAreasValue);
8 }
9
10 function testGridDefinitionsSetJSValues(shorthandValue, computedColumnsValue, computedRowsValue, computedAreasValue, jsColumnsValue, jsRowsValue, jsAreasValue)
11 {
12     checkGridDefinitionsSetJSValues(true, shorthandValue, computedColumnsValue, computedRowsValue, computedAreasValue, jsColumnsValue, jsRowsValue, jsAreasValue);
13 }
14
15 function testNonGridDefinitionsSetJSValues(shorthandValue, computedColumnsValue, computedRowsValue, computedAreasValue, jsColumnsValue, jsRowsValue, jsAreasValue)
16 {
17     checkGridDefinitionsSetJSValues(false, shorthandValue, computedColumnsValue, computedRowsValue, computedAreasValue, jsColumnsValue, jsRowsValue, jsAreasValue);
18 }
19
20 function checkGridDefinitionsSetJSValues(useGrid, shorthandValue, computedColumnsValue, computedRowsValue, computedAreasValue, jsColumnsValue, jsRowsValue, jsAreasValue)
21 {
22     window.element = document.createElement("div");
23     document.body.appendChild(element);
24     if (useGrid) {
25         element.style.display = "-webkit-grid";
26         element.style.width = "800px";
27         element.style.height = "600px";
28     }
29
30     element.style.font = "10px Ahem"; // Used to resolve em font consistently.
31     element.style.webkitGridTemplate = shorthandValue;
32     shouldBeEqualToString("getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-columns')", computedColumnsValue);
33     shouldBeEqualToString("element.style.webkitGridTemplateColumns", jsColumnsValue || computedColumnsValue);
34     shouldBeEqualToString("getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-rows')", computedRowsValue);
35     shouldBeEqualToString("element.style.webkitGridTemplateRows", jsRowsValue || computedRowsValue);
36     shouldBeEqualToString("getComputedStyle(element, '').getPropertyValue('-webkit-grid-template-areas')", computedAreasValue);
37     shouldBeEqualToString("element.style.webkitGridTemplateAreas", jsAreasValue || computedAreasValue);
38     document.body.removeChild(element);
39
40 }
41
42 function testGridDefinitionsSetBadJSValues(shorthandValue)
43 {
44     window.element = document.createElement("div");
45     document.body.appendChild(element);
46
47     element.style.webkitGridTemplate = shorthandValue;
48     // We can't use testSetJSValues as element.style.webkitGridTemplateRows returns "".
49     testGridDefinitionsValues(element, "none", "none", "none");
50     document.body.removeChild(element);
51 }