mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-20 16:55:40 +00:00
f9f5914039
# ignore-this-changeset Differential Revision: https://phabricator.services.mozilla.com/D36041 --HG-- extra : source : 96b3895a3b2aa2fcb064c85ec5857b7216884556
60 lines
1.6 KiB
JavaScript
60 lines
1.6 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
const URL = "http://mochi.test:8888/browser/";
|
|
const PREF = "browser.sessionstore.restore_on_demand";
|
|
|
|
function test() {
|
|
waitForExplicitFinish();
|
|
|
|
Services.prefs.setBoolPref(PREF, true);
|
|
registerCleanupFunction(function() {
|
|
Services.prefs.clearUserPref(PREF);
|
|
});
|
|
|
|
preparePendingTab(function(aTab) {
|
|
let win = gBrowser.replaceTabWithWindow(aTab);
|
|
|
|
whenDelayedStartupFinished(win, function() {
|
|
let [tab] = win.gBrowser.tabs;
|
|
|
|
whenLoaded(tab.linkedBrowser, function() {
|
|
is(
|
|
tab.linkedBrowser.currentURI.spec,
|
|
URL,
|
|
"correct url should be loaded"
|
|
);
|
|
ok(!tab.hasAttribute("pending"), "tab should not be pending");
|
|
|
|
win.close();
|
|
finish();
|
|
});
|
|
});
|
|
});
|
|
}
|
|
|
|
function preparePendingTab(aCallback) {
|
|
let tab = BrowserTestUtils.addTab(gBrowser, URL);
|
|
|
|
whenLoaded(tab.linkedBrowser, function() {
|
|
let sessionUpdatePromise = BrowserTestUtils.waitForSessionStoreUpdate(tab);
|
|
BrowserTestUtils.removeTab(tab);
|
|
sessionUpdatePromise.then(() => {
|
|
let [{ state }] = JSON.parse(SessionStore.getClosedTabData(window));
|
|
|
|
tab = BrowserTestUtils.addTab(gBrowser, "about:blank");
|
|
whenLoaded(tab.linkedBrowser, function() {
|
|
SessionStore.setTabState(tab, JSON.stringify(state));
|
|
ok(tab.hasAttribute("pending"), "tab should be pending");
|
|
aCallback(tab);
|
|
});
|
|
});
|
|
});
|
|
}
|
|
|
|
function whenLoaded(aBrowser, aCallback) {
|
|
BrowserTestUtils.browserLoaded(aBrowser).then(() => {
|
|
executeSoon(aCallback);
|
|
});
|
|
}
|