browser_firefoxView_selected_restore.js (2192B)
1 /* Any copyright is dedicated to the Public Domain. 2 * http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 const { _LastSession } = ChromeUtils.importESModule( 5 "resource:///modules/sessionstore/SessionStore.sys.mjs" 6 ); 7 const { sinon } = ChromeUtils.importESModule( 8 "resource://testing-common/Sinon.sys.mjs" 9 ); 10 11 const state = { 12 windows: [ 13 { 14 tabs: [ 15 { 16 entries: [ 17 { 18 url: "https://example.org/", 19 triggeringPrincipal_base64, 20 }, 21 ], 22 }, 23 ], 24 selected: 2, 25 }, 26 ], 27 }; 28 29 add_task(async function test_firefox_view_selected_tab() { 30 let fxViewBtn = document.getElementById("firefox-view-button"); 31 ok(fxViewBtn, "Got the Firefox View button"); 32 fxViewBtn.click(); 33 34 await BrowserTestUtils.browserLoaded( 35 window.FirefoxViewHandler.tab.linkedBrowser 36 ); 37 38 let allTabsRestored = promiseSessionStoreLoads(1); 39 40 _LastSession.setState(state); 41 42 is(gBrowser.tabs.length, 2, "Number of tabs is 2"); 43 44 ss.restoreLastSession(); 45 46 await allTabsRestored; 47 48 ok( 49 window.FirefoxViewHandler.tab.selected, 50 "The Firefox View tab is selected and the browser window did not close" 51 ); 52 is(gBrowser.tabs.length, 3, "Number of tabs is 3"); 53 54 gBrowser.removeTab(window.FirefoxViewHandler.tab); 55 gBrowser.removeTab(gBrowser.selectedTab); 56 }); 57 58 add_task(async function test_firefox_view_previously_selected() { 59 let fxViewBtn = document.getElementById("firefox-view-button"); 60 ok(fxViewBtn, "Got the Firefox View button"); 61 fxViewBtn.click(); 62 63 await BrowserTestUtils.browserLoaded( 64 window.FirefoxViewHandler.tab.linkedBrowser 65 ); 66 67 let tab = gBrowser.tabs[1]; 68 gBrowser.selectedTab = tab; 69 70 let allTabsRestored = promiseSessionStoreLoads(1); 71 72 _LastSession.setState(state); 73 74 is(gBrowser.tabs.length, 2, "Number of tabs is 2"); 75 76 ss.restoreLastSession(); 77 78 await allTabsRestored; 79 80 ok( 81 window.FirefoxViewHandler.tab.selected, 82 "The Firefox View tab is selected and the browser window did not close" 83 ); 84 is(gBrowser.tabs.length, 3, "Number of tabs is 3"); 85 86 gBrowser.removeTab(window.FirefoxViewHandler.tab); 87 gBrowser.removeTab(gBrowser.selectedTab); 88 });