[CSS Grid Layout] Split the grid-item-margin-auto-columns-rows.html test.
https://bugs.webkit.org/show_bug.cgi?id=131064

Patch by Javier Fernandez <jfernandez@igalia.com> on 2014-05-22
Reviewed by Benjamin Poulain.

Splitting the "grid-item-margin-auto-columns-rows" into different writing-modes
related tests, so besides increasing clarity, it makes it fit in the 800x600 viewport.

* fast/css-grid-layout/grid-item-margin-auto-columns-rows-expected.html: Removed.
* fast/css-grid-layout/grid-item-margin-auto-columns-rows.html: Removed.
* fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-ltr-expected.html: Added.
* fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-ltr.html: Added.
* fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-rtl-expected.html: Added.
* fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-rtl.html: Added.
* fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-ltr-expected.html: Added.
* fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-ltr.html: Added.
* fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-rtl-expected.html: Added.
* fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-rtl.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169197 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 41111a9..ab62e4e 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,24 @@
+2014-05-22  Javier Fernandez  <jfernandez@igalia.com>
+
+        [CSS Grid Layout] Split the grid-item-margin-auto-columns-rows.html test.
+        https://bugs.webkit.org/show_bug.cgi?id=131064
+
+        Reviewed by Benjamin Poulain.
+
+        Splitting the "grid-item-margin-auto-columns-rows" into different writing-modes
+        related tests, so besides increasing clarity, it makes it fit in the 800x600 viewport.
+
+        * fast/css-grid-layout/grid-item-margin-auto-columns-rows-expected.html: Removed.
+        * fast/css-grid-layout/grid-item-margin-auto-columns-rows.html: Removed.
+        * fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-ltr-expected.html: Added.
+        * fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-ltr.html: Added.
+        * fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-rtl-expected.html: Added.
+        * fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-rtl.html: Added.
+        * fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-ltr-expected.html: Added.
+        * fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-ltr.html: Added.
+        * fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-rtl-expected.html: Added.
+        * fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-rtl.html: Added.
+
 2014-05-21  Antti Koivisto  <antti@apple.com>
 
         REGRESSION(r167870): Crash in simple line layout code with :after
diff --git a/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-expected.html b/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-expected.html
deleted file mode 100644
index 1301aa0..0000000
--- a/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-expected.html
+++ /dev/null
@@ -1,199 +0,0 @@
-<!DOCTYPE html>
-<html>
-<style>
-.grid {
-   display: block;
-   background-color: grey;
-   width: 200px;
-}
-
-.gridLong {
-   height: 120px;
-}
-
-.gridShort {
-   height: 100px;
-}
-
-.firstRowFirstColumn {
-   background-color: blue;
-   position: absolute;
-}
-
-.firstRowSecondColumn {
-   background-color: lime;
-   position: absolute;
-}
-
-.secondRowFirstColumn {
-   background-color: purple;
-   position: absolute;
-}
-
-.secondRowSecondColumn {
-   background-color: orange;
-   position: absolute;
-   left: 20px;
-}
-
-.gridItem {
-    width: 20px;
-    height: 40px;
-}
-
-.testContainer {
-    position: relative;
-    margin-bottom: 20px;
-}
-</style>
-</head>
-<body>
-
-<div>This test checks that the grid's rows and columns 'auto' sizes are updated accordingly to its grid-item's before and start margins.</div>
-
-<div class="testContainer">
-    <div class="grid gridLong">
-        <div class="gridItem firstRowFirstColumn"   style="top: 20px;"></div>
-        <div class="gridItem firstRowSecondColumn"  style="left: 20px;"></div>
-        <div class="gridItem secondRowFirstColumn"  style="top: 60px;"></div>
-        <div class="gridItem secondRowSecondColumn" style="left: 20px; top: 60px;"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid gridShort">
-        <div class="gridItem firstRowFirstColumn"   style="top: 20px;"></div>
-        <div class="gridItem firstRowSecondColumn"  style="left: 20px;"></div>
-        <div class="gridItem secondRowFirstColumn"  style="top: 60px;"></div>
-        <div class="gridItem secondRowSecondColumn" style="left: 20px; top: 60px;"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid gridLong">
-        <div class="gridItem firstRowFirstColumn"   style="left: 180px; top: 20px;"></div>
-        <div class="gridItem firstRowSecondColumn"  style="left: 180px; top: 60px;"></div>
-        <div class="gridItem secondRowFirstColumn"  style="left: 160px;"></div>
-        <div class="gridItem secondRowSecondColumn" style="left: 160px; top: 60px;"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid gridShort">
-        <div class="gridItem firstRowFirstColumn"   style="left: 180px; top: 20px;"></div>
-        <div class="gridItem firstRowSecondColumn"  style="left: 180px; top: 60px;"></div>
-        <div class="gridItem secondRowFirstColumn"  style="left: 160px;"></div>
-        <div class="gridItem secondRowSecondColumn" style="left: 160px; top: 60px;"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid gridLong">
-        <div class="gridItem firstRowFirstColumn"   style="top: 20px;"></div>
-        <div class="gridItem firstRowSecondColumn"  style="top: 60px;"></div>
-        <div class="gridItem secondRowFirstColumn"  style="left: 20px;"></div>
-        <div class="gridItem secondRowSecondColumn" style="left: 20px; top: 60px;"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid gridShort">
-        <div class="gridItem firstRowFirstColumn"   style="top: 20px;"></div>
-        <div class="gridItem firstRowSecondColumn"  style="top: 60px;"></div>
-        <div class="gridItem secondRowFirstColumn"  style="left: 20px;"></div>
-        <div class="gridItem secondRowSecondColumn" style="left: 20px; top: 60px;"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid gridLong">
-        <div class="gridItem firstRowFirstColumn"   style="top: 80px;"></div>
-        <div class="gridItem firstRowSecondColumn"  style="left: 20px; top: 80px;"></div>
-        <div class="gridItem secondRowFirstColumn"  style="left: 0px;"></div>
-        <div class="gridItem secondRowSecondColumn" style="top: 20px;"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid gridShort">
-        <div class="gridItem firstRowFirstColumn"   style="top: 60px;"></div>
-        <div class="gridItem firstRowSecondColumn"  style="left: 20px; top: 40px;"></div>
-        <div class="gridItem secondRowFirstColumn"  style="left: 0px;"></div>
-        <div class="gridItem secondRowSecondColumn" style="left: 20px;"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid gridLong">
-        <div class="gridItem firstRowFirstColumn"   style="top: 20px;"></div>
-        <div class="gridItem firstRowSecondColumn"  style="left: 20px;"></div>
-        <div class="gridItem secondRowFirstColumn"  style="top: 60px;"></div>
-        <div class="gridItem secondRowSecondColumn" style="left: 20px; top: 60px;"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid gridShort">
-        <div class="gridItem firstRowFirstColumn"   style="top: 20px;"></div>
-        <div class="gridItem firstRowSecondColumn"  style="left: 20px;"></div>
-        <div class="gridItem secondRowFirstColumn"  style="top: 60px;"></div>
-        <div class="gridItem secondRowSecondColumn" style="left: 20px; top: 60px;"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid gridLong">
-        <div class="gridItem firstRowFirstColumn"   style="left: 180px;"></div>
-        <div class="gridItem firstRowSecondColumn"  style="left: 180px; top: 60px;"></div>
-        <div class="gridItem secondRowFirstColumn"  style="left: 160px;"></div>
-        <div class="gridItem secondRowSecondColumn" style="left: 160px; top: 80px;"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid gridShort">
-        <div class="gridItem firstRowFirstColumn"   style="left: 180px;"></div>
-        <div class="gridItem firstRowSecondColumn"  style="left: 180px; top: 60px;"></div>
-        <div class="gridItem secondRowFirstColumn"  style="left: 160px; top: 20px;"></div>
-        <div class="gridItem secondRowSecondColumn" style="left: 160px; top: 60px;"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid gridLong">
-        <div class="gridItem firstRowFirstColumn"   style="top: 0px;"></div>
-        <div class="gridItem firstRowSecondColumn"  style="top: 60px;"></div>
-        <div class="gridItem secondRowFirstColumn"  style="left: 20px;"></div>
-        <div class="gridItem secondRowSecondColumn" style="left: 20px; top: 80px;"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid gridShort">
-        <div class="gridItem firstRowFirstColumn"   style="top: 0px;"></div>
-        <div class="gridItem firstRowSecondColumn"  style="top: 60px;"></div>
-        <div class="gridItem secondRowFirstColumn"  style="left: 20px; top: 20px;" ></div>
-        <div class="gridItem secondRowSecondColumn" style="left: 20px; top: 60px;"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid gridLong">
-        <div class="gridItem firstRowFirstColumn"   style="top: 80px;"></div>
-        <div class="gridItem firstRowSecondColumn"  style="left: 20px; top: 80px;"></div>
-        <div class="gridItem secondRowFirstColumn"  style="left: 0px;"></div>
-        <div class="gridItem secondRowSecondColumn" style="left: 20px; top: 20px;"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid gridShort">
-        <div class="gridItem firstRowFirstColumn"   style="top: 60px;"></div>
-        <div class="gridItem firstRowSecondColumn"  style="left: 20px; top: 40px;"></div>
-        <div class="gridItem secondRowFirstColumn"  style="left: 0px;"></div>
-        <div class="gridItem secondRowSecondColumn" style="left: 20px;"></div>
-    </div>
-</div>
-
-</body>
-</html>
diff --git a/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-ltr-expected.html b/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-ltr-expected.html
new file mode 100644
index 0000000..203723e
--- /dev/null
+++ b/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-ltr-expected.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html>
+<style>
+.grid {
+   display: block;
+   background-color: grey;
+   width: 200px;
+}
+
+.gridLong {
+   height: 120px;
+}
+
+.gridShort {
+   height: 100px;
+}
+
+.firstRowFirstColumn {
+   background-color: blue;
+   position: absolute;
+}
+
+.firstRowSecondColumn {
+   background-color: lime;
+   position: absolute;
+}
+
+.secondRowFirstColumn {
+   background-color: purple;
+   position: absolute;
+}
+
+.secondRowSecondColumn {
+   background-color: orange;
+   position: absolute;
+   left: 20px;
+}
+
+.gridItem {
+    width: 20px;
+    height: 40px;
+}
+
+.testContainer {
+    position: relative;
+    margin-bottom: 20px;
+}
+</style>
+</head>
+<body>
+
+<div>This test checks that the grid's rows and columns 'auto' sizes are updated accordingly to its grid-item's before and start margins.</div>
+
+<div class="testContainer">
+    <div class="grid gridLong">
+        <div class="gridItem firstRowFirstColumn"   style="top: 20px;"></div>
+        <div class="gridItem firstRowSecondColumn"  style="left: 20px;"></div>
+        <div class="gridItem secondRowFirstColumn"  style="top: 60px;"></div>
+        <div class="gridItem secondRowSecondColumn" style="left: 20px; top: 60px;"></div>
+    </div>
+</div>
+
+<div class="testContainer">
+    <div class="grid gridShort">
+        <div class="gridItem firstRowFirstColumn"   style="top: 20px;"></div>
+        <div class="gridItem firstRowSecondColumn"  style="left: 20px;"></div>
+        <div class="gridItem secondRowFirstColumn"  style="top: 60px;"></div>
+        <div class="gridItem secondRowSecondColumn" style="left: 20px; top: 60px;"></div>
+    </div>
+</div>
+
+<div class="testContainer">
+    <div class="grid gridLong">
+        <div class="gridItem firstRowFirstColumn"   style="top: 80px;"></div>
+        <div class="gridItem firstRowSecondColumn"  style="left: 20px; top: 80px;"></div>
+        <div class="gridItem secondRowFirstColumn"  style="left: 0px;"></div>
+        <div class="gridItem secondRowSecondColumn" style="top: 20px;"></div>
+    </div>
+</div>
+
+<div class="testContainer">
+    <div class="grid gridShort">
+        <div class="gridItem firstRowFirstColumn"   style="top: 60px;"></div>
+        <div class="gridItem firstRowSecondColumn"  style="left: 20px; top: 40px;"></div>
+        <div class="gridItem secondRowFirstColumn"  style="left: 0px;"></div>
+        <div class="gridItem secondRowSecondColumn" style="left: 20px;"></div>
+    </div>
+</div>
+
+</body>
+</html>
diff --git a/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-ltr.html b/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-ltr.html
new file mode 100644
index 0000000..93b1d0b
--- /dev/null
+++ b/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-ltr.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html>
+<script>
+if (window.testRunner)
+    testRunner.overridePreference("WebKitCSSGridLayoutEnabled", 1);
+</script>
+<link href="resources/grid.css" rel="stylesheet">
+<style>
+.grid {
+    -webkit-grid-template-rows: auto auto;
+    -webkit-grid-template-columns: auto auto;
+    width: 200px;
+}
+
+.gridItem {
+    width: 20px;
+    height: 40px;
+}
+
+.marginTop {
+    margin-top: 20px;
+}
+
+.marginBottom {
+    margin-bottom: 20px;
+}
+
+.testContainer {
+    position: relative;
+    margin-bottom: 20px;
+}
+</style>
+</head>
+<body>
+
+<div>This test checks that the grid's rows and columns 'auto' sizes are updated accordingly to its grid-item's before and start margins.</div>
+
+<div class="testContainer">
+    <div class="grid">
+        <div class="gridItem marginTop firstRowFirstColumn"></div>
+        <div class="gridItem firstRowSecondColumn"></div>
+        <div class="gridItem marginBottom secondRowFirstColumn"></div>
+        <div class="gridItem secondRowSecondColumn"></div>
+    </div>
+</div>
+
+<div class="testContainer">
+    <div class="grid">
+        <div class="gridItem marginTop firstRowFirstColumn"></div>
+        <div class="gridItem marginBottom firstRowSecondColumn"></div>
+        <div class="gridItem secondRowFirstColumn"></div>
+        <div class="gridItem secondRowSecondColumn"></div>
+    </div>
+</div>
+
+<div class="testContainer">
+    <div class="grid horizontalBT">
+        <div class="gridItem marginTop firstRowFirstColumn"></div>
+        <div class="gridItem firstRowSecondColumn"></div>
+        <div class="gridItem marginBottom secondRowFirstColumn"></div>
+        <div class="gridItem secondRowSecondColumn"></div>
+    </div>
+</div>
+
+<div class="testContainer">
+    <div class="grid horizontalBT">
+        <div class="gridItem marginTop firstRowFirstColumn"></div>
+        <div class="gridItem marginBottom firstRowSecondColumn"></div>
+        <div class="gridItem secondRowFirstColumn"></div>
+        <div class="gridItem secondRowSecondColumn"></div>
+    </div>
+</div>
+
+</body>
+</html>
diff --git a/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-rtl-expected.html b/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-rtl-expected.html
new file mode 100644
index 0000000..b4b3b87
--- /dev/null
+++ b/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-rtl-expected.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html>
+<style>
+.grid {
+   display: block;
+   background-color: grey;
+   width: 200px;
+}
+
+.gridLong {
+   height: 120px;
+}
+
+.gridShort {
+   height: 100px;
+}
+
+.firstRowFirstColumn {
+   background-color: blue;
+   position: absolute;
+}
+
+.firstRowSecondColumn {
+   background-color: lime;
+   position: absolute;
+}
+
+.secondRowFirstColumn {
+   background-color: purple;
+   position: absolute;
+}
+
+.secondRowSecondColumn {
+   background-color: orange;
+   position: absolute;
+   left: 20px;
+}
+
+.gridItem {
+    width: 20px;
+    height: 40px;
+}
+
+.testContainer {
+    position: relative;
+    margin-bottom: 20px;
+}
+</style>
+</head>
+<body>
+
+<div>This test checks that the grid's rows and columns 'auto' sizes are updated accordingly to its grid-item's before and start margins.</div>
+
+<div class="testContainer">
+    <div class="grid gridLong">
+        <div class="gridItem firstRowFirstColumn"   style="top: 20px;"></div>
+        <div class="gridItem firstRowSecondColumn"  style="left: 20px;"></div>
+        <div class="gridItem secondRowFirstColumn"  style="top: 60px;"></div>
+        <div class="gridItem secondRowSecondColumn" style="left: 20px; top: 60px;"></div>
+    </div>
+</div>
+
+<div class="testContainer">
+    <div class="grid gridShort">
+        <div class="gridItem firstRowFirstColumn"   style="top: 20px;"></div>
+        <div class="gridItem firstRowSecondColumn"  style="left: 20px;"></div>
+        <div class="gridItem secondRowFirstColumn"  style="top: 60px;"></div>
+        <div class="gridItem secondRowSecondColumn" style="left: 20px; top: 60px;"></div>
+    </div>
+</div>
+
+<div class="testContainer">
+    <div class="grid gridLong">
+        <div class="gridItem firstRowFirstColumn"   style="top: 80px;"></div>
+        <div class="gridItem firstRowSecondColumn"  style="left: 20px; top: 80px;"></div>
+        <div class="gridItem secondRowFirstColumn"  style="left: 0px;"></div>
+        <div class="gridItem secondRowSecondColumn" style="left: 20px; top: 20px;"></div>
+    </div>
+</div>
+
+<div class="testContainer">
+    <div class="grid gridShort">
+        <div class="gridItem firstRowFirstColumn"   style="top: 60px;"></div>
+        <div class="gridItem firstRowSecondColumn"  style="left: 20px; top: 40px;"></div>
+        <div class="gridItem secondRowFirstColumn"  style="left: 0px;"></div>
+        <div class="gridItem secondRowSecondColumn" style="left: 20px;"></div>
+    </div>
+</div>
+
+</body>
+</html>
diff --git a/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-rtl.html b/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-rtl.html
new file mode 100644
index 0000000..976245e
--- /dev/null
+++ b/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-horizontal-rtl.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html>
+<script>
+if (window.testRunner)
+    testRunner.overridePreference("WebKitCSSGridLayoutEnabled", 1);
+</script>
+<link href="resources/grid.css" rel="stylesheet">
+<style>
+.grid {
+    -webkit-grid-template-rows: auto auto;
+    -webkit-grid-template-columns: auto auto;
+    width: 200px;
+}
+
+.gridItem {
+    width: 20px;
+    height: 40px;
+}
+
+.marginTop {
+    margin-top: 20px;
+}
+
+.marginBottom {
+    margin-bottom: 20px;
+}
+
+.testContainer {
+    position: relative;
+    margin-bottom: 20px;
+}
+
+</style>
+</head>
+<body>
+
+<div>This test checks that the grid's rows and columns 'auto' sizes are updated accordingly to its grid-item's before and start margins.</div>
+<div class="testContainer">
+    <div class="grid directionRTL">
+        <div class="gridItem marginTop firstRowFirstColumn"></div>
+        <div class="gridItem firstRowSecondColumn"></div>
+        <div class="gridItem marginBottom secondRowFirstColumn"></div>
+        <div class="gridItem secondRowSecondColumn"></div>
+    </div>
+</div>
+
+<div class="testContainer">
+    <div class="grid directionRTL">
+        <div class="gridItem marginTop firstRowFirstColumn"></div>
+        <div class="gridItem marginBottom firstRowSecondColumn"></div>
+        <div class="gridItem secondRowFirstColumn"></div>
+        <div class="gridItem secondRowSecondColumn"></div>
+    </div>
+</div>
+
+<div class="testContainer">
+    <div class="grid horizontalBT directionRTL">
+        <div class="gridItem marginTop firstRowFirstColumn"></div>
+        <div class="gridItem firstRowSecondColumn"></div>
+        <div class="gridItem marginBottom secondRowFirstColumn"></div>
+        <div class="gridItem secondRowSecondColumn"></div>
+    </div>
+</div>
+
+<div class="testContainer">
+    <div class="grid horizontalBT directionRTL">
+        <div class="gridItem marginTop firstRowFirstColumn"></div>
+        <div class="gridItem marginBottom firstRowSecondColumn"></div>
+        <div class="gridItem secondRowFirstColumn"></div>
+        <div class="gridItem secondRowSecondColumn"></div>
+    </div>
+</div>
diff --git a/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-ltr-expected.html b/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-ltr-expected.html
new file mode 100644
index 0000000..f60214d
--- /dev/null
+++ b/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-ltr-expected.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html>
+<style>
+.grid {
+   display: block;
+   background-color: grey;
+   width: 200px;
+}
+
+.gridLong {
+   height: 120px;
+}
+
+.gridShort {
+   height: 100px;
+}
+
+.firstRowFirstColumn {
+   background-color: blue;
+   position: absolute;
+}
+
+.firstRowSecondColumn {
+   background-color: lime;
+   position: absolute;
+}
+
+.secondRowFirstColumn {
+   background-color: purple;
+   position: absolute;
+}
+
+.secondRowSecondColumn {
+   background-color: orange;
+   position: absolute;
+   left: 20px;
+}
+
+.gridItem {
+    width: 20px;
+    height: 40px;
+}
+
+.testContainer {
+    position: relative;
+    margin-bottom: 20px;
+}
+</style>
+</head>
+<body>
+
+<div>This test checks that the grid's rows and columns 'auto' sizes are updated accordingly to its grid-item's before and start margins.</div>
+
+<div class="testContainer">
+    <div class="grid gridLong">
+        <div class="gridItem firstRowFirstColumn"   style="left: 180px; top: 20px;"></div>
+        <div class="gridItem firstRowSecondColumn"  style="left: 180px; top: 60px;"></div>
+        <div class="gridItem secondRowFirstColumn"  style="left: 160px;"></div>
+        <div class="gridItem secondRowSecondColumn" style="left: 160px; top: 60px;"></div>
+    </div>
+</div>
+
+<div class="testContainer">
+    <div class="grid gridShort">
+        <div class="gridItem firstRowFirstColumn"   style="left: 180px; top: 20px;"></div>
+        <div class="gridItem firstRowSecondColumn"  style="left: 180px; top: 60px;"></div>
+        <div class="gridItem secondRowFirstColumn"  style="left: 160px;"></div>
+        <div class="gridItem secondRowSecondColumn" style="left: 160px; top: 60px;"></div>
+    </div>
+</div>
+
+<div class="testContainer">
+    <div class="grid gridLong">
+        <div class="gridItem firstRowFirstColumn"   style="top: 20px;"></div>
+        <div class="gridItem firstRowSecondColumn"  style="top: 60px;"></div>
+        <div class="gridItem secondRowFirstColumn"  style="left: 20px;"></div>
+        <div class="gridItem secondRowSecondColumn" style="left: 20px; top: 60px;"></div>
+    </div>
+</div>
+
+<div class="testContainer">
+    <div class="grid gridShort">
+        <div class="gridItem firstRowFirstColumn"   style="top: 20px;"></div>
+        <div class="gridItem firstRowSecondColumn"  style="top: 60px;"></div>
+        <div class="gridItem secondRowFirstColumn"  style="left: 20px;"></div>
+        <div class="gridItem secondRowSecondColumn" style="left: 20px; top: 60px;"></div>
+    </div>
+</div>
+
+</body>
+</html>
diff --git a/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-ltr.html b/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-ltr.html
new file mode 100644
index 0000000..ef19285
--- /dev/null
+++ b/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-ltr.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html>
+<script>
+if (window.testRunner)
+    testRunner.overridePreference("WebKitCSSGridLayoutEnabled", 1);
+</script>
+<link href="resources/grid.css" rel="stylesheet">
+<style>
+.grid {
+    -webkit-grid-template-rows: auto auto;
+    -webkit-grid-template-columns: auto auto;
+    width: 200px;
+}
+
+.gridItem {
+    width: 20px;
+    height: 40px;
+}
+
+.marginTop {
+    margin-top: 20px;
+}
+
+.marginBottom {
+    margin-bottom: 20px;
+}
+
+.testContainer {
+    position: relative;
+    margin-bottom: 20px;
+}
+
+</style>
+</head>
+<body>
+
+<div>This test checks that the grid's rows and columns 'auto' sizes are updated accordingly to its grid-item's before and start margins.</div>
+
+<div class="testContainer">
+    <div class="grid verticalRL">
+        <div class="gridItem marginTop firstRowFirstColumn"></div>
+        <div class="gridItem firstRowSecondColumn"></div>
+        <div class="gridItem secondRowFirstColumn"></div>
+        <div class="gridItem marginBottom secondRowSecondColumn"></div>
+    </div>
+</div>
+
+<div class="testContainer">
+    <div class="grid verticalRL">
+        <div class="gridItem marginTop firstRowFirstColumn"></div>
+        <div class="gridItem firstRowSecondColumn"></div>
+        <div class="gridItem marginBottom secondRowFirstColumn"></div>
+        <div class="gridItem secondRowSecondColumn"></div>
+    </div>
+</div>
+
+<div class="testContainer">
+    <div class="grid verticalLR">
+        <div class="gridItem marginTop firstRowFirstColumn"></div>
+        <div class="gridItem firstRowSecondColumn"></div>
+        <div class="gridItem secondRowFirstColumn"></div>
+        <div class="gridItem marginBottom secondRowSecondColumn"></div>
+    </div>
+</div>
+
+<div class="testContainer">
+    <div class="grid verticalLR">
+        <div class="gridItem marginTop firstRowFirstColumn"></div>
+        <div class="gridItem firstRowSecondColumn"></div>
+        <div class="gridItem marginBottom secondRowFirstColumn"></div>
+        <div class="gridItem secondRowSecondColumn"></div>
+    </div>
+</div>
diff --git a/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-rtl-expected.html b/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-rtl-expected.html
new file mode 100644
index 0000000..7e65577
--- /dev/null
+++ b/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-rtl-expected.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<html>
+<style>
+.grid {
+   display: block;
+   background-color: grey;
+   width: 200px;
+}
+
+.gridLong {
+   height: 120px;
+}
+
+.gridShort {
+   height: 100px;
+}
+
+.firstRowFirstColumn {
+   background-color: blue;
+   position: absolute;
+}
+
+.firstRowSecondColumn {
+   background-color: lime;
+   position: absolute;
+}
+
+.secondRowFirstColumn {
+   background-color: purple;
+   position: absolute;
+}
+
+.secondRowSecondColumn {
+   background-color: orange;
+   position: absolute;
+   left: 20px;
+}
+
+.gridItem {
+    width: 20px;
+    height: 40px;
+}
+
+.testContainer {
+    position: relative;
+    margin-bottom: 20px;
+}
+</style>
+</head>
+<body>
+
+<div>This test checks that the grid's rows and columns 'auto' sizes are updated accordingly to its grid-item's before and start margins.</div>
+
+<div class="testContainer">
+    <div class="grid gridLong">
+        <div class="gridItem firstRowFirstColumn"   style="left: 180px;"></div>
+        <div class="gridItem firstRowSecondColumn"  style="left: 180px; top: 60px;"></div>
+        <div class="gridItem secondRowFirstColumn"  style="left: 160px;"></div>
+        <div class="gridItem secondRowSecondColumn" style="left: 160px; top: 80px;"></div>
+    </div>
+</div>
+
+<div class="testContainer">
+    <div class="grid gridShort">
+        <div class="gridItem firstRowFirstColumn"   style="left: 180px;"></div>
+        <div class="gridItem firstRowSecondColumn"  style="left: 180px; top: 60px;"></div>
+        <div class="gridItem secondRowFirstColumn"  style="left: 160px; top: 20px;"></div>
+        <div class="gridItem secondRowSecondColumn" style="left: 160px; top: 60px;"></div>
+    </div>
+</div>
+
+<div class="testContainer">
+    <div class="grid gridLong">
+        <div class="gridItem firstRowFirstColumn"   style="top: 0px;"></div>
+        <div class="gridItem firstRowSecondColumn"  style="top: 60px;"></div>
+        <div class="gridItem secondRowFirstColumn"  style="left: 20px;"></div>
+        <div class="gridItem secondRowSecondColumn" style="left: 20px; top: 80px;"></div>
+    </div>
+</div>
+
+<div class="testContainer">
+    <div class="grid gridShort">
+        <div class="gridItem firstRowFirstColumn"   style="top: 0px;"></div>
+        <div class="gridItem firstRowSecondColumn"  style="top: 60px;"></div>
+        <div class="gridItem secondRowFirstColumn"  style="left: 20px; top: 20px;" ></div>
+        <div class="gridItem secondRowSecondColumn" style="left: 20px; top: 60px;"></div>
+    </div>
+</div>
diff --git a/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-rtl.html b/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-rtl.html
new file mode 100644
index 0000000..17420c6
--- /dev/null
+++ b/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vertical-rtl.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html>
+<script>
+if (window.testRunner)
+    testRunner.overridePreference("WebKitCSSGridLayoutEnabled", 1);
+</script>
+<link href="resources/grid.css" rel="stylesheet">
+<style>
+.grid {
+    -webkit-grid-template-rows: auto auto;
+    -webkit-grid-template-columns: auto auto;
+    width: 200px;
+}
+
+.gridItem {
+    width: 20px;
+    height: 40px;
+}
+
+.marginTop {
+    margin-top: 20px;
+}
+
+.marginBottom {
+    margin-bottom: 20px;
+}
+
+.testContainer {
+    position: relative;
+    margin-bottom: 20px;
+}
+
+</style>
+</head>
+<body>
+
+<div>This test checks that the grid's rows and columns 'auto' sizes are updated accordingly to its grid-item's before and start margins.</div>
+
+<div class="testContainer">
+    <div class="grid verticalRL directionRTL">
+        <div class="gridItem marginTop firstRowFirstColumn"></div>
+        <div class="gridItem firstRowSecondColumn"></div>
+        <div class="gridItem secondRowFirstColumn"></div>
+        <div class="gridItem marginBottom secondRowSecondColumn"></div>
+    </div>
+</div>
+
+<div class="testContainer">
+    <div class="grid verticalRL directionRTL">
+        <div class="gridItem marginTop firstRowFirstColumn"></div>
+        <div class="gridItem firstRowSecondColumn"></div>
+        <div class="gridItem marginBottom secondRowFirstColumn"></div>
+        <div class="gridItem secondRowSecondColumn"></div>
+    </div>
+</div>
+
+<div class="testContainer">
+    <div class="grid verticalLR directionRTL">
+        <div class="gridItem marginTop firstRowFirstColumn"></div>
+        <div class="gridItem firstRowSecondColumn"></div>
+        <div class="gridItem secondRowFirstColumn"></div>
+        <div class="gridItem marginBottom secondRowSecondColumn"></div>
+    </div>
+</div>
+
+<div class="testContainer">
+    <div class="grid verticalLR directionRTL">
+        <div class="gridItem marginTop firstRowFirstColumn"></div>
+        <div class="gridItem firstRowSecondColumn"></div>
+        <div class="gridItem marginBottom secondRowFirstColumn"></div>
+        <div class="gridItem secondRowSecondColumn"></div>
+    </div>
+</div>
+
+</body>
+</html>
diff --git a/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows.html b/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows.html
deleted file mode 100644
index c1e747a..0000000
--- a/LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows.html
+++ /dev/null
@@ -1,181 +0,0 @@
-<!DOCTYPE html>
-<html>
-<link href="resources/grid.css" rel="stylesheet">
-<style>
-.grid {
-    -webkit-grid-template-rows: auto auto;
-    -webkit-grid-template-columns: auto auto;
-    width: 200px;
-}
-
-.gridItem {
-    width: 20px;
-    height: 40px;
-}
-
-.marginTop {
-    margin-top: 20px;
-}
-
-.marginBottom {
-    margin-bottom: 20px;
-}
-
-.testContainer {
-    position: relative;
-    margin-bottom: 20px;
-}
-
-</style>
-</head>
-<body>
-
-<div>This test checks that the grid's rows and columns 'auto' sizes are updated accordingly to its grid-item's before and start margins.</div>
-
-<div class="testContainer">
-    <div class="grid">
-        <div class="gridItem marginTop firstRowFirstColumn"></div>
-        <div class="gridItem firstRowSecondColumn"></div>
-        <div class="gridItem marginBottom secondRowFirstColumn"></div>
-        <div class="gridItem secondRowSecondColumn"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid">
-        <div class="gridItem marginTop firstRowFirstColumn"></div>
-        <div class="gridItem marginBottom firstRowSecondColumn"></div>
-        <div class="gridItem secondRowFirstColumn"></div>
-        <div class="gridItem secondRowSecondColumn"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid verticalRL">
-        <div class="gridItem marginTop firstRowFirstColumn"></div>
-        <div class="gridItem firstRowSecondColumn"></div>
-        <div class="gridItem secondRowFirstColumn"></div>
-        <div class="gridItem marginBottom secondRowSecondColumn"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid verticalRL">
-        <div class="gridItem marginTop firstRowFirstColumn"></div>
-        <div class="gridItem firstRowSecondColumn"></div>
-        <div class="gridItem marginBottom secondRowFirstColumn"></div>
-        <div class="gridItem secondRowSecondColumn"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid verticalLR">
-        <div class="gridItem marginTop firstRowFirstColumn"></div>
-        <div class="gridItem firstRowSecondColumn"></div>
-        <div class="gridItem secondRowFirstColumn"></div>
-        <div class="gridItem marginBottom secondRowSecondColumn"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid verticalLR">
-        <div class="gridItem marginTop firstRowFirstColumn"></div>
-        <div class="gridItem firstRowSecondColumn"></div>
-        <div class="gridItem marginBottom secondRowFirstColumn"></div>
-        <div class="gridItem secondRowSecondColumn"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid horizontalBT">
-        <div class="gridItem marginTop firstRowFirstColumn"></div>
-        <div class="gridItem firstRowSecondColumn"></div>
-        <div class="gridItem marginBottom secondRowFirstColumn"></div>
-        <div class="gridItem secondRowSecondColumn"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid horizontalBT">
-        <div class="gridItem marginTop firstRowFirstColumn"></div>
-        <div class="gridItem marginBottom firstRowSecondColumn"></div>
-        <div class="gridItem secondRowFirstColumn"></div>
-        <div class="gridItem secondRowSecondColumn"></div>
-    </div>
-</div>
-
-<!-- rtl direction -->
-<div class="testContainer">
-    <div class="grid directionRTL">
-        <div class="gridItem marginTop firstRowFirstColumn"></div>
-        <div class="gridItem firstRowSecondColumn"></div>
-        <div class="gridItem marginBottom secondRowFirstColumn"></div>
-        <div class="gridItem secondRowSecondColumn"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid directionRTL">
-        <div class="gridItem marginTop firstRowFirstColumn"></div>
-        <div class="gridItem marginBottom firstRowSecondColumn"></div>
-        <div class="gridItem secondRowFirstColumn"></div>
-        <div class="gridItem secondRowSecondColumn"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid verticalRL directionRTL">
-        <div class="gridItem marginTop firstRowFirstColumn"></div>
-        <div class="gridItem firstRowSecondColumn"></div>
-        <div class="gridItem secondRowFirstColumn"></div>
-        <div class="gridItem marginBottom secondRowSecondColumn"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid verticalRL directionRTL">
-        <div class="gridItem marginTop firstRowFirstColumn"></div>
-        <div class="gridItem firstRowSecondColumn"></div>
-        <div class="gridItem marginBottom secondRowFirstColumn"></div>
-        <div class="gridItem secondRowSecondColumn"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid verticalLR directionRTL">
-        <div class="gridItem marginTop firstRowFirstColumn"></div>
-        <div class="gridItem firstRowSecondColumn"></div>
-        <div class="gridItem secondRowFirstColumn"></div>
-        <div class="gridItem marginBottom secondRowSecondColumn"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid verticalLR directionRTL">
-        <div class="gridItem marginTop firstRowFirstColumn"></div>
-        <div class="gridItem firstRowSecondColumn"></div>
-        <div class="gridItem marginBottom secondRowFirstColumn"></div>
-        <div class="gridItem secondRowSecondColumn"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid horizontalBT directionRTL">
-        <div class="gridItem marginTop firstRowFirstColumn"></div>
-        <div class="gridItem firstRowSecondColumn"></div>
-        <div class="gridItem marginBottom secondRowFirstColumn"></div>
-        <div class="gridItem secondRowSecondColumn"></div>
-    </div>
-</div>
-
-<div class="testContainer">
-    <div class="grid horizontalBT directionRTL">
-        <div class="gridItem marginTop firstRowFirstColumn"></div>
-        <div class="gridItem marginBottom firstRowSecondColumn"></div>
-        <div class="gridItem secondRowFirstColumn"></div>
-        <div class="gridItem secondRowSecondColumn"></div>
-    </div>
-</div>
-
-</body>
-</html>