tor-browser

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

test_HomePage.js (2521B)


      1 /* Any copyright is dedicated to the Public Domain.
      2 * http://creativecommons.org/publicdomain/zero/1.0/
      3 */
      4 
      5 "use strict";
      6 
      7 ChromeUtils.defineESModuleGetters(this, {
      8  HomePage: "resource:///modules/HomePage.sys.mjs",
      9  RemoteSettings: "resource://services-settings/remote-settings.sys.mjs",
     10  sinon: "resource://testing-common/Sinon.sys.mjs",
     11 });
     12 
     13 const HOMEPAGE_IGNORELIST = "homepage-urls";
     14 
     15 /**
     16 * Provides a basic set of remote settings for use in tests.
     17 */
     18 async function setupRemoteSettings() {
     19  const settings = await RemoteSettings("hijack-blocklists");
     20  sinon.stub(settings, "get").returns([
     21    {
     22      id: HOMEPAGE_IGNORELIST,
     23      matches: ["ignore=me"],
     24      _status: "synced",
     25    },
     26  ]);
     27 }
     28 
     29 add_task(async function setup() {
     30  await setupRemoteSettings();
     31 });
     32 
     33 add_task(function test_HomePage() {
     34  Assert.ok(
     35    !HomePage.overridden,
     36    "Homepage should not be overriden by default."
     37  );
     38  let newvalue = "about:blank|about:newtab";
     39  HomePage.safeSet(newvalue);
     40  Assert.ok(HomePage.overridden, "Homepage should be overriden after set()");
     41  Assert.equal(HomePage.get(), newvalue, "Homepage should be ${newvalue}");
     42  Assert.notEqual(
     43    HomePage.getDefault(),
     44    newvalue,
     45    "Homepage should be ${newvalue}"
     46  );
     47  HomePage.reset();
     48  Assert.ok(
     49    !HomePage.overridden,
     50    "Homepage should not be overriden by after reset."
     51  );
     52  Assert.equal(
     53    HomePage.get(),
     54    HomePage.getDefault(),
     55    "Homepage and default should be equal after reset."
     56  );
     57 });
     58 
     59 add_task(function test_readLocalizedHomepage() {
     60  let newvalue = "data:text/plain,browser.startup.homepage%3Dabout%3Alocalized";
     61  let complexvalue = Cc["@mozilla.org/pref-localizedstring;1"].createInstance(
     62    Ci.nsIPrefLocalizedString
     63  );
     64  complexvalue.data = newvalue;
     65  Services.prefs
     66    .getDefaultBranch(null)
     67    .setComplexValue(
     68      "browser.startup.homepage",
     69      Ci.nsIPrefLocalizedString,
     70      complexvalue
     71    );
     72  Assert.ok(!HomePage.overridden, "Complex value only works as default");
     73  Assert.equal(HomePage.get(), "about:localized", "Get value from bundle");
     74 });
     75 
     76 add_task(function test_recoverEmptyHomepage() {
     77  Assert.ok(
     78    !HomePage.overridden,
     79    "Homepage should not be overriden by default."
     80  );
     81  Services.prefs.setStringPref("browser.startup.homepage", "");
     82  Assert.ok(HomePage.overridden, "Homepage is overriden with empty string.");
     83  Assert.equal(HomePage.get(), HomePage.getDefault(), "Recover is default");
     84  Assert.ok(!HomePage.overridden, "Recover should have set default");
     85 });