OLD | NEW |
1 description('Test that setting and getting grid-definition-columns and grid-defi
nition-rows works as expected'); | 1 description('Test that setting and getting grid-definition-columns and grid-defi
nition-rows works as expected'); |
2 | 2 |
3 debug("Test getting |grid-definition-columns| and |grid-definition-rows| set thr
ough CSS"); | 3 debug("Test getting |grid-definition-columns| and |grid-definition-rows| set thr
ough CSS"); |
4 testGridDefinitionsValues(document.getElementById("gridWithFixedElement"), "7px
11px", "17px 2px"); | 4 testGridDefinitionsValues(document.getElementById("gridWithFixedElement"), "7px
11px", "17px 2px"); |
5 testGridDefinitionsValues(document.getElementById("gridWithPercentElement"), "53
% 99%", "27% 52%"); | 5 testGridDefinitionsValues(document.getElementById("gridWithPercentElement"), "53
% 99%", "27% 52%"); |
6 testGridDefinitionsValues(document.getElementById("gridWithAutoElement"), "auto
auto", "auto auto"); | 6 testGridDefinitionsValues(document.getElementById("gridWithAutoElement"), "auto
auto", "auto auto"); |
7 testGridDefinitionsValues(document.getElementById("gridWithEMElement"), "100px 1
20px", "150px 170px"); | 7 testGridDefinitionsValues(document.getElementById("gridWithEMElement"), "100px 1
20px", "150px 170px"); |
8 testGridDefinitionsValues(document.getElementById("gridWithThreeItems"), "15px a
uto 100px", "120px 18px auto"); | 8 testGridDefinitionsValues(document.getElementById("gridWithThreeItems"), "15px a
uto 100px", "120px 18px auto"); |
9 testGridDefinitionsValues(document.getElementById("gridWithPercentAndViewportPer
cent"), "50% 120px", "35% 168px"); | 9 testGridDefinitionsValues(document.getElementById("gridWithPercentAndViewportPer
cent"), "50% 120px", "35% 168px"); |
10 testGridDefinitionsValues(document.getElementById("gridWithFitContentAndFitAvail
able"), "none", "none"); | 10 testGridDefinitionsValues(document.getElementById("gridWithFitContentAndFitAvail
able"), "none", "none"); |
11 testGridDefinitionsValues(document.getElementById("gridWithMinMaxContent"), "min
-content max-content", "max-content min-content"); | 11 testGridDefinitionsValues(document.getElementById("gridWithMinMaxContent"), "min
-content max-content", "max-content min-content"); |
12 testGridDefinitionsValues(document.getElementById("gridWithMinMaxAndFixed"), "mi
nmax(45px, 30%) 15px", "120px minmax(35%, 10px)"); | 12 testGridDefinitionsValues(document.getElementById("gridWithMinMaxAndFixed"), "mi
nmax(45px, 30%) 15px", "120px minmax(35%, 10px)"); |
13 testGridDefinitionsValues(document.getElementById("gridWithMinMaxAndMinMaxConten
t"), "minmax(min-content, 30%) 15px", "120px minmax(35%, max-content)"); | 13 testGridDefinitionsValues(document.getElementById("gridWithMinMaxAndMinMaxConten
t"), "minmax(min-content, 30%) 15px", "120px minmax(35%, max-content)"); |
14 testGridDefinitionsValues(document.getElementById("gridWithFractionFraction"), "
1fr 2fr", "3fr 4fr"); | 14 testGridDefinitionsValues(document.getElementById("gridWithFractionFraction"), "
1fr 2fr", "3fr 4fr"); |
15 testGridDefinitionsValues(document.getElementById("gridWithFractionMinMax"), "mi
nmax(min-content, 45px) 2fr", "3fr minmax(14px, max-content)"); | 15 testGridDefinitionsValues(document.getElementById("gridWithFractionMinMax"), "mi
nmax(min-content, 45px) 2fr", "3fr minmax(14px, max-content)"); |
| 16 testGridDefinitionsValues(document.getElementById("gridWithCalcCalcElement"), "2
00px 100px", "150px 75px"); |
| 17 testGridDefinitionsValues(document.getElementById("gridWithCalcAndFixedElement")
, "50% 80px", "88px 25%"); |
| 18 testGridDefinitionsValues(document.getElementById("gridWithCalcAndMinMaxElement"
), "190px minmax(min-content, 80px)", "minmax(25%, max-content) 53px"); |
| 19 testGridDefinitionsValues(document.getElementById("gridWithCalcInsideMinMaxEleme
nt"), "minmax(103px, 400px) 120px", "150px minmax(5%, 175px)"); |
16 | 20 |
17 debug(""); | 21 debug(""); |
18 debug("Test the initial value"); | 22 debug("Test the initial value"); |
19 var element = document.createElement("div"); | 23 var element = document.createElement("div"); |
20 document.body.appendChild(element); | 24 document.body.appendChild(element); |
21 shouldBe("getComputedStyle(element, '').getPropertyValue('grid-definition-column
s')", "'none'"); | 25 shouldBe("getComputedStyle(element, '').getPropertyValue('grid-definition-column
s')", "'none'"); |
22 shouldBe("getComputedStyle(element, '').getPropertyValue('grid-definition-rows')
", "'none'"); | 26 shouldBe("getComputedStyle(element, '').getPropertyValue('grid-definition-rows')
", "'none'"); |
23 | 27 |
24 debug(""); | 28 debug(""); |
25 debug("Test getting and setting grid-definition-rows and grid-definition-columns
through JS"); | 29 debug("Test getting and setting grid-definition-rows and grid-definition-columns
through JS"); |
26 testGridDefinitionsSetJSValues("18px 22px", "66px 70px"); | 30 testGridDefinitionsSetJSValues("18px 22px", "66px 70px"); |
27 testGridDefinitionsSetJSValues("55% 80%", "40% 63%"); | 31 testGridDefinitionsSetJSValues("55% 80%", "40% 63%"); |
28 testGridDefinitionsSetJSValues("auto auto", "auto auto"); | 32 testGridDefinitionsSetJSValues("auto auto", "auto auto"); |
29 testGridDefinitionsSetJSValues("auto 16em 22px", "56% 10em auto", "auto 160px 22
px", "56% 100px auto"); | 33 testGridDefinitionsSetJSValues("auto 16em 22px", "56% 10em auto", "auto 160px 22
px", "56% 100px auto"); |
30 testGridDefinitionsSetJSValues("16em minmax(16px, 20px)", "minmax(10%, 15%) auto
", "160px minmax(16px, 20px)"); | 34 testGridDefinitionsSetJSValues("16em minmax(16px, 20px)", "minmax(10%, 15%) auto
", "160px minmax(16px, 20px)"); |
31 testGridDefinitionsSetJSValues("16em 2fr", "14fr auto", "160px 2fr"); | 35 testGridDefinitionsSetJSValues("16em 2fr", "14fr auto", "160px 2fr"); |
32 testGridDefinitionsSetJSValues("50% 12vw", "5% 85vh", "50% 96px", "5% 510px"); | 36 testGridDefinitionsSetJSValues("50% 12vw", "5% 85vh", "50% 96px", "5% 510px"); |
| 37 testGridDefinitionsSetJSValues("calc(25px) calc(2em)", "auto calc(10%)", "25px 2
0px", "auto 10%"); |
| 38 testGridDefinitionsSetJSValues("calc(25px + 40%) minmax(min-content, calc(10% +
12px))", "minmax(calc(75% - 350px), max-content) auto", "345px minmax(min-conten
t, 92px)", "minmax(100px, max-content) auto"); |
33 | 39 |
34 debug(""); | 40 debug(""); |
35 debug("Test getting wrong values set from CSS"); | 41 debug("Test getting wrong values set from CSS"); |
36 var gridWithNoneAndAuto = document.getElementById("gridWithNoneAndAuto"); | 42 var gridWithNoneAndAuto = document.getElementById("gridWithNoneAndAuto"); |
37 shouldBe("getComputedStyle(gridWithNoneAndAuto, '').getPropertyValue('grid-defin
ition-columns')", "'none'"); | 43 shouldBe("getComputedStyle(gridWithNoneAndAuto, '').getPropertyValue('grid-defin
ition-columns')", "'none'"); |
38 shouldBe("getComputedStyle(gridWithNoneAndAuto, '').getPropertyValue('grid-defin
ition-rows')", "'none'"); | 44 shouldBe("getComputedStyle(gridWithNoneAndAuto, '').getPropertyValue('grid-defin
ition-rows')", "'none'"); |
39 | 45 |
40 var gridWithNoneAndFixed = document.getElementById("gridWithNoneAndFixed"); | 46 var gridWithNoneAndFixed = document.getElementById("gridWithNoneAndFixed"); |
41 shouldBe("getComputedStyle(gridWithNoneAndFixed, '').getPropertyValue('grid-defi
nition-columns')", "'none'"); | 47 shouldBe("getComputedStyle(gridWithNoneAndFixed, '').getPropertyValue('grid-defi
nition-columns')", "'none'"); |
42 shouldBe("getComputedStyle(gridWithNoneAndFixed, '').getPropertyValue('grid-defi
nition-rows')", "'none'"); | 48 shouldBe("getComputedStyle(gridWithNoneAndFixed, '').getPropertyValue('grid-defi
nition-rows')", "'none'"); |
43 | 49 |
44 debug(""); | 50 debug(""); |
45 debug("Test setting and getting wrong values from JS"); | 51 debug("Test setting and getting wrong values from JS"); |
46 testGridDefinitionsSetBadJSValues("none auto", "none auto"); | 52 testGridDefinitionsSetBadJSValues("none auto", "none auto"); |
47 testGridDefinitionsSetBadJSValues("none 16em", "none 56%"); | 53 testGridDefinitionsSetBadJSValues("none 16em", "none 56%"); |
48 testGridDefinitionsSetBadJSValues("none none", "none none"); | 54 testGridDefinitionsSetBadJSValues("none none", "none none"); |
49 testGridDefinitionsSetBadJSValues("auto none", "auto none"); | 55 testGridDefinitionsSetBadJSValues("auto none", "auto none"); |
50 testGridDefinitionsSetBadJSValues("auto none 16em", "auto 18em none"); | 56 testGridDefinitionsSetBadJSValues("auto none 16em", "auto 18em none"); |
51 testGridDefinitionsSetBadJSValues("-webkit-fit-content -webkit-fit-content", "-w
ebkit-fit-available -webkit-fit-available"); | 57 testGridDefinitionsSetBadJSValues("-webkit-fit-content -webkit-fit-content", "-w
ebkit-fit-available -webkit-fit-available"); |
52 testGridDefinitionsSetBadJSValues("auto minmax(16px, auto)", "minmax(auto, 15%)
10vw"); | 58 testGridDefinitionsSetBadJSValues("auto minmax(16px, auto)", "minmax(auto, 15%)
10vw"); |
53 // Negative values are not allowed. | 59 // Negative values are not allowed. |
54 testGridDefinitionsSetBadJSValues("-10px minmax(16px, 32px)", "minmax(10%, 15%)
-10vw"); | 60 testGridDefinitionsSetBadJSValues("-10px minmax(16px, 32px)", "minmax(10%, 15%)
-10vw"); |
55 testGridDefinitionsSetBadJSValues("10px minmax(16px, -1vw)", "minmax(-1%, 15%) 1
0vw"); | 61 testGridDefinitionsSetBadJSValues("10px minmax(16px, -1vw)", "minmax(-1%, 15%) 1
0vw"); |
56 | 62 |
| 63 testGridDefinitionsSetBadJSValues("10px calc(16px 30px)", "calc(25px + auto) 2em
"); |
| 64 testGridDefinitionsSetBadJSValues("minmax(min-content, calc() 250px", "calc(2em(
"); |
| 65 testGridDefinitionsSetBadJSValues("calc(2px = 2px) 3fr", "calc(2fr + 10%)"); |
| 66 |
57 function testInherit() | 67 function testInherit() |
58 { | 68 { |
59 var parentElement = document.createElement("div"); | 69 var parentElement = document.createElement("div"); |
60 document.body.appendChild(parentElement); | 70 document.body.appendChild(parentElement); |
61 parentElement.style.gridDefinitionColumns = "50px 1fr 'last'"; | 71 parentElement.style.gridDefinitionColumns = "50px 1fr 'last'"; |
62 parentElement.style.gridDefinitionRows = "101% 'middle' 45px"; | 72 parentElement.style.gridDefinitionRows = "101% 'middle' 45px"; |
63 testGridDefinitionsValues(parentElement, "50px 1fr last", "101% middle 45px"
); | 73 testGridDefinitionsValues(parentElement, "50px 1fr last", "101% middle 45px"
); |
64 | 74 |
65 element = document.createElement("div"); | 75 element = document.createElement("div"); |
66 parentElement.appendChild(element); | 76 parentElement.appendChild(element); |
(...skipping 18 matching lines...) Loading... |
85 element.style.gridDefinitionColumns = "initial"; | 95 element.style.gridDefinitionColumns = "initial"; |
86 element.style.gridDefinitionRows = "initial"; | 96 element.style.gridDefinitionRows = "initial"; |
87 shouldBe("getComputedStyle(element, '').getPropertyValue('grid-definition-co
lumns')", "'none'"); | 97 shouldBe("getComputedStyle(element, '').getPropertyValue('grid-definition-co
lumns')", "'none'"); |
88 shouldBe("getComputedStyle(element, '').getPropertyValue('grid-definition-ro
ws')", "'none'"); | 98 shouldBe("getComputedStyle(element, '').getPropertyValue('grid-definition-ro
ws')", "'none'"); |
89 | 99 |
90 document.body.removeChild(element); | 100 document.body.removeChild(element); |
91 } | 101 } |
92 debug(""); | 102 debug(""); |
93 debug("Test setting grid-definition-columns and grid-definition-rows to 'initial
' through JS"); | 103 debug("Test setting grid-definition-columns and grid-definition-rows to 'initial
' through JS"); |
94 testInitial(); | 104 testInitial(); |
OLD | NEW |