Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
/* Any copyright is dedicated to the Public Domain.
"use strict";
const ORIG_STATE = SessionStore.getBrowserState();
registerCleanupFunction(async () => {
await SessionStoreTestUtils.promiseBrowserState(ORIG_STATE);
});
add_task(async function test_removeAllTabsBut_default_save_tab_groups() {
let win = await promiseNewWindowLoaded();
let tab1 = BrowserTestUtils.addTab(win.gBrowser, "about:robots");
let tab2 = BrowserTestUtils.addTab(win.gBrowser, "about:robots");
let tab3 = BrowserTestUtils.addTab(win.gBrowser, "about:robots");
let tabGroup = win.gBrowser.addTabGroup([tab2, tab3]);
let tabGroupId = tabGroup.id;
await TabStateFlusher.flushWindow(win);
Assert.equal(
SessionStore.getSavedTabGroups().length,
0,
"should not be any saved tab groups to start"
);
Assert.equal(
SessionStore.getClosedTabGroups(win).length,
0,
"should not be any closed tab groups to start"
);
Assert.equal(
SessionStore.getClosedTabDataForWindow(win).length,
0,
"should not be any closed tabs"
);
win.gBrowser.removeAllTabsBut(tab1);
await TestUtils.waitForCondition(
() => win.gBrowser.tabs.length == 1,
"waiting for other tabs to close"
);
await TabStateFlusher.flushWindow(win);
Assert.equal(
SessionStore.getSavedTabGroups().length,
1,
"should have saved a tab group"
);
Assert.ok(
SessionStore.getSavedTabGroup(tabGroupId),
"should have saved the tab group that was closed"
);
Assert.equal(
SessionStore.getClosedTabGroups(win).length,
0,
"should only have saved the tab group, not deleted it"
);
Assert.equal(
SessionStore.getClosedTabDataForWindow(win).length,
0,
"should not be any closed tabs"
);
await BrowserTestUtils.closeWindow(win);
forgetClosedWindows();
forgetSavedTabGroups();
});
add_task(async function test_removeAllTabsBut_suppress_saving_tab_groups() {
let win = await promiseNewWindowLoaded();
let tab1 = BrowserTestUtils.addTab(win.gBrowser, "about:robots");
let tab2 = BrowserTestUtils.addTab(win.gBrowser, "about:robots");
let tab3 = BrowserTestUtils.addTab(win.gBrowser, "about:robots");
win.gBrowser.addTabGroup([tab2, tab3]);
await TabStateFlusher.flushWindow(win);
Assert.equal(
SessionStore.getSavedTabGroups().length,
0,
"should not be any saved tab groups to start"
);
Assert.equal(
SessionStore.getClosedTabGroups(win).length,
0,
"should not be any closed tab groups to start"
);
Assert.equal(
SessionStore.getClosedTabDataForWindow(win).length,
0,
"should not be any closed tabs"
);
win.gBrowser.removeAllTabsBut(tab1, { skipSessionStore: true });
await TestUtils.waitForCondition(
() => win.gBrowser.tabs.length == 1,
"waiting for other tabs to close"
);
await TabStateFlusher.flushWindow(win);
Assert.equal(
SessionStore.getSavedTabGroups().length,
0,
"should not have saved the tab group"
);
Assert.equal(
SessionStore.getClosedTabGroups(win),
0,
"should still not have any deleted tab groups"
);
Assert.equal(
SessionStore.getClosedTabDataForWindow(win).length,
0,
"should be 0 closed tabs"
);
await BrowserTestUtils.closeWindow(win);
forgetClosedWindows();
forgetSavedTabGroups();
});