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..7ab53d7cef736595f929a7ec474db50c88533aba 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; |
} |
+.gridItemWithBeforeSpan { |
+ -webkit-grid-column: span 2 / 4; |
+ -webkit-grid-row: 3 / span 5; |
+} |
+.gridItemWithAfterSpan { |
+ -webkit-grid-column: 2 span / 4; |
+ -webkit-grid-row: 3 / 5 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="gridItemWithBeforeSpan" id="gridItemWithBeforeSpanElement"></div> |
+<div class="gridItemWithAfterSpan" id="gridItemWithAfterSpanElement"></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 gridItemWithBeforeSpanElement = document.getElementById("gridItemWithBeforeSpanElement"); |
+ shouldBe("getComputedStyle(gridItemWithBeforeSpanElement, '').getPropertyValue('-webkit-grid-column')", "'span 2 / 4'"); |
+ shouldBe("getComputedStyle(gridItemWithBeforeSpanElement, '').getPropertyValue('-webkit-grid-start')", "'span 2'"); |
+ shouldBe("getComputedStyle(gridItemWithBeforeSpanElement, '').getPropertyValue('-webkit-grid-end')", "'4'"); |
+ shouldBe("getComputedStyle(gridItemWithBeforeSpanElement, '').getPropertyValue('-webkit-grid-row')", "'3 / span 5'"); |
+ shouldBe("getComputedStyle(gridItemWithBeforeSpanElement, '').getPropertyValue('-webkit-grid-before')", "'3'"); |
+ shouldBe("getComputedStyle(gridItemWithBeforeSpanElement, '').getPropertyValue('-webkit-grid-after')", "'span 5'"); |
+ |
+ var gridItemWithAfterSpanElement = document.getElementById("gridItemWithAfterSpanElement"); |
+ shouldBe("getComputedStyle(gridItemWithAfterSpanElement, '').getPropertyValue('-webkit-grid-column')", "'span 2 / 4'"); |
+ shouldBe("getComputedStyle(gridItemWithAfterSpanElement, '').getPropertyValue('-webkit-grid-start')", "'span 2'"); |
+ shouldBe("getComputedStyle(gridItemWithAfterSpanElement, '').getPropertyValue('-webkit-grid-end')", "'4'"); |
+ shouldBe("getComputedStyle(gridItemWithAfterSpanElement, '').getPropertyValue('-webkit-grid-row')", "'3 / span 5'"); |
+ shouldBe("getComputedStyle(gridItemWithAfterSpanElement, '').getPropertyValue('-webkit-grid-before')", "'3'"); |
+ shouldBe("getComputedStyle(gridItemWithAfterSpanElement, '').getPropertyValue('-webkit-grid-after')", "'span 5'"); |
+ |
+ var gridItemWith2OnlySpanElement = document.getElementById("gridItemWith2OnlySpanElement"); |
+ shouldBe("getComputedStyle(gridItemWith2OnlySpanElement, '').getPropertyValue('-webkit-grid-column')", "'auto / auto'"); |
+ shouldBe("getComputedStyle(gridItemWith2OnlySpanElement, '').getPropertyValue('-webkit-grid-start')", "'auto'"); |
+ shouldBe("getComputedStyle(gridItemWith2OnlySpanElement, '').getPropertyValue('-webkit-grid-end')", "'auto'"); |
+ shouldBe("getComputedStyle(gridItemWith2OnlySpanElement, '').getPropertyValue('-webkit-grid-row')", "'auto / auto'"); |
+ shouldBe("getComputedStyle(gridItemWith2OnlySpanElement, '').getPropertyValue('-webkit-grid-before')", "'auto'"); |
+ shouldBe("getComputedStyle(gridItemWith2OnlySpanElement, '').getPropertyValue('-webkit-grid-after')", "'auto'"); |
+ |
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 / 3"; |
+ element.style.webkitGridRow = "5 / span"; |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-column')", "'span 1 / 3'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-start')", "'span 1'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-end')", "'3'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-row')", "'5 / span 1'"); |
+ shouldBe("getComputedStyle(element, '').getPropertyValue('-webkit-grid-before')", "'5'"); |
+ 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,51 @@ 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'"); |
+ |
+ element = document.createElement("div"); |
+ document.body.appendChild(element); |
+ element.style.webkitGridColumn = "5 span / span 2"; |
+ element.style.webkitGridRow = "span 4 / 3 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> |