Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(77)

Side by Side Diff: LayoutTests/fast/css-grid-layout/resources/grid-columns-rows-get-set.js

Issue 23472008: [CSS Grid Layout] Support calc() breadth track size (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@103761-wk
Patch Set: Patch for landing Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 through CSS"); 3 debug("Test getting grid-definition-columns and grid-definition-rows set through CSS");
4 testGridDefinitionsValues(document.getElementById("gridWithNoneElement"), "none" , "none"); 4 testGridDefinitionsValues(document.getElementById("gridWithNoneElement"), "none" , "none");
5 testGridDefinitionsValues(document.getElementById("gridWithFixedElement"), "10px ", "15px"); 5 testGridDefinitionsValues(document.getElementById("gridWithFixedElement"), "10px ", "15px");
6 testGridDefinitionsValues(document.getElementById("gridWithPercentElement"), "40 0px", "150px"); 6 testGridDefinitionsValues(document.getElementById("gridWithPercentElement"), "40 0px", "150px");
7 testGridDefinitionsValues(document.getElementById("gridWithAutoElement"), "0px", "0px"); 7 testGridDefinitionsValues(document.getElementById("gridWithAutoElement"), "0px", "0px");
8 testGridDefinitionsValues(document.getElementById("gridWithAutoWithoutSizeElemen t"), "0px", "0px"); 8 testGridDefinitionsValues(document.getElementById("gridWithAutoWithoutSizeElemen t"), "0px", "0px");
9 testGridDefinitionsValues(document.getElementById("gridWithAutoWithChildrenEleme nt"), "7px", "11px"); 9 testGridDefinitionsValues(document.getElementById("gridWithAutoWithChildrenEleme nt"), "7px", "11px");
10 testGridDefinitionsValues(document.getElementById("gridWithEMElement"), "100px", "150px"); 10 testGridDefinitionsValues(document.getElementById("gridWithEMElement"), "100px", "150px");
11 testGridDefinitionsValues(document.getElementById("gridWithViewPortPercentageEle ment"), "64px", "60px"); 11 testGridDefinitionsValues(document.getElementById("gridWithViewPortPercentageEle ment"), "64px", "60px");
12 testGridDefinitionsValues(document.getElementById("gridWithMinMaxElement"), "80p x", "300px"); 12 testGridDefinitionsValues(document.getElementById("gridWithMinMaxElement"), "80p x", "300px");
13 testGridDefinitionsValues(document.getElementById("gridWithMinContentElement"), "0px", "0px"); 13 testGridDefinitionsValues(document.getElementById("gridWithMinContentElement"), "0px", "0px");
14 testGridDefinitionsValues(document.getElementById("gridWithMinContentWithChildre nElement"), "17px", "11px"); 14 testGridDefinitionsValues(document.getElementById("gridWithMinContentWithChildre nElement"), "17px", "11px");
15 testGridDefinitionsValues(document.getElementById("gridWithMaxContentElement"), "0px", "0px"); 15 testGridDefinitionsValues(document.getElementById("gridWithMaxContentElement"), "0px", "0px");
16 testGridDefinitionsValues(document.getElementById("gridWithMaxContentWithChildre nElement"), "17px", "11px"); 16 testGridDefinitionsValues(document.getElementById("gridWithMaxContentWithChildre nElement"), "17px", "11px");
17 testGridDefinitionsValues(document.getElementById("gridWithFractionElement"), "8 00px", "600px"); 17 testGridDefinitionsValues(document.getElementById("gridWithFractionElement"), "8 00px", "600px");
18 testGridDefinitionsValues(document.getElementById("gridWithCalcElement"), "150px ", "75px");
19 testGridDefinitionsValues(document.getElementById("gridWithCalcComplexElement"), "550px", "465px");
20 testGridDefinitionsValues(document.getElementById("gridWithCalcInsideMinMaxEleme nt"), "minmax(10%, 15px)", "minmax(20px, 50%)", "80px", "300px");
21 testGridDefinitionsValues(document.getElementById("gridWithCalcComplexInsideMinM axElement"), "minmax(10%, 415px)", "minmax(80px, 50%)", "415px", "300px");
18 22
19 debug(""); 23 debug("");
20 debug("Test getting wrong values for grid-definition-columns and grid-definition -rows through CSS (they should resolve to the default: 'none')"); 24 debug("Test getting wrong values for grid-definition-columns and grid-definition -rows through CSS (they should resolve to the default: 'none')");
21 var gridWithFitContentElement = document.getElementById("gridWithFitContentEleme nt"); 25 var gridWithFitContentElement = document.getElementById("gridWithFitContentEleme nt");
22 testGridDefinitionsValues(gridWithFitContentElement, "none", "none"); 26 testGridDefinitionsValues(gridWithFitContentElement, "none", "none");
23 27
24 var gridWithFitAvailableElement = document.getElementById("gridWithFitAvailableE lement"); 28 var gridWithFitAvailableElement = document.getElementById("gridWithFitAvailableE lement");
25 testGridDefinitionsValues(gridWithFitAvailableElement, "none", "none"); 29 testGridDefinitionsValues(gridWithFitAvailableElement, "none", "none");
26 30
27 debug(""); 31 debug("");
(...skipping 21 matching lines...) Expand all
49 testGridDefinitionsSetJSValues("minmax(22em, max-content)", "minmax(max-content, 5em)", "220px", "50px"); 53 testGridDefinitionsSetJSValues("minmax(22em, max-content)", "minmax(max-content, 5em)", "220px", "50px");
50 testGridDefinitionsSetJSValues("minmax(min-content, max-content)", "minmax(max-c ontent, min-content)", "0px", "0px"); 54 testGridDefinitionsSetJSValues("minmax(min-content, max-content)", "minmax(max-c ontent, min-content)", "0px", "0px");
51 // Unit comparison should be case-insensitive. 55 // Unit comparison should be case-insensitive.
52 testGridDefinitionsSetJSValues("3600Fr", "154fR", "800px", "600px", "3600fr", "1 54fr"); 56 testGridDefinitionsSetJSValues("3600Fr", "154fR", "800px", "600px", "3600fr", "1 54fr");
53 // Float values are allowed. 57 // Float values are allowed.
54 testGridDefinitionsSetJSValues("3.1459fr", "2.718fr", "800px", "600px"); 58 testGridDefinitionsSetJSValues("3.1459fr", "2.718fr", "800px", "600px");
55 // A leading '+' is allowed. 59 // A leading '+' is allowed.
56 testGridDefinitionsSetJSValues("+3fr", "+4fr", "800px", "600px", "3fr", "4fr"); 60 testGridDefinitionsSetJSValues("+3fr", "+4fr", "800px", "600px", "3fr", "4fr");
57 61
58 debug(""); 62 debug("");
63 debug("Test getting and setting grid-definition-columns and grid-definition-rows to calc() values through JS");
64 testGridDefinitionsSetJSValues("calc(150px)", "calc(75px)", "150px", "75px");
65 testGridDefinitionsSetJSValues("calc(50% - 30px)", "calc(75px + 10%)", "370px", "135px");
66 testGridDefinitionsSetJSValues("minmax(25%, calc(30px))", "minmax(calc(75%), 40p x)", "200px", "450px", "minmax(25%, calc(30px))", "minmax(calc(75%), 40px)");
67 testGridDefinitionsSetJSValues("minmax(10%, calc(30px + 10%))", "minmax(calc(25% - 50px), 200px)", "110px", "200px", "minmax(10%, calc(30px + 10%))", "minmax(ca lc(25% - 50px), 200px)");
68
69 debug("");
59 debug("Test setting grid-definition-columns and grid-definition-rows to bad valu es through JS"); 70 debug("Test setting grid-definition-columns and grid-definition-rows to bad valu es through JS");
60 // No comma and only 1 argument provided. 71 // No comma and only 1 argument provided.
61 testGridDefinitionsSetBadJSValues("minmax(10px 20px)", "minmax(10px)") 72 testGridDefinitionsSetBadJSValues("minmax(10px 20px)", "minmax(10px)")
62 // Nested minmax and only 2 arguments are allowed. 73 // Nested minmax and only 2 arguments are allowed.
63 testGridDefinitionsSetBadJSValues("minmax(minmax(10px, 20px), 20px)", "minmax(10 px, 20px, 30px)"); 74 testGridDefinitionsSetBadJSValues("minmax(minmax(10px, 20px), 20px)", "minmax(10 px, 20px, 30px)");
64 // No breadth value and no comma. 75 // No breadth value and no comma.
65 testGridDefinitionsSetBadJSValues("minmax()", "minmax(30px 30% 30em)"); 76 testGridDefinitionsSetBadJSValues("minmax()", "minmax(30px 30% 30em)");
66 // Auto is not allowed inside minmax. 77 // Auto is not allowed inside minmax.
67 testGridDefinitionsSetBadJSValues("minmax(auto, 8vh)", "minmax(10vw, auto)"); 78 testGridDefinitionsSetBadJSValues("minmax(auto, 8vh)", "minmax(10vw, auto)");
68 testGridDefinitionsSetBadJSValues("-2fr", "3ffr"); 79 testGridDefinitionsSetBadJSValues("-2fr", "3ffr");
69 testGridDefinitionsSetBadJSValues("-2.05fr", "+-3fr"); 80 testGridDefinitionsSetBadJSValues("-2.05fr", "+-3fr");
70 testGridDefinitionsSetBadJSValues("0fr", "1r"); 81 testGridDefinitionsSetBadJSValues("0fr", "1r");
71 // A dimension doesn't allow spaces between the number and the unit. 82 // A dimension doesn't allow spaces between the number and the unit.
72 testGridDefinitionsSetBadJSValues(".0000fr", "13 fr"); 83 testGridDefinitionsSetBadJSValues(".0000fr", "13 fr");
73 testGridDefinitionsSetBadJSValues("7.-fr", "-8,0fr"); 84 testGridDefinitionsSetBadJSValues("7.-fr", "-8,0fr");
74 // Negative values are not allowed. 85 // Negative values are not allowed.
75 testGridDefinitionsSetBadJSValues("-1px", "-6em"); 86 testGridDefinitionsSetBadJSValues("-1px", "-6em");
76 testGridDefinitionsSetBadJSValues("minmax(-1%, 32%)", "minmax(2vw, -6em)"); 87 testGridDefinitionsSetBadJSValues("minmax(-1%, 32%)", "minmax(2vw, -6em)");
88 // Invalid expressions with calc
89 testGridDefinitionsSetBadJSValues("calc(16px 30px)", "calc(25px + auto)");
90 testGridDefinitionsSetBadJSValues("minmax(min-content, calc())", "calc(10%(");
77 91
78 debug(""); 92 debug("");
79 debug("Test setting grid-definition-columns and grid-definition-rows back to 'no ne' through JS"); 93 debug("Test setting grid-definition-columns and grid-definition-rows back to 'no ne' through JS");
80 testGridDefinitionsSetJSValues("18px", "66px"); 94 testGridDefinitionsSetJSValues("18px", "66px");
81 testGridDefinitionsSetJSValues("none", "none"); 95 testGridDefinitionsSetJSValues("none", "none");
82 96
83 function testInherit() 97 function testInherit()
84 { 98 {
85 var parentElement = document.createElement("div"); 99 var parentElement = document.createElement("div");
86 document.body.appendChild(parentElement); 100 document.body.appendChild(parentElement);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 element.style.gridDefinitionColumns = "initial"; 132 element.style.gridDefinitionColumns = "initial";
119 element.style.gridDefinitionRows = "initial"; 133 element.style.gridDefinitionRows = "initial";
120 shouldBe("getComputedStyle(element, '').getPropertyValue('grid-definition-co lumns')", "'none'"); 134 shouldBe("getComputedStyle(element, '').getPropertyValue('grid-definition-co lumns')", "'none'");
121 shouldBe("getComputedStyle(element, '').getPropertyValue('grid-definition-ro ws')", "'none'"); 135 shouldBe("getComputedStyle(element, '').getPropertyValue('grid-definition-ro ws')", "'none'");
122 136
123 document.body.removeChild(element); 137 document.body.removeChild(element);
124 } 138 }
125 debug(""); 139 debug("");
126 debug("Test setting grid-definition-columns and grid-definition-rows to 'initial ' through JS"); 140 debug("Test setting grid-definition-columns and grid-definition-rows to 'initial ' through JS");
127 testInitial(); 141 testInitial();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698