summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/general/browser_visibleFindSelection.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/base/content/test/general/browser_visibleFindSelection.js')
-rw-r--r--browser/base/content/test/general/browser_visibleFindSelection.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/browser/base/content/test/general/browser_visibleFindSelection.js b/browser/base/content/test/general/browser_visibleFindSelection.js
new file mode 100644
index 000000000..630490644
--- /dev/null
+++ b/browser/base/content/test/general/browser_visibleFindSelection.js
@@ -0,0 +1,52 @@
+add_task(function*() {
+ const childContent = "<div style='position: absolute; left: 2200px; background: green; width: 200px; height: 200px;'>" +
+ "div</div><div style='position: absolute; left: 0px; background: red; width: 200px; height: 200px;'>" +
+ "<span id='s'>div</span></div>";
+
+ let tab = gBrowser.selectedTab = gBrowser.addTab();
+
+ yield promiseTabLoadEvent(tab, "data:text/html," + escape(childContent));
+ yield SimpleTest.promiseFocus(gBrowser.selectedBrowser.contentWindowAsCPOW);
+
+ let findBarOpenPromise = promiseWaitForEvent(gBrowser, "findbaropen");
+ EventUtils.synthesizeKey("f", { accelKey: true });
+ yield findBarOpenPromise;
+
+ ok(gFindBarInitialized, "find bar is now initialized");
+
+ // Finds the div in the green box.
+ let scrollPromise = promiseWaitForEvent(gBrowser, "scroll");
+ EventUtils.synthesizeKey("d", {});
+ EventUtils.synthesizeKey("i", {});
+ EventUtils.synthesizeKey("v", {});
+ yield scrollPromise;
+
+ // Wait for one paint to ensure we've processed the previous key events and scrolling.
+ yield ContentTask.spawn(gBrowser.selectedBrowser, null, function* () {
+ return new Promise(
+ resolve => {
+ content.requestAnimationFrame(() => {
+ setTimeout(resolve, 0);
+ });
+ }
+ );
+ });
+
+ // Finds the div in the red box.
+ scrollPromise = promiseWaitForEvent(gBrowser, "scroll");
+ EventUtils.synthesizeKey("g", { accelKey: true });
+ yield scrollPromise;
+
+ yield ContentTask.spawn(gBrowser.selectedBrowser, null, function* () {
+ Assert.ok(content.document.getElementById("s").getBoundingClientRect().left >= 0,
+ "scroll should include find result");
+ });
+
+ // clear the find bar
+ EventUtils.synthesizeKey("a", { accelKey: true });
+ EventUtils.synthesizeKey("VK_DELETE", { });
+
+ gFindBar.close();
+ gBrowser.removeCurrentTab();
+});
+