Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
/* eslint-disable @microsoft/sdl/no-insecure-url */
/* Any copyright is dedicated to the Public Domain.
"use strict";
const TEST_PATH = getRootDirectory(gTestPath).replace(
);
// 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."
);
});
}
);
});