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-template-columns and grid-templa
te-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-template-columns| and |grid-template-rows| set through
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%", "424px 792px", "162px 312px"); | 5 testGridDefinitionsValues(document.getElementById("gridWithPercentElement"), "53
% 99%", "27% 52%", "424px 792px", "162px 312px"); |
6 testGridDefinitionsValues(document.getElementById("gridWithPercentWithoutSize"),
"53% 99%", "27% 52%", "7px 0px", "11px 0px"); | 6 testGridDefinitionsValues(document.getElementById("gridWithPercentWithoutSize"),
"53% 99%", "27% 52%", "7px 0px", "11px 0px"); |
7 testGridDefinitionsValues(document.getElementById("gridWithAutoElement"), "auto
auto", "auto auto", "0px 17px", "0px 3px"); | 7 testGridDefinitionsValues(document.getElementById("gridWithAutoElement"), "auto
auto", "auto auto", "0px 17px", "0px 3px"); |
8 testGridDefinitionsValues(document.getElementById("gridWithEMElement"), "100px 1
20px", "150px 170px"); | 8 testGridDefinitionsValues(document.getElementById("gridWithEMElement"), "100px 1
20px", "150px 170px"); |
9 testGridDefinitionsValues(document.getElementById("gridWithThreeItems"), "15px a
uto 100px", "120px 18px auto", "15px 0px 100px", "120px 18px 0px"); | 9 testGridDefinitionsValues(document.getElementById("gridWithThreeItems"), "15px a
uto 100px", "120px 18px auto", "15px 0px 100px", "120px 18px 0px"); |
10 testGridDefinitionsValues(document.getElementById("gridWithPercentAndViewportPer
cent"), "50% 120px", "35% 168px", "400px 120px", "210px 168px"); | 10 testGridDefinitionsValues(document.getElementById("gridWithPercentAndViewportPer
cent"), "50% 120px", "35% 168px", "400px 120px", "210px 168px"); |
11 testGridDefinitionsValues(document.getElementById("gridWithFitContentAndFitAvail
able"), "none", "none"); | 11 testGridDefinitionsValues(document.getElementById("gridWithFitContentAndFitAvail
able"), "none", "none"); |
12 testGridDefinitionsValues(document.getElementById("gridWithMinMaxContent"), "min
-content max-content", "max-content min-content", "0px 0px", "0px 0px"); | 12 testGridDefinitionsValues(document.getElementById("gridWithMinMaxContent"), "min
-content max-content", "max-content min-content", "0px 0px", "0px 0px"); |
13 testGridDefinitionsValues(document.getElementById("gridWithMinMaxContentWithChil
drenElement"), "min-content max-content", "max-content min-content", "7px 17px",
"11px 3px"); | 13 testGridDefinitionsValues(document.getElementById("gridWithMinMaxContentWithChil
drenElement"), "min-content max-content", "max-content min-content", "7px 17px",
"11px 3px"); |
14 testGridDefinitionsValues(document.getElementById("gridWithMinMaxAndFixed"), "mi
nmax(45px, 30%) 15px", "120px minmax(35%, 10px)", "240px 15px", "120px 210px"); | 14 testGridDefinitionsValues(document.getElementById("gridWithMinMaxAndFixed"), "mi
nmax(45px, 30%) 15px", "120px minmax(35%, 10px)", "240px 15px", "120px 210px"); |
15 testGridDefinitionsValues(document.getElementById("gridWithMinMaxAndMinMaxConten
t"), "minmax(min-content, 30%) 15px", "120px minmax(35%, max-content)", "240px 1
5px", "120px 210px"); | 15 testGridDefinitionsValues(document.getElementById("gridWithMinMaxAndMinMaxConten
t"), "minmax(min-content, 30%) 15px", "120px minmax(35%, max-content)", "240px 1
5px", "120px 210px"); |
16 testGridDefinitionsValues(document.getElementById("gridWithFractionFraction"), "
1fr 2fr", "3fr 4fr", "320px 480px", "225px 375px"); | 16 testGridDefinitionsValues(document.getElementById("gridWithFractionFraction"), "
1fr 2fr", "3fr 4fr", "320px 480px", "225px 375px"); |
17 testGridDefinitionsValues(document.getElementById("gridWithFractionMinMax"), "mi
nmax(min-content, 45px) 2fr", "3fr minmax(14px, max-content)", "45px 755px", "58
6px 14px"); | 17 testGridDefinitionsValues(document.getElementById("gridWithFractionMinMax"), "mi
nmax(min-content, 45px) 2fr", "3fr minmax(14px, max-content)", "45px 755px", "58
6px 14px"); |
18 testGridDefinitionsValues(document.getElementById("gridWithCalcCalc"), "200px 10
0px", "150px 75px"); | 18 testGridDefinitionsValues(document.getElementById("gridWithCalcCalc"), "200px 10
0px", "150px 75px"); |
19 testGridDefinitionsValues(document.getElementById("gridWithCalcAndFixed"), "50%
80px", "88px 25%", "400px 80px", "88px 150px"); | 19 testGridDefinitionsValues(document.getElementById("gridWithCalcAndFixed"), "50%
80px", "88px 25%", "400px 80px", "88px 150px"); |
20 testGridDefinitionsValues(document.getElementById("gridWithCalcAndMinMax"), "190
px minmax(min-content, 80px)", "minmax(25%, max-content) 53px", "190px 80px", "1
50px 53px"); | 20 testGridDefinitionsValues(document.getElementById("gridWithCalcAndMinMax"), "190
px minmax(min-content, 80px)", "minmax(25%, max-content) 53px", "190px 80px", "1
50px 53px"); |
21 testGridDefinitionsValues(document.getElementById("gridWithCalcInsideMinMax"), "
minmax(103px, 400px) 120px", "150px minmax(5%, 175px)", "400px 120px", "150px 17
5px"); | 21 testGridDefinitionsValues(document.getElementById("gridWithCalcInsideMinMax"), "
minmax(103px, 400px) 120px", "150px minmax(5%, 175px)", "400px 120px", "150px 17
5px"); |
22 | 22 |
23 debug(""); | 23 debug(""); |
24 debug("Test the initial value"); | 24 debug("Test the initial value"); |
25 var element = document.createElement("div"); | 25 var element = document.createElement("div"); |
26 document.body.appendChild(element); | 26 document.body.appendChild(element); |
27 shouldBe("getComputedStyle(element, '').getPropertyValue('grid-definition-column
s')", "'none'"); | 27 shouldBe("getComputedStyle(element, '').getPropertyValue('grid-template-columns'
)", "'none'"); |
28 shouldBe("getComputedStyle(element, '').getPropertyValue('grid-definition-rows')
", "'none'"); | 28 shouldBe("getComputedStyle(element, '').getPropertyValue('grid-template-rows')",
"'none'"); |
29 | 29 |
30 debug(""); | 30 debug(""); |
31 debug("Test getting and setting grid-definition-rows and grid-definition-columns
through JS"); | 31 debug("Test getting and setting grid-template-rows and grid-template-columns thr
ough JS"); |
32 testGridDefinitionsSetJSValues("18px 22px", "66px 70px"); | 32 testGridDefinitionsSetJSValues("18px 22px", "66px 70px"); |
33 testGridDefinitionsSetJSValues("55% 80%", "40% 63%", "440px 640px", "240px 378px
"); | 33 testGridDefinitionsSetJSValues("55% 80%", "40% 63%", "440px 640px", "240px 378px
"); |
34 testGridDefinitionsSetJSValues("auto auto", "auto auto", "0px 0px", "0px 0px"); | 34 testGridDefinitionsSetJSValues("auto auto", "auto auto", "0px 0px", "0px 0px"); |
35 testGridDefinitionsSetJSValues("auto 16em 22px", "56% 10em auto", "0px 160px 22p
x", "336px 100px 0px"); | 35 testGridDefinitionsSetJSValues("auto 16em 22px", "56% 10em auto", "0px 160px 22p
x", "336px 100px 0px"); |
36 testGridDefinitionsSetJSValues("16em minmax(16px, 20px)", "minmax(10%, 15%) auto
", "160px 20px", "90px 0px"); | 36 testGridDefinitionsSetJSValues("16em minmax(16px, 20px)", "minmax(10%, 15%) auto
", "160px 20px", "90px 0px"); |
37 testGridDefinitionsSetJSValues("16em 2fr", "14fr auto", "160px 640px", "600px 0p
x"); | 37 testGridDefinitionsSetJSValues("16em 2fr", "14fr auto", "160px 640px", "600px 0p
x"); |
38 testGridDefinitionsSetJSValues("50% 12vw", "5% 85vh", "400px 96px", "30px 510px"
); | 38 testGridDefinitionsSetJSValues("50% 12vw", "5% 85vh", "400px 96px", "30px 510px"
); |
39 testGridDefinitionsSetJSValues("calc(25px) calc(2em)", "auto calc(10%)", "25px 2
0px", "0px 60px", "calc(25px) calc(2em)", "auto calc(10%)"); | 39 testGridDefinitionsSetJSValues("calc(25px) calc(2em)", "auto calc(10%)", "25px 2
0px", "0px 60px", "calc(25px) calc(2em)", "auto calc(10%)"); |
40 testGridDefinitionsSetJSValues("calc(25px + 40%) minmax(min-content, calc(10% +
12px))", "minmax(calc(75% - 350px), max-content) auto", "345px 92px", "100px 0px
", "calc(25px + 40%) minmax(min-content, calc(10% + 12px))", "minmax(calc(75% -
350px), max-content) auto"); | 40 testGridDefinitionsSetJSValues("calc(25px + 40%) minmax(min-content, calc(10% +
12px))", "minmax(calc(75% - 350px), max-content) auto", "345px 92px", "100px 0px
", "calc(25px + 40%) minmax(min-content, calc(10% + 12px))", "minmax(calc(75% -
350px), max-content) auto"); |
41 | 41 |
42 debug(""); | 42 debug(""); |
43 debug("Test getting wrong values set from CSS"); | 43 debug("Test getting wrong values set from CSS"); |
44 var gridWithNoneAndAuto = document.getElementById("gridWithNoneAndAuto"); | 44 var gridWithNoneAndAuto = document.getElementById("gridWithNoneAndAuto"); |
45 shouldBe("getComputedStyle(gridWithNoneAndAuto, '').getPropertyValue('grid-defin
ition-columns')", "'none'"); | 45 shouldBe("getComputedStyle(gridWithNoneAndAuto, '').getPropertyValue('grid-templ
ate-columns')", "'none'"); |
46 shouldBe("getComputedStyle(gridWithNoneAndAuto, '').getPropertyValue('grid-defin
ition-rows')", "'none'"); | 46 shouldBe("getComputedStyle(gridWithNoneAndAuto, '').getPropertyValue('grid-templ
ate-rows')", "'none'"); |
47 | 47 |
48 var gridWithNoneAndFixed = document.getElementById("gridWithNoneAndFixed"); | 48 var gridWithNoneAndFixed = document.getElementById("gridWithNoneAndFixed"); |
49 shouldBe("getComputedStyle(gridWithNoneAndFixed, '').getPropertyValue('grid-defi
nition-columns')", "'none'"); | 49 shouldBe("getComputedStyle(gridWithNoneAndFixed, '').getPropertyValue('grid-temp
late-columns')", "'none'"); |
50 shouldBe("getComputedStyle(gridWithNoneAndFixed, '').getPropertyValue('grid-defi
nition-rows')", "'none'"); | 50 shouldBe("getComputedStyle(gridWithNoneAndFixed, '').getPropertyValue('grid-temp
late-rows')", "'none'"); |
51 | 51 |
52 debug(""); | 52 debug(""); |
53 debug("Test setting and getting wrong values from JS"); | 53 debug("Test setting and getting wrong values from JS"); |
54 testGridDefinitionsSetBadJSValues("none auto", "none auto"); | 54 testGridDefinitionsSetBadJSValues("none auto", "none auto"); |
55 testGridDefinitionsSetBadJSValues("none 16em", "none 56%"); | 55 testGridDefinitionsSetBadJSValues("none 16em", "none 56%"); |
56 testGridDefinitionsSetBadJSValues("none none", "none none"); | 56 testGridDefinitionsSetBadJSValues("none none", "none none"); |
57 testGridDefinitionsSetBadJSValues("auto none", "auto none"); | 57 testGridDefinitionsSetBadJSValues("auto none", "auto none"); |
58 testGridDefinitionsSetBadJSValues("auto none 16em", "auto 18em none"); | 58 testGridDefinitionsSetBadJSValues("auto none 16em", "auto 18em none"); |
59 testGridDefinitionsSetBadJSValues("-webkit-fit-content -webkit-fit-content", "-w
ebkit-fit-available -webkit-fit-available"); | 59 testGridDefinitionsSetBadJSValues("-webkit-fit-content -webkit-fit-content", "-w
ebkit-fit-available -webkit-fit-available"); |
60 testGridDefinitionsSetBadJSValues("auto minmax(16px, auto)", "minmax(auto, 15%)
10vw"); | 60 testGridDefinitionsSetBadJSValues("auto minmax(16px, auto)", "minmax(auto, 15%)
10vw"); |
61 // Negative values are not allowed. | 61 // Negative values are not allowed. |
62 testGridDefinitionsSetBadJSValues("-10px minmax(16px, 32px)", "minmax(10%, 15%)
-10vw"); | 62 testGridDefinitionsSetBadJSValues("-10px minmax(16px, 32px)", "minmax(10%, 15%)
-10vw"); |
63 testGridDefinitionsSetBadJSValues("10px minmax(16px, -1vw)", "minmax(-1%, 15%) 1
0vw"); | 63 testGridDefinitionsSetBadJSValues("10px minmax(16px, -1vw)", "minmax(-1%, 15%) 1
0vw"); |
64 // Invalid expressions with calc | 64 // Invalid expressions with calc |
65 testGridDefinitionsSetBadJSValues("10px calc(16px 30px)", "calc(25px + auto) 2em
"); | 65 testGridDefinitionsSetBadJSValues("10px calc(16px 30px)", "calc(25px + auto) 2em
"); |
66 testGridDefinitionsSetBadJSValues("minmax(min-content, calc() 250px", "calc(2em(
"); | 66 testGridDefinitionsSetBadJSValues("minmax(min-content, calc() 250px", "calc(2em(
"); |
67 | 67 |
68 function testInherit() | 68 function testInherit() |
69 { | 69 { |
70 var parentElement = document.createElement("div"); | 70 var parentElement = document.createElement("div"); |
71 document.body.appendChild(parentElement); | 71 document.body.appendChild(parentElement); |
72 parentElement.style.display = "grid"; | 72 parentElement.style.display = "grid"; |
73 parentElement.style.width = "800px"; | 73 parentElement.style.width = "800px"; |
74 parentElement.style.height = "600px"; | 74 parentElement.style.height = "600px"; |
75 parentElement.style.font = "10px Ahem"; // Used to resolve em font consisten
tly. | 75 parentElement.style.font = "10px Ahem"; // Used to resolve em font consisten
tly. |
76 parentElement.style.gridDefinitionColumns = "50px 1fr (last)"; | 76 parentElement.style.gridTemplateColumns = "50px 1fr (last)"; |
77 parentElement.style.gridDefinitionRows = "2em (middle) 45px"; | 77 parentElement.style.gridTemplateRows = "2em (middle) 45px"; |
78 testGridDefinitionsValues(parentElement, "50px 750px (last)", "20px (middle)
45px"); | 78 testGridDefinitionsValues(parentElement, "50px 750px (last)", "20px (middle)
45px"); |
79 | 79 |
80 element = document.createElement("div"); | 80 element = document.createElement("div"); |
81 parentElement.appendChild(element); | 81 parentElement.appendChild(element); |
82 element.style.display = "grid"; | 82 element.style.display = "grid"; |
83 element.style.gridDefinitionColumns = "inherit"; | 83 element.style.gridTemplateColumns = "inherit"; |
84 element.style.gridDefinitionRows = "inherit"; | 84 element.style.gridTemplateRows = "inherit"; |
85 testGridDefinitionsValues(element, "50px 0px (last)", "20px (middle) 45px"); | 85 testGridDefinitionsValues(element, "50px 0px (last)", "20px (middle) 45px"); |
86 | 86 |
87 document.body.removeChild(parentElement); | 87 document.body.removeChild(parentElement); |
88 } | 88 } |
89 debug(""); | 89 debug(""); |
90 debug("Test setting grid-definition-columns and grid-definition-rows to 'inherit
' through JS"); | 90 debug("Test setting grid-template-columns and grid-template-rows to 'inherit' th
rough JS"); |
91 testInherit(); | 91 testInherit(); |
92 | 92 |
93 function testInitial() | 93 function testInitial() |
94 { | 94 { |
95 element = document.createElement("div"); | 95 element = document.createElement("div"); |
96 document.body.appendChild(element); | 96 document.body.appendChild(element); |
97 element.style.display = "grid"; | 97 element.style.display = "grid"; |
98 element.style.width = "800px"; | 98 element.style.width = "800px"; |
99 element.style.height = "600px"; | 99 element.style.height = "600px"; |
100 element.style.gridDefinitionColumns = "150% (middle) 55px"; | 100 element.style.gridTemplateColumns = "150% (middle) 55px"; |
101 element.style.gridDefinitionRows = "1fr (line) 2fr (line)"; | 101 element.style.gridTemplateRows = "1fr (line) 2fr (line)"; |
102 testGridDefinitionsValues(element, "1200px (middle) 55px", "200px (line) 400
px (line)"); | 102 testGridDefinitionsValues(element, "1200px (middle) 55px", "200px (line) 400
px (line)"); |
103 | 103 |
104 element.style.gridDefinitionColumns = "initial"; | 104 element.style.gridTemplateColumns = "initial"; |
105 element.style.gridDefinitionRows = "initial"; | 105 element.style.gridTemplateRows = "initial"; |
106 shouldBe("getComputedStyle(element, '').getPropertyValue('grid-definition-co
lumns')", "'none'"); | 106 shouldBe("getComputedStyle(element, '').getPropertyValue('grid-template-colu
mns')", "'none'"); |
107 shouldBe("getComputedStyle(element, '').getPropertyValue('grid-definition-ro
ws')", "'none'"); | 107 shouldBe("getComputedStyle(element, '').getPropertyValue('grid-template-rows
')", "'none'"); |
108 | 108 |
109 document.body.removeChild(element); | 109 document.body.removeChild(element); |
110 } | 110 } |
111 debug(""); | 111 debug(""); |
112 debug("Test setting grid-definition-columns and grid-definition-rows to 'initial
' through JS"); | 112 debug("Test setting grid-template-columns and grid-template-rows to 'initial' th
rough JS"); |
113 testInitial(); | 113 testInitial(); |
OLD | NEW |