summaryrefslogtreecommitdiffstats
path: root/toolkit/components/reader/tests/browser/browser_bug1780350_readerModeSaveScroll.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-15 03:35:49 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-15 03:35:49 +0000
commitd8bbc7858622b6d9c278469aab701ca0b609cddf (patch)
treeeff41dc61d9f714852212739e6b3738b82a2af87 /toolkit/components/reader/tests/browser/browser_bug1780350_readerModeSaveScroll.js
parentReleasing progress-linux version 125.0.3-1~progress7.99u1. (diff)
downloadfirefox-d8bbc7858622b6d9c278469aab701ca0b609cddf.tar.xz
firefox-d8bbc7858622b6d9c278469aab701ca0b609cddf.zip
Merging upstream version 126.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'toolkit/components/reader/tests/browser/browser_bug1780350_readerModeSaveScroll.js')
-rw-r--r--toolkit/components/reader/tests/browser/browser_bug1780350_readerModeSaveScroll.js70
1 files changed, 70 insertions, 0 deletions
diff --git a/toolkit/components/reader/tests/browser/browser_bug1780350_readerModeSaveScroll.js b/toolkit/components/reader/tests/browser/browser_bug1780350_readerModeSaveScroll.js
new file mode 100644
index 0000000000..76add5511e
--- /dev/null
+++ b/toolkit/components/reader/tests/browser/browser_bug1780350_readerModeSaveScroll.js
@@ -0,0 +1,70 @@
+/* eslint-disable @microsoft/sdl/no-insecure-url */
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+"use strict";
+
+const TEST_PATH = getRootDirectory(gTestPath).replace(
+ "chrome://mochitests/content",
+ "http://example.com"
+);
+
+// This test verifies that when a link is clicked from
+// within reader view, when navigating back to reader view
+// the previous scroll position of the page is restored.
+add_task(async function test_save_scroll_position() {
+ await BrowserTestUtils.withNewTab(
+ TEST_PATH + "readerModeArticleContainsLink.html",
+ async function (browser) {
+ let pageShownPromise = BrowserTestUtils.waitForContentEvent(
+ browser,
+ "AboutReaderContentReady"
+ );
+ let browserLoadedPromise = BrowserTestUtils.browserLoaded(browser);
+ let readerButton = document.getElementById("reader-mode-button");
+ readerButton.click();
+ await Promise.all([pageShownPromise, browserLoadedPromise]);
+ let scrollEventPromise = BrowserTestUtils.waitForContentEvent(
+ browser,
+ "scroll",
+ true
+ );
+ // Set scroll position in reader to 200px down.
+ await SpecialPowers.spawn(browser, [], async function () {
+ content.document.documentElement.scrollTop = 200;
+ });
+ await scrollEventPromise;
+
+ // Click linked page and check that scroll pos resets.
+ await SpecialPowers.spawn(browser, [], async function () {
+ let linkElement = content.document.getElementById("link");
+ linkElement.click();
+ });
+ await BrowserTestUtils.browserLoaded(browser);
+ await SpecialPowers.spawn(browser, [], async function () {
+ is(
+ content.document.documentElement.scrollTop,
+ 0,
+ "vertical scroll position should reset to zero when navigating to linked page."
+ );
+ content.window.history.back();
+ });
+
+ // Navigate back to reader and check that scroll position is restored.
+ await BrowserTestUtils.browserLoaded(browser);
+ scrollEventPromise = BrowserTestUtils.waitForContentEvent(
+ browser,
+ "scroll",
+ true
+ );
+ await scrollEventPromise;
+ await SpecialPowers.spawn(browser, [], async function () {
+ let doc = content.document;
+ is(
+ doc.documentElement.scrollTop,
+ 200,
+ "should restore saved scroll position when navigating back from link."
+ );
+ });
+ }
+ );
+});