forked from mirrors/gecko-dev
		
	 3c0c3a2676
			
		
	
	
		3c0c3a2676
		
	
	
	
	
		
			
			This patch was generated as follows: Run: `./mach esmify --imports . --prefix=toolkit/mozapps/extensions/AddonManager` In the output there are linter/prettifier errors due to unused XPCOMUtils or separate importESModule calls. These have been fixed manually and verified with `./mach lint --outgoing`. The `esmify` script also inserts many unwanted newlines around imports that are broken on two lines due to length. Due to the number of these, I fixed them programatically. 1. Create patch from the changes so far. 2. From the patch, delete all lines that consist of "+" (i.e. added blank line). 3. Reset the working dir and apply the revised patch. 4. Verify that the diff between step 1 and 3 looks reasonable. 5. Verify that this patch as a whole looks reasonable. Commands: ``` git diff > rename.diff :%g/^+$/d git commit -va -m WIP-rename git revert HEAD git apply --recount rename.diff git diff HEAD^ # and verify that the removed lines are ok. git commit -va # one last review to verify correctness of whole patch. git rebase -i HEAD~3 # drop the WIP + reverted commit, pick only the last. ``` `git apply` has the `--recount` option to force it to ignore mismatches in line counts, which happens because we deleted added lines (^+$) without fixing up the line counts in the file headers. Differential Revision: https://phabricator.services.mozilla.com/D179874
		
			
				
	
	
		
			83 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* Any copyright is dedicated to the Public Domain.
 | |
|  * http://creativecommons.org/publicdomain/zero/1.0/ */
 | |
| "use strict";
 | |
| 
 | |
| const { AddonTestUtils } = ChromeUtils.importESModule(
 | |
|   "resource://testing-common/AddonTestUtils.sys.mjs"
 | |
| );
 | |
| const { AddonManager } = ChromeUtils.importESModule(
 | |
|   "resource://gre/modules/AddonManager.sys.mjs"
 | |
| );
 | |
| 
 | |
| AddonTestUtils.init(this);
 | |
| AddonTestUtils.overrideCertDB();
 | |
| AddonTestUtils.appInfo = getAppInfo();
 | |
| 
 | |
| const server = AddonTestUtils.createHttpServer({ hosts: ["example.com"] });
 | |
| const BASE_URL = `http://example.com/data`;
 | |
| 
 | |
| let addonID = "policytest2@mozilla.com";
 | |
| 
 | |
| add_task(async function setup() {
 | |
|   await AddonTestUtils.promiseStartupManager();
 | |
| 
 | |
|   let webExtensionFile = AddonTestUtils.createTempWebExtensionFile({
 | |
|     manifest: {
 | |
|       browser_specific_settings: {
 | |
|         gecko: {
 | |
|           id: addonID,
 | |
|         },
 | |
|       },
 | |
|     },
 | |
|   });
 | |
| 
 | |
|   server.registerFile("/data/policy_test.xpi", webExtensionFile);
 | |
| });
 | |
| 
 | |
| add_task(async function test_addon_forceinstalled_remote() {
 | |
|   await Promise.all([
 | |
|     AddonTestUtils.promiseInstallEvent("onInstallEnded"),
 | |
|     setupPolicyEngineWithJson({
 | |
|       policies: {
 | |
|         Extensions: {
 | |
|           Install: [BASE_URL + "/policy_test.xpi"],
 | |
|           Locked: [addonID],
 | |
|         },
 | |
|       },
 | |
|     }),
 | |
|   ]);
 | |
|   let addon = await AddonManager.getAddonByID(addonID);
 | |
|   notEqual(addon, null, "Addon should not be null");
 | |
|   equal(addon.appDisabled, false, "Addon should not be disabled");
 | |
|   equal(
 | |
|     addon.permissions & AddonManager.PERM_CAN_UNINSTALL,
 | |
|     0,
 | |
|     "Addon should not be able to be uninstalled."
 | |
|   );
 | |
|   equal(
 | |
|     addon.permissions & AddonManager.PERM_CAN_DISABLE,
 | |
|     0,
 | |
|     "Addon should not be able to be disabled."
 | |
|   );
 | |
|   await addon.uninstall();
 | |
| });
 | |
| 
 | |
| add_task(async function test_addon_forceinstalled_local() {
 | |
|   let addonID2 = "policytest@mozilla.com";
 | |
| 
 | |
|   let file = Services.dirsvc.get("CurWorkD", Ci.nsIFile);
 | |
|   file.append("policytest_v0.1.xpi");
 | |
|   await Promise.all([
 | |
|     AddonTestUtils.promiseInstallEvent("onInstallEnded"),
 | |
|     setupPolicyEngineWithJson({
 | |
|       policies: {
 | |
|         Extensions: {
 | |
|           Install: [file.path],
 | |
|         },
 | |
|       },
 | |
|     }),
 | |
|   ]);
 | |
|   let addon = await AddonManager.getAddonByID(addonID2);
 | |
|   notEqual(addon, null, "Addon should not be null");
 | |
|   await addon.uninstall();
 | |
| });
 |