Index: LayoutTests/fast/css-grid-layout/resources/grid-template-shorthand-parsing-utils.js |
diff --git a/LayoutTests/fast/css-grid-layout/resources/grid-template-shorthand-parsing-utils.js b/LayoutTests/fast/css-grid-layout/resources/grid-template-shorthand-parsing-utils.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c76e47df21d552b5fa95f664eab812ba375c2e4d |
--- /dev/null |
+++ b/LayoutTests/fast/css-grid-layout/resources/grid-template-shorthand-parsing-utils.js |
@@ -0,0 +1,48 @@ |
+function testGridDefinitionsValues(element, columnsValue, rowsValue, areasValue, computedColumnsValue, computedRowsValue) |
+{ |
+ window.element = element; |
+ var elementID = element.id || "element"; |
+ shouldBeEqualToString("window.getComputedStyle(" + elementID + ", '').getPropertyValue('grid-template-columns')", computedColumnsValue || columnsValue); |
+ shouldBeEqualToString("window.getComputedStyle(" + elementID + ", '').getPropertyValue('grid-template-rows')", computedRowsValue || rowsValue); |
+ shouldBeEqualToString("window.getComputedStyle(" + elementID + ", '').getPropertyValue('grid-template-areas')", areasValue); |
+} |
+ |
+function testGridDefinitionsSetJSValues(shorthandValue, computedColumnsValue, computedRowsValue, computedAreasValue, jsColumnsValue, jsRowsValue, jsAreasValue) |
+{ |
+ checkGridDefinitionsSetJSValues(true, shorthandValue, computedColumnsValue, computedRowsValue, computedAreasValue, jsColumnsValue, jsRowsValue, jsAreasValue); |
+} |
+ |
+function testNonGridDefinitionsSetJSValues(shorthandValue, computedColumnsValue, computedRowsValue, computedAreasValue, jsColumnsValue, jsRowsValue, jsAreasValue) |
+{ |
+ checkGridDefinitionsSetJSValues(false, shorthandValue, computedColumnsValue, computedRowsValue, computedAreasValue, jsColumnsValue, jsRowsValue, jsAreasValue); |
+} |
+ |
+function checkGridDefinitionsSetJSValues(useGrid, shorthandValue, computedColumnsValue, computedRowsValue, computedAreasValue, jsColumnsValue, jsRowsValue, jsAreasValue) |
+{ |
+ window.element = document.createElement("div"); |
+ document.body.appendChild(element); |
+ if (useGrid) { |
+ element.style.display = "grid"; |
+ element.style.width = "800px"; |
+ element.style.height = "600px"; |
+ } |
+ element.style.font = "10px Ahem"; // Used to resolve em font consistently. |
+ element.style.gridTemplate = shorthandValue; |
+ shouldBeEqualToString("getComputedStyle(element, '').getPropertyValue('grid-template-columns')", computedColumnsValue); |
+ shouldBeEqualToString("element.style.gridTemplateColumns", jsColumnsValue || computedColumnsValue); |
+ shouldBeEqualToString("getComputedStyle(element, '').getPropertyValue('grid-template-rows')", computedRowsValue); |
+ shouldBeEqualToString("element.style.gridTemplateRows", jsRowsValue || computedRowsValue); |
+ shouldBeEqualToString("getComputedStyle(element, '').getPropertyValue('grid-template-areas')", computedAreasValue); |
+ shouldBeEqualToString("element.style.gridTemplateAreas", jsAreasValue || computedAreasValue); |
+ document.body.removeChild(element); |
+} |
+ |
+function testGridDefinitionsSetBadJSValues(shorthandValue) |
+{ |
+ window.element = document.createElement("div"); |
+ document.body.appendChild(element); |
+ element.style.gridTemplate = shorthandValue; |
+ // We can't use testSetJSValues as element.style.gridTemplateRows returns "". |
+ testGridDefinitionsValues(element, "none", "none", "none"); |
+ document.body.removeChild(element); |
+} |