mirror of
https://github.com/Feodor2/Mypal68.git
synced 2025-06-18 23:05:40 -04:00
106 lines
2.5 KiB
JavaScript
106 lines
2.5 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
// Only windows with open tabs are restorable. Windows where a lone tab is
|
|
// detached may have _closedTabs, but is left with just an empty tab.
|
|
const STATES = [
|
|
{
|
|
shouldBeAdded: true,
|
|
windowState: {
|
|
windows: [
|
|
{
|
|
tabs: [
|
|
{
|
|
entries: [
|
|
{
|
|
url: "http://example.com",
|
|
triggeringPrincipal_base64,
|
|
title: "example.com",
|
|
},
|
|
],
|
|
},
|
|
],
|
|
selected: 1,
|
|
_closedTabs: [],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
shouldBeAdded: false,
|
|
windowState: {
|
|
windows: [
|
|
{
|
|
tabs: [{ entries: [] }],
|
|
_closedTabs: [],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
shouldBeAdded: false,
|
|
windowState: {
|
|
windows: [
|
|
{
|
|
tabs: [{ entries: [] }],
|
|
_closedTabs: [
|
|
{
|
|
state: {
|
|
entries: [
|
|
{
|
|
url: "http://example.com",
|
|
triggeringPrincipal_base64,
|
|
index: 1,
|
|
},
|
|
],
|
|
},
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
shouldBeAdded: false,
|
|
windowState: {
|
|
windows: [
|
|
{
|
|
tabs: [{ entries: [] }],
|
|
_closedTabs: [],
|
|
extData: { keyname: "pi != " + Math.random() },
|
|
},
|
|
],
|
|
},
|
|
},
|
|
];
|
|
|
|
add_task(async function test_bug_490040() {
|
|
for (let state of STATES) {
|
|
// Ensure we can store the window if needed.
|
|
let startingClosedWindowCount = ss.getClosedWindowCount();
|
|
await pushPrefs([
|
|
"browser.sessionstore.max_windows_undo",
|
|
startingClosedWindowCount + 1,
|
|
]);
|
|
|
|
let curClosedWindowCount = ss.getClosedWindowCount();
|
|
let win = await BrowserTestUtils.openNewBrowserWindow();
|
|
|
|
await setWindowState(win, state.windowState, true);
|
|
if (state.windowState.windows[0].tabs.length) {
|
|
await BrowserTestUtils.browserLoaded(win.gBrowser.selectedBrowser);
|
|
}
|
|
|
|
await BrowserTestUtils.closeWindow(win);
|
|
|
|
is(
|
|
ss.getClosedWindowCount(),
|
|
curClosedWindowCount + (state.shouldBeAdded ? 1 : 0),
|
|
"That window should " +
|
|
(state.shouldBeAdded ? "" : "not ") +
|
|
"be restorable"
|
|
);
|
|
}
|
|
});
|