tor-browser

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

test_ext_distribution_popup.js (1546B)


      1 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
      2 /* vim: set sts=2 sw=2 et tw=80: */
      3 
      4 "use strict";
      5 
      6 ChromeUtils.defineESModuleGetters(this, {
      7  ExtensionControlledPopup:
      8    "resource:///modules/ExtensionControlledPopup.sys.mjs",
      9  ExtensionSettingsStore:
     10    "resource://gre/modules/ExtensionSettingsStore.sys.mjs",
     11 });
     12 
     13 /*
     14 * This function is a unit test for distributions disabling the ExtensionControlledPopup.
     15 */
     16 add_task(async function testDistributionPopup() {
     17  let distExtId = "ext-distribution@mochi.test";
     18  Services.prefs.setCharPref(
     19    `extensions.installedDistroAddon.${distExtId}`,
     20    true
     21  );
     22  let extension = ExtensionTestUtils.loadExtension({
     23    manifest: {
     24      browser_specific_settings: { gecko: { id: distExtId } },
     25      name: "Ext Distribution",
     26    },
     27  });
     28 
     29  let userExtId = "ext-user@mochi.test";
     30  let userExtension = ExtensionTestUtils.loadExtension({
     31    manifest: {
     32      browser_specific_settings: { gecko: { id: userExtId } },
     33      name: "Ext User Installed",
     34    },
     35  });
     36 
     37  await extension.startup();
     38  await userExtension.startup();
     39  await ExtensionSettingsStore.initialize();
     40 
     41  let confirmedType = "extension-controlled-confirmed";
     42  equal(
     43    new ExtensionControlledPopup({ confirmedType }).userHasConfirmed(distExtId),
     44    true,
     45    "The popup has been disabled."
     46  );
     47 
     48  equal(
     49    new ExtensionControlledPopup({ confirmedType }).userHasConfirmed(userExtId),
     50    false,
     51    "The popup has not been disabled."
     52  );
     53 
     54  await extension.unload();
     55  await userExtension.unload();
     56 });