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