mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-01-08 12:22:34 +00:00
Bug 1347823 - Part 3: Add a test case. r=smaug
MozReview-Commit-ID: 9zwD0m1tknN --HG-- extra : rebase_source : e98798b8d224596468c096ef8b69c7c67e6241ac
This commit is contained in:
parent
ada8242de0
commit
d158894b17
@ -49,6 +49,7 @@ support-files =
|
||||
|
||||
[browser_bug1206879.js]
|
||||
[browser_bug1309900_crossProcessHistoryNavigation.js]
|
||||
[browser_bug1347823.js]
|
||||
[browser_bug134911.js]
|
||||
[browser_bug234628-1.js]
|
||||
[browser_bug234628-10.js]
|
||||
|
67
docshell/test/browser/browser_bug1347823.js
Normal file
67
docshell/test/browser/browser_bug1347823.js
Normal file
@ -0,0 +1,67 @@
|
||||
/**
|
||||
* Test that session history's expiration tracker would remove bfcache on
|
||||
* expiration.
|
||||
*/
|
||||
|
||||
// With bfcache not expired.
|
||||
add_task(async function testValidCache() {
|
||||
// Make an unrealistic large timeout.
|
||||
await SpecialPowers.pushPrefEnv({
|
||||
set: [["browser.sessionhistory.contentViewerTimeout", 86400]]
|
||||
});
|
||||
|
||||
await BrowserTestUtils.withNewTab(
|
||||
{gBrowser, url: "data:text/html;charset=utf-8,page1"},
|
||||
async function(browser) {
|
||||
// Make a simple modification for bfcache testing.
|
||||
await ContentTask.spawn(browser, null, () => {
|
||||
content.document.body.textContent = "modified";
|
||||
});
|
||||
|
||||
// Load a random page.
|
||||
BrowserTestUtils.loadURI(browser, "data:text/html;charset=utf-8,page2");
|
||||
await BrowserTestUtils.browserLoaded(browser);
|
||||
|
||||
// Go back and verify text content.
|
||||
let awaitPageShow = BrowserTestUtils.waitForContentEvent(browser, "pageshow");
|
||||
browser.goBack();
|
||||
await awaitPageShow;
|
||||
await ContentTask.spawn(browser, null, () => {
|
||||
is(content.document.body.textContent, "modified");
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// With bfcache expired.
|
||||
add_task(async function testExpiredCache() {
|
||||
// Make bfcache timeout in 1 sec.
|
||||
await SpecialPowers.pushPrefEnv({
|
||||
set: [["browser.sessionhistory.contentViewerTimeout", 1]]
|
||||
});
|
||||
|
||||
await BrowserTestUtils.withNewTab(
|
||||
{gBrowser, url: "data:text/html;charset=utf-8,page1"},
|
||||
async function(browser) {
|
||||
// Make a simple modification for bfcache testing.
|
||||
await ContentTask.spawn(browser, null, () => {
|
||||
content.document.body.textContent = "modified";
|
||||
});
|
||||
|
||||
// Load a random page.
|
||||
BrowserTestUtils.loadURI(browser, "data:text/html;charset=utf-8,page2");
|
||||
await BrowserTestUtils.browserLoaded(browser);
|
||||
|
||||
// Wait for 3 times of expiration timeout, hopefully it's evicted...
|
||||
await new Promise(resolve => {
|
||||
setTimeout(resolve, 3000);
|
||||
});
|
||||
|
||||
// Go back and verify text content.
|
||||
let awaitPageShow = BrowserTestUtils.waitForContentEvent(browser, "pageshow");
|
||||
browser.goBack();
|
||||
await awaitPageShow;
|
||||
await ContentTask.spawn(browser, null, () => {
|
||||
is(content.document.body.textContent, "page1");
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue
Block a user