830fac355423b918afe8e648466b0abbdef53e66
[WebKit-https.git] / LayoutTests / fast / css-grid-layout / resources / grid-definitions-parsing-utils.js
1 function testGridTemplatesValues(element, columnValue, rowValue, computedColumnValue, computedRowValue)
2 {
3     window.element = element;
4     var elementID = element.id || "element";
5     shouldBeEqualToString("window.getComputedStyle(" + elementID + ", '').getPropertyValue('grid-template-columns')", computedColumnValue || columnValue);
6     shouldBeEqualToString("window.getComputedStyle(" + elementID + ", '').getPropertyValue('grid-template-rows')", computedRowValue || rowValue);
7 }
8
9 function testGridTemplatesSetJSValues(columnValue, rowValue, computedColumnValue, computedRowValue, jsColumnValue, jsRowValue)
10 {
11     checkGridTemplatesSetJSValues(true, columnValue, rowValue, computedColumnValue, computedRowValue, jsColumnValue, jsRowValue);
12 }
13
14 function testNonGridTemplatesSetJSValues(columnValue, rowValue, computedColumnValue, computedRowValue, jsColumnValue, jsRowValue)
15 {
16     checkGridTemplatesSetJSValues(false, columnValue, rowValue, computedColumnValue, computedRowValue, jsColumnValue, jsRowValue);
17 }
18
19 function checkGridTemplatesSetJSValues(useGrid, columnValue, rowValue, computedColumnValue, computedRowValue, jsColumnValue, jsRowValue)
20 {
21     window.element = document.createElement("div");
22     document.body.appendChild(element);
23     if (useGrid) {
24         element.style.display = "grid";
25         element.style.width = "800px";
26         element.style.height = "600px";
27         element.style.justifyContent = "start";
28         element.style.alignContent = "start";
29     }
30     element.style.font = "10px Ahem"; // Used to resolve em font consistently.
31     element.style.gridTemplateColumns = columnValue;
32     element.style.gridTemplateRows = rowValue;
33     shouldBeEqualToString("getComputedStyle(element, '').getPropertyValue('grid-template-columns')", computedColumnValue || columnValue);
34     shouldBeEqualToString("element.style.gridTemplateColumns", jsColumnValue || columnValue);
35     shouldBeEqualToString("getComputedStyle(element, '').getPropertyValue('grid-template-rows')", computedRowValue || rowValue);
36     shouldBeEqualToString("element.style.gridTemplateRows", jsRowValue || rowValue);
37     document.body.removeChild(element);
38 }
39
40 function testGridTemplatesSetBadJSValues(columnValue, rowValue)
41 {
42     window.element = document.createElement("div");
43     document.body.appendChild(element);
44     element.style.gridTemplateColumns = columnValue;
45     element.style.gridTemplateRows = rowValue;
46     // We can't use testSetJSValues as element.style.gridTemplateRows returns "".
47     testGridTemplatesValues(element, "none", "none");
48     document.body.removeChild(element);
49 }
50
51 function checkGridAutoFlowSetCSSValue(elementId, expectedValue) {
52     shouldBe("window.getComputedStyle(" + elementId + ", '').getPropertyValue('grid-auto-flow')", "'" + expectedValue + "'");
53 }
54
55 function checkGridAutoFlowSetJSValue(newValue, expectedStyleValue, expectedComputedStyleValue) {
56     element = document.createElement("div");
57     document.body.appendChild(element);
58     if (newValue)
59         element.style.gridAutoFlow = newValue;
60     shouldBe("element.style.gridAutoFlow", "'" + expectedStyleValue + "'");
61     shouldBe("window.getComputedStyle(element, '').getPropertyValue('grid-auto-flow')", "'" + expectedComputedStyleValue + "'");
62     document.body.removeChild(element);
63 }
64
65 function testGridAutoDefinitionsValues(element, computedRowValue, computedColumnValue)
66 {
67     window.element = element;
68     var elementID = element.id || "element";
69     shouldBeEqualToString("window.getComputedStyle(" + elementID + ", '').getPropertyValue('grid-auto-rows')", computedRowValue);
70     shouldBeEqualToString("window.getComputedStyle(" + elementID + ", '').getPropertyValue('grid-auto-columns')", computedColumnValue);
71 }
72
73 function testGridGapDefinitionsValues(element, computedRowGap, computedColumnGap)
74 {
75     shouldBeEqualToString("window.getComputedStyle(" + element + ", '').getPropertyValue('grid-row-gap')", computedRowGap);
76     shouldBeEqualToString("window.getComputedStyle(" + element + ", '').getPropertyValue('grid-column-gap')", computedColumnGap);
77 }