Bug 1416350 Part 3: Add test to verify line numbers of grids with leading implicit tracks. draft
authorBrad Werth <bwerth@mozilla.com>
Fri, 10 Nov 2017 14:10:33 -0800
changeset 704786 3a0978c89c294765d78d313e6727fe85e0459e93
parent 704785 257eb0a7c540295535c72059f77f314e34b1533e
child 704787 a0e6fda9a5587a354949c380da79b22483d72f3a
push id91240
push userbwerth@mozilla.com
push dateTue, 28 Nov 2017 23:44:52 +0000
bugs1416350
milestone59.0a1
Bug 1416350 Part 3: Add test to verify line numbers of grids with leading implicit tracks. MozReview-Commit-ID: 8S8HMKhtWUP
dom/grid/test/chrome.ini
dom/grid/test/chrome/test_grid_line_numbers.html
--- a/dom/grid/test/chrome.ini
+++ b/dom/grid/test/chrome.ini
@@ -1,7 +1,8 @@
 [chrome/test_grid_areas.html]
 [chrome/test_grid_fragmentation.html]
 [chrome/test_grid_implicit.html]
 [chrome/test_grid_lines.html]
+[chrome/test_grid_line_numbers.html]
 [chrome/test_grid_object.html]
 [chrome/test_grid_repeats.html]
 [chrome/test_grid_tracks.html]
new file mode 100644
--- /dev/null
+++ b/dom/grid/test/chrome/test_grid_line_numbers.html
@@ -0,0 +1,101 @@
+<!doctype html>
+<html>
+<head>
+<meta charset="utf-8">
+<script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
+<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" />
+<style>
+body {
+  margin: 40px;
+}
+.wrapper {
+  display: grid;
+  grid-gap: 0px;
+  background-color: #f00;
+}
+.wrapper > div {
+  background-color: #444;
+  color: #fff;
+}
+.repeatColumns {
+  width: 600px;
+  grid-auto-columns: 50px;
+  grid-template-columns: repeat(auto-fit, 100px);
+}
+.repeatRows {
+  height: 600px;
+  grid-auto-rows: 50px;
+  grid-template-rows: repeat(auto-fit, 100px);
+}
+</style>
+
+<script>
+'use strict';
+
+SimpleTest.waitForExplicitFinish();
+
+function testLines(elementName, lines, expectedValues) {
+  is(lines.count, expectedValues.count, elementName + " has expected number of lines.");
+  for (let i = 0; i < lines.length; i++) {
+    is(lines[i].number, expectedValues[i].number, elementName + " line index " + i + " has expected number.");
+  }
+}
+
+function runTests() {
+  let grid;
+  let lines;
+  let expectedValues;
+
+  grid = document.getElementById("gridWithColumns").getGridFragments()[0];
+  lines = grid.cols.lines;
+  expectedValues = [
+    { "number": 0 },
+    { "number": 0 },
+    { "number": 1 },
+    { "number": 2 },
+    { "number": 3 },
+    { "number": 4 },
+    { "number": 5 },
+    { "number": 6 },
+    { "number": 7 },
+    { "number": 8 },
+  ];
+  testLines("gridWithColumns", lines, expectedValues);
+
+  grid = document.getElementById("gridWithRows").getGridFragments()[0];
+  lines = grid.rows.lines;
+  expectedValues = [
+    { "number": 0 },
+    { "number": 0 },
+    { "number": 1 },
+    { "number": 2 },
+    { "number": 3 },
+    { "number": 4 },
+    { "number": 5 },
+    { "number": 6 },
+    { "number": 7 },
+    { "number": 8 },
+  ];
+  testLines("gridWithRows", lines, expectedValues);
+
+  SimpleTest.finish();
+}
+</script>
+</head>
+<body onLoad="runTests();">
+
+<div id="gridWithColumns" class="wrapper repeatColumns">
+<div style="grid-column: -9">A</div>
+<div style="grid-column: 4">B</div>
+<div style="grid-column: 7">C</div>
+</div>
+
+<div id="gridWithRows" class="wrapper repeatRows">
+<div style="grid-row: span 3 / 2">A</div>
+<div style="grid-row: 4">B</div>
+<div style="grid-row: 5">C</div>
+<div style="grid-row: span 2 / 8">D</div>
+</div>
+
+</body>
+</html>