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