tor-browser

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

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