Bug 1257938 part 2: Remove separation between test_position_sticky.html & its helper-file, now that it doesn't need to tweak a pref. r=corey
authorDaniel Holbert <dholbert@cs.stanford.edu>
Sun, 20 Mar 2016 23:06:42 -0700
changeset 289684 a76f6237641fc0720f9d9a8cebab335d0e8434c6
parent 289683 ad57442dddb68b4dd53dd28f370be15035021240
child 289685 ba8af3fc0676f40d206c2133d71bc873cdec2e3d
push id19656
push usergwagner@mozilla.com
push dateMon, 04 Apr 2016 13:43:23 +0000
treeherderb2g-inbound@e99061fde28a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerscorey
bugs1257938
milestone48.0a1
Bug 1257938 part 2: Remove separation between test_position_sticky.html & its helper-file, now that it doesn't need to tweak a pref. r=corey MozReview-Commit-ID: 7aUlaBP1OK
layout/style/test/file_position_sticky.html
layout/style/test/mochitest.ini
layout/style/test/test_position_sticky.html
deleted file mode 100644
--- a/layout/style/test/file_position_sticky.html
+++ /dev/null
@@ -1,88 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=886646
--->
-<head>
-  <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
-  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
-  <style type="text/css">
-    #scroller {
-      width: 100px;
-      height: 100px;
-      padding: 10px;
-      border: 10px solid black;
-      margin: 10px;
-      overflow: hidden;
-    }
-    #container {
-      width: 50px;
-      height: 50px;
-    }
-    #sticky {
-      position: sticky;
-      width: 10px;
-      height: 10px;
-      overflow: hidden;
-    }
-  </style>
-</head>
-<body>
-<div id="display">
-  <div id="scroller">
-    <div id="container">
-      <div id="sticky"></div>
-    </div>
-  </div>
-</div>
-<pre id="test">
-<script type="application/javascript">
-
-/** Test for Bug 886646 - sticky positioning offsets **/
-
-// Use "is()", "ok()", and "todo()" from parent document.
-var is = parent.is;
-var ok = parent.ok;
-var todo = parent.todo;
-
-// Test that percentage sticky offsets are computed in terms of the
-// scroll container's content box
-var offsets = {
-  "top":    10,
-  "left":   20,
-  "bottom": 30,
-  "right":  40,
-};
-var scroller = document.getElementById("scroller");
-var container = document.getElementById("container");
-var sticky = document.getElementById("sticky");
-var cs = getComputedStyle(sticky, "");
-
-for (var prop in offsets) {
-  sticky.style[prop] = offsets[prop] + "%";
-  is(cs[prop], offsets[prop] + "px");
-}
-
-// ... even in the presence of scrollbars
-scroller.style.overflow = "scroll";
-container.style.width = "100%";
-container.style.height = "100%";
-
-var ccs = getComputedStyle(container, "");
-
-function isApproximatelyEqual(a, b) {
-  return Math.abs(a - b) < 0.001;
-}
-
-for (var prop in offsets) {
-  sticky.style[prop] = offsets[prop] + "%";
-  var basis = parseFloat(ccs[prop == "left" || prop == "right" ?
-                             "width" : "height"]) / 100;
-  ok(isApproximatelyEqual(parseFloat(cs[prop]), offsets[prop] * basis));
-}
-
-parent.finish();
-</script>
-</pre>
-</body>
-</html>
--- a/layout/style/test/mochitest.ini
+++ b/layout/style/test/mochitest.ini
@@ -221,17 +221,16 @@ skip-if = (toolkit == 'gonk' && debug) |
 [test_parse_ident.html]
 [test_parse_rule.html]
 [test_parse_url.html]
 [test_parser_diagnostics_unprintables.html]
 [test_pixel_lengths.html]
 [test_pointer-events.html]
 [test_position_float_display.html]
 [test_position_sticky.html]
-support-files = file_position_sticky.html
 [test_priority_preservation.html]
 [test_property_database.html]
 [test_property_syntax_errors.html]
 skip-if = (toolkit == 'gonk' && debug) # Bug 1186224
 [test_pseudoelement_state.html]
 skip-if = (toolkit == 'gonk' && debug) #debug-only failure
 [test_pseudoelement_parsing.html]
 [test_redundant_font_download.html]
--- a/layout/style/test/test_position_sticky.html
+++ b/layout/style/test/test_position_sticky.html
@@ -3,39 +3,87 @@
 <!--
 https://bugzilla.mozilla.org/show_bug.cgi?id=886646
 -->
 <head>
   <meta charset="utf-8">
   <title>Test for Bug 886646</title>
   <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+  <style type="text/css">
+    #scroller {
+      width: 100px;
+      height: 100px;
+      padding: 10px;
+      border: 10px solid black;
+      margin: 10px;
+      overflow: hidden;
+    }
+    #container {
+      width: 50px;
+      height: 50px;
+    }
+    #sticky {
+      position: sticky;
+      width: 10px;
+      height: 10px;
+      overflow: hidden;
+    }
+  </style>
 </head>
 <body>
 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=886646">Mozilla Bug 886646</a>
 <div id="display">
-  <iframe id="iframe" style="height: 200px; width: 200px"></iframe>
+  <div id="scroller">
+    <div id="container">
+      <div id="sticky"></div>
+    </div>
+  </div>
 </div>
 <pre id="test">
 <script type="application/javascript">
 
-/** Test for Bug 886646 - sticky positioning offsets **/
+
+/** Test for Bug 886646 - Offsets for sticky positioning, when accessed through
+  * getComputedStyle(), should be accurately computed. In particular,
+  * percentage offsets should be computed in terms of the scroll container's
+  * content box. */
+
+// Test that percentage sticky offsets are computed in terms of the
+// scroll container's content box
+var offsets = {
+  "top":    10,
+  "left":   20,
+  "bottom": 30,
+  "right":  40,
+};
+
+var scroller = document.getElementById("scroller");
+var container = document.getElementById("container");
+var sticky = document.getElementById("sticky");
+var cs = getComputedStyle(sticky, "");
 
-/*
- * This mochitest runs in an iframe so that we can selectively turn on the
- * sticky about:config pref before its document is instantiated.
- *
- * See the iframe's source ("file_position_sticky.html") for the actual
- * test code and for more documentation.
- */
+for (var prop in offsets) {
+  sticky.style[prop] = offsets[prop] + "%";
+  is(cs[prop], offsets[prop] + "px");
+}
+
+// ... even in the presence of scrollbars
+scroller.style.overflow = "scroll";
+container.style.width = "100%";
+container.style.height = "100%";
 
-SimpleTest.waitForExplicitFinish();
+var ccs = getComputedStyle(container, "");
+
+function isApproximatelyEqual(a, b) {
+  return Math.abs(a - b) < 0.001;
+}
 
-// XXXdholbert I'll merge the iframe contents into this file in a later patch.
-document.getElementById("iframe").src = "file_position_sticky.html";
-
-function finish() {
-  SimpleTest.finish();
+for (var prop in offsets) {
+  sticky.style[prop] = offsets[prop] + "%";
+  var basis = parseFloat(ccs[prop == "left" || prop == "right" ?
+                             "width" : "height"]) / 100;
+  ok(isApproximatelyEqual(parseFloat(cs[prop]), offsets[prop] * basis));
 }
 </script>
 </pre>
 </body>
 </html>