Index: LayoutTests/fast/css-grid-layout/grid-item-column-row-get-set.html |
diff --git a/LayoutTests/fast/css-grid-layout/grid-item-column-row-get-set.html b/LayoutTests/fast/css-grid-layout/grid-item-column-row-get-set.html |
index 6b8ef0e5d3a0994ff26f046e12fca740ee174144..86723402e2b64aa9f6e7c47c63a20878c658773b 100755 |
--- a/LayoutTests/fast/css-grid-layout/grid-item-column-row-get-set.html |
+++ b/LayoutTests/fast/css-grid-layout/grid-item-column-row-get-set.html |
@@ -26,6 +26,18 @@ if (window.testRunner) |
-webkit-grid-column: 10 / -10; |
-webkit-grid-row: -8 / 5; |
} |
+.gridItemWith2BeforeSpan { |
+ -webkit-grid-column: span 2 / span 4; |
+ -webkit-grid-row: span 5 / span 3; |
+} |
+.gridItemWith2AfterSpan { |
+ -webkit-grid-column: 2 span / 4 span; |
+ -webkit-grid-row: 5 span / 3 span; |
+} |
+.gridItemWith2OnlySpan { |
+ -webkit-grid-column: span / span; |
+ -webkit-grid-row: span / span; |
+} |
.gridItemWith2Auto { |
-webkit-grid-column: auto / auto; |
-webkit-grid-row: auto / auto; |
@@ -50,6 +62,9 @@ if (window.testRunner) |
<div class="gridItemWith2Integer" id="gridItemWith2IntegerElement"></div> |
<div class="gridItemWithNegativePositiveInteger" id="gridItemWithNegativePositiveIntegerElement"></div> |
<div class="gridItemWith2Auto" id="gridItemWith2AutoElement"></div> |
+<div class="gridItemWith2BeforeSpan" id="gridItemWith2BeforeSpanElement"></div> |
+<div class="gridItemWith2AfterSpan" id="gridItemWith2AfterSpanElement"></div> |
+<div class="gridItemWith2OnlySpan" id="gridItemWith2OnlySpanElement"></div> |
<div class="gridItemWithNegativePositiveInteger gridItemWithBothLongHand" id="gridItemWithBothShortLongHandElement"></div> |
<div class="gridItemWithNoSpace" id="gridItemWithNoSpaceElement"></div> |
<script> |
@@ -104,6 +119,30 @@ if (window.testRunner) |
shouldBe("getComputedStyle(gridItemWithNegativePositiveIntegerElement, '').getPropertyValue('-webkit-grid-before')", "'-8'"); |
shouldBe("getComputedStyle(gridItemWithNegativePositiveIntegerElement, '').getPropertyValue('-webkit-grid-after')", "'5'"); |
+ var gridItemWith2BeforeSpanElement = document.getElementById("gridItemWith2BeforeSpanElement"); |
+ shouldBe("getComputedStyle(gridItemWith2BeforeSpanElement, '').getPropertyValue('-webkit-grid-column')", "'span 2 / span 4'"); |
+ shouldBe("getComputedStyle(gridItemWith2BeforeSpanElement, '').getPropertyValue('-webkit-grid-start')", "'span 2'"); |
+ shouldBe("getComputedStyle(gridItemWith2BeforeSpanElement, '').getPropertyValue('-webkit-grid-end')", "'span 4'"); |
+ shouldBe("getComputedStyle(gridItemWith2BeforeSpanElement, '').getPropertyValue('-webkit-grid-row')", "'span 5 / span 3'"); |
+ shouldBe("getComputedStyle(gridItemWith2BeforeSpanElement, '').getPropertyValue('-webkit-grid-before')", "'span 5'"); |
+ shouldBe("getComputedStyle(gridItemWith2BeforeSpanElement, '').getPropertyValue('-webkit-grid-after')", "'span 3'"); |
+ |
+ var gridItemWith2AfterSpanElement = document.getElementById("gridItemWith2AfterSpanElement"); |
+ shouldBe("getComputedStyle(gridItemWith2AfterSpanElement, '').getPropertyValue('-webkit-grid-column')", "'span 2 / span 4'"); |
+ shouldBe("getComputedStyle(gridItemWith2AfterSpanElement, '').getPropertyValue('-webkit-grid-start')", "'span 2'"); |
+ shouldBe("getComputedStyle(gridItemWith2AfterSpanElement, '').getPropertyValue('-webkit-grid-end')", "'span 4'"); |
+ shouldBe("getComputedStyle(gridItemWith2AfterSpanElement, '').getPropertyValue('-webkit-grid-row')", "'span 5 / span 3'"); |
+ shouldBe("getComputedStyle(gridItemWith2AfterSpanElement, '').getPropertyValue('-webkit-grid-before')", "'span 5'"); |
+ shouldBe("getComputedStyle(gridItemWith2AfterSpanElement, '').getPropertyValue('-webkit-grid-after')", "'span 3'"); |
+ |
+ var gridItemWith2OnlySpanElement = document.getElementById("gridItemWith2OnlySpanElement"); |
+ shouldBe("getComputedStyle(gridItemWith2OnlySpanElement, '').getPropertyValue('-webkit-grid-column')", "'span 1 / span 1'"); |
+ shouldBe("getComputedStyle(gridItemWith2OnlySpanElement, '').getPropertyValue('-webkit-grid-start')", "'span 1'"); |
+ shouldBe("getComputedStyle(gridItemWith2OnlySpanElement, '').getPropertyValue('-webkit-grid-end')", "'span 1'"); |
+ shouldBe("getComputedStyle(gridItemWith2OnlySpanElement, '').getPropertyValue('-webkit-grid-row')", "'span 1 / span 1'"); |
+ shouldBe("getComputedStyle(gridItemWith2OnlySpanElement, '').getPropertyValue('-webkit-grid-before')", "'span 1'"); |
+ shouldBe("getComputedStyle(gridItemWith2OnlySpanElement, '').getPropertyValue('-webkit-grid-after')", "'span 1'"); |
+ |
var gridItemWith2AutoElement = document.getElementById("gridItemWith2AutoElement"); |
shouldBe("getComputedStyle(gridItemWith2AutoElement, '').getPropertyValue('-webkit-grid-column')", "'auto / auto'"); |
shouldBe("getComputedStyle(gridItemWith2AutoElement, '').getPropertyValue('-webkit-grid-start')", "'auto'"); |
@@ -185,6 +224,17 @@ if (window.testRunner) |
element = document.createElement("div"); |
document.body.appendChild(element); |
+ element.style.webkitGridColumn = "span 5 / 5"; |
+ element.style.webkitGridRow = "4 / span 4"; |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-column')", "'span 5 / 5'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-start')", "'span 5'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-end')", "'5'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-row')", "'4 / span 4'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-before')", "'4'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-after')", "'span 4'"); |
+ |
+ element = document.createElement("div"); |
+ document.body.appendChild(element); |
element.style.webkitGridColumn = "-5 / 5"; |
element.style.webkitGridRow = "4 / -4"; |
shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-column')", "'-5 / 5'"); |
@@ -216,6 +266,17 @@ if (window.testRunner) |
shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-before')", "'auto'"); |
shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-after')", "'8'"); |
+ element = document.createElement("div"); |
+ document.body.appendChild(element); |
+ element.style.webkitGridColumn = "span / span"; |
+ element.style.webkitGridRow = "span / span"; |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-column')", "'span 1 / span 1'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-start')", "'span 1'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-end')", "'span 1'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-row')", "'span 1 / span 1'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-before')", "'span 1'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-after')", "'span 1'"); |
+ |
debug(""); |
debug("Test setting grid-column and grid-row back to 'auto' through JS"); |
element.style.webkitGridColumn = "18 / 19"; |
@@ -326,6 +387,40 @@ if (window.testRunner) |
shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-row')", "'auto / auto'"); |
shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-before')", "'auto'"); |
shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-after')", "'auto'"); |
+ |
+ element = document.createElement("div"); |
+ document.body.appendChild(element); |
+ element.style.webkitGridColumn = "span span / span span"; |
+ element.style.webkitGridRow = "span span / span span"; |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-column')", "'auto / auto'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-start')", "'auto'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-end')", "'auto'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-row')", "'auto / auto'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-before')", "'auto'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-after')", "'auto'"); |
+ |
+ // Negative integer or 0 are invalid. |
+ element = document.createElement("div"); |
+ document.body.appendChild(element); |
+ element.style.webkitGridColumn = "span -1 / -2 span"; |
+ element.style.webkitGridRow = "-3 span / span -4"; |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-column')", "'auto / auto'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-start')", "'auto'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-end')", "'auto'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-row')", "'auto / auto'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-before')", "'auto'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-after')", "'auto'"); |
+ |
+ element = document.createElement("div"); |
+ document.body.appendChild(element); |
+ element.style.webkitGridColumn = "0 span / span 0"; |
+ element.style.webkitGridRow = "span 0 / 0 span"; |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-column')", "'auto / auto'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-start')", "'auto'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-end')", "'auto'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-row')", "'auto / auto'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-before')", "'auto'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-after')", "'auto'"); |
</script> |
<script src="../js/resources/js-test-post.js"></script> |
</body> |