browser_startup_browser_restore_session.js (2319B)
1 /* Any copyright is dedicated to the Public Domain. 2 * http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 /** 7 * Tests for "Open previous windows 8 * and tabs" checkbox on about:preferences. 9 */ 10 11 registerCleanupFunction(() => { 12 gBrowser.removeCurrentTab(); 13 }); 14 15 add_setup(async function () { 16 await openPreferencesViaOpenPreferencesAPI("general", { leaveOpen: true }); 17 }); 18 19 add_task(async function test_startup_browser_restore() { 20 const PREF = "browser.privatebrowsing.autostart"; 21 const FALSE_INITIAL_VALUE = false; 22 23 /** 24 * Assume pref is set to false initially. 25 */ 26 Services.prefs.setBoolPref(PREF, FALSE_INITIAL_VALUE); 27 28 const { document } = gBrowser.contentWindow; 29 let browserRestoreSession = document.getElementById("browserRestoreSession"); 30 const { parentElement: control } = browserRestoreSession; 31 const checkbox = control.querySelector("moz-checkbox"); 32 33 is( 34 browserRestoreSession.localName, 35 "moz-checkbox", 36 "Checkbox is a moz-checkbox." 37 ); 38 39 ok(!control.hidden, "Control element is visible by default"); 40 41 ok(!checkbox.disabled, "Checkbox is NOT disabled by default"); 42 43 ok(!checkbox.checked, "Checkbox is NOT checked by default"); 44 45 is( 46 content.document.l10n.getAttributes(browserRestoreSession).id, 47 "startup-restore-windows-and-tabs", 48 `Checkbox has the correct data-l10n-id attribute` 49 ); 50 51 Services.prefs.setBoolPref(PREF, true); 52 await control.updateComplete; 53 54 ok(checkbox.disabled, "Checkbox is disabled after pref is set to true"); 55 56 /** 57 * Re-enable control. 58 */ 59 Services.prefs.setBoolPref(PREF, FALSE_INITIAL_VALUE); 60 await control.updateComplete; 61 62 Services.prefs.setIntPref("browser.startup.page", 0); 63 64 ok( 65 !checkbox.checked, 66 "Checkbox is NOT checked after browser.startup.page is set to 0 = STARTUP_PREF_BLANK" 67 ); 68 69 Services.prefs.setIntPref("browser.startup.page", 1); 70 await control.updateComplete; 71 72 ok( 73 !checkbox.checked, 74 "Checkbox is still NOT checked after changing browser.startup.page to 1 = STARTUP_PREF_HOMEPAGE" 75 ); 76 77 Services.prefs.setIntPref("browser.startup.page", 3); 78 await control.updateComplete; 79 80 ok( 81 checkbox.checked, 82 "Checkbox is checked after changing browser.startup.page to 3 = STARTUP_PREF_RESTORE_SESSION" 83 ); 84 85 Services.prefs.clearUserPref(PREF); 86 });