Bug 1258896 - Make the scroll position check in test_mousecapture a little fuzzier to allow for scroll event coalescing. r?Gijs draft
authorKartikaya Gupta <kgupta@mozilla.com>
Thu, 05 May 2016 12:28:09 -0400
changeset 363821 daf4c2c681c5f705ec6fd8abe0de5bac7179c361
parent 363790 29662e28a9c93ac67ee0b8ddfb65a9f29bbf73f5
child 520137 17879a54f7cbcdf08865f94675bfdb063d7c9fdf
push id17308
push userkgupta@mozilla.com
push dateThu, 05 May 2016 16:28:28 +0000
reviewersGijs
bugs1258896
milestone49.0a1
Bug 1258896 - Make the scroll position check in test_mousecapture a little fuzzier to allow for scroll event coalescing. r?Gijs MozReview-Commit-ID: LdmaJHeb7rl
toolkit/content/tests/mochitest/test_mousecapture.xhtml
--- a/toolkit/content/tests/mochitest/test_mousecapture.xhtml
+++ b/toolkit/content/tests/mochitest/test_mousecapture.xhtml
@@ -71,20 +71,26 @@ function selectionScrollCheck()
     if (count++ < 6)
       return;
 
     otherWindow.removeEventListener("scroll", selectionScrollDone, false);
 
     var selectedText = otherWindow.getSelection().toString().replace(/\r/g, "");
     is(selectedText, "One\n\nTwo", "text is selected");
 
-    // should have scrolled 20 pixels from the mousemove above and six extra
-    // times from the selection scroll timer for a total of 140
-    var oldScrollY = otherWindow.scrollY;
-    is(otherWindow.scrollY, 140, "selection scroll position after timer");
+    // should have scrolled 20 pixels from the mousemove above and at least 6
+    // extra 20-pixel increments from the selection scroll timer. "At least 6"
+    // because we waited for 6 scroll events but multiple scrolls could get
+    // coalesced into a single scroll event. Therefore we allow 6-15 scrolls,
+    // which corresponds to a scroll position of 140 to 320. The 15 is chosen
+    // arbitrarily and can be adjusted.
+    var scrollY = otherWindow.scrollY;
+    ok(scrollY >= 140, "selection scroll position after timer is at least 140");
+    ok(scrollY <= 320, "selection scroll position after timer is not more than 320");
+    ok((scrollY % 20) == 0, "selection scroll position after timer is multiple of 20");
 
     synthesizeMouse(element, 4, otherWindow.innerHeight + 25, { type: "mouseup" }, otherWindow);
     disableNonTestMouseEvents(false);
     otherWindow.close();
 
     if (loadInWindow) {
       SimpleTest.finish();
     }