tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

browser_tab_groups_save_on_removeAllTabsBut.js (3364B)


      1 /* Any copyright is dedicated to the Public Domain.
      2   https://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 "use strict";
      5 
      6 const ORIG_STATE = SessionStore.getBrowserState();
      7 
      8 registerCleanupFunction(async () => {
      9  await SessionStoreTestUtils.promiseBrowserState(ORIG_STATE);
     10 });
     11 
     12 add_task(async function test_removeAllTabsBut_default_save_tab_groups() {
     13  let win = await promiseNewWindowLoaded();
     14  let tab1 = BrowserTestUtils.addTab(win.gBrowser, "about:robots");
     15  let tab2 = BrowserTestUtils.addTab(win.gBrowser, "about:robots");
     16  let tab3 = BrowserTestUtils.addTab(win.gBrowser, "about:robots");
     17 
     18  let tabGroup = win.gBrowser.addTabGroup([tab2, tab3]);
     19  let tabGroupId = tabGroup.id;
     20 
     21  await TabStateFlusher.flushWindow(win);
     22 
     23  Assert.equal(
     24    SessionStore.getSavedTabGroups().length,
     25    0,
     26    "should not be any saved tab groups to start"
     27  );
     28  Assert.equal(
     29    SessionStore.getClosedTabGroups(win).length,
     30    0,
     31    "should not be any closed tab groups to start"
     32  );
     33  Assert.equal(
     34    SessionStore.getClosedTabDataForWindow(win).length,
     35    0,
     36    "should not be any closed tabs"
     37  );
     38 
     39  win.gBrowser.removeAllTabsBut(tab1);
     40 
     41  await TestUtils.waitForCondition(
     42    () => win.gBrowser.tabs.length == 1,
     43    "waiting for other tabs to close"
     44  );
     45 
     46  await TabStateFlusher.flushWindow(win);
     47 
     48  Assert.equal(
     49    SessionStore.getSavedTabGroups().length,
     50    1,
     51    "should have saved a tab group"
     52  );
     53  Assert.ok(
     54    SessionStore.getSavedTabGroup(tabGroupId),
     55    "should have saved the tab group that was closed"
     56  );
     57  Assert.equal(
     58    SessionStore.getClosedTabGroups(win).length,
     59    0,
     60    "should only have saved the tab group, not deleted it"
     61  );
     62  Assert.equal(
     63    SessionStore.getClosedTabDataForWindow(win).length,
     64    0,
     65    "should not be any closed tabs"
     66  );
     67 
     68  await BrowserTestUtils.closeWindow(win);
     69  forgetClosedWindows();
     70  forgetSavedTabGroups();
     71 });
     72 
     73 add_task(async function test_removeAllTabsBut_suppress_saving_tab_groups() {
     74  let win = await promiseNewWindowLoaded();
     75  let tab1 = BrowserTestUtils.addTab(win.gBrowser, "about:robots");
     76  let tab2 = BrowserTestUtils.addTab(win.gBrowser, "about:robots");
     77  let tab3 = BrowserTestUtils.addTab(win.gBrowser, "about:robots");
     78 
     79  win.gBrowser.addTabGroup([tab2, tab3]);
     80 
     81  await TabStateFlusher.flushWindow(win);
     82 
     83  Assert.equal(
     84    SessionStore.getSavedTabGroups().length,
     85    0,
     86    "should not be any saved tab groups to start"
     87  );
     88  Assert.equal(
     89    SessionStore.getClosedTabGroups(win).length,
     90    0,
     91    "should not be any closed tab groups to start"
     92  );
     93  Assert.equal(
     94    SessionStore.getClosedTabDataForWindow(win).length,
     95    0,
     96    "should not be any closed tabs"
     97  );
     98 
     99  win.gBrowser.removeAllTabsBut(tab1, { skipSessionStore: true });
    100 
    101  await TestUtils.waitForCondition(
    102    () => win.gBrowser.tabs.length == 1,
    103    "waiting for other tabs to close"
    104  );
    105 
    106  await TabStateFlusher.flushWindow(win);
    107 
    108  Assert.equal(
    109    SessionStore.getSavedTabGroups().length,
    110    0,
    111    "should not have saved the tab group"
    112  );
    113  Assert.equal(
    114    SessionStore.getClosedTabGroups(win),
    115    0,
    116    "should still not have any deleted tab groups"
    117  );
    118  Assert.equal(
    119    SessionStore.getClosedTabDataForWindow(win).length,
    120    0,
    121    "should be 0 closed tabs"
    122  );
    123 
    124  await BrowserTestUtils.closeWindow(win);
    125  forgetClosedWindows();
    126  forgetSavedTabGroups();
    127 });