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 });