summaryrefslogtreecommitdiffstats
path: root/toolkit/mozapps/extensions/test/xpcshell/test_system_update_uninstall_check.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/mozapps/extensions/test/xpcshell/test_system_update_uninstall_check.js')
-rw-r--r--toolkit/mozapps/extensions/test/xpcshell/test_system_update_uninstall_check.js56
1 files changed, 56 insertions, 0 deletions
diff --git a/toolkit/mozapps/extensions/test/xpcshell/test_system_update_uninstall_check.js b/toolkit/mozapps/extensions/test/xpcshell/test_system_update_uninstall_check.js
new file mode 100644
index 0000000000..38ac3cf6b7
--- /dev/null
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_system_update_uninstall_check.js
@@ -0,0 +1,56 @@
+// Tests that system add-on doesnt uninstall while update.
+
+createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "2");
+
+let distroDir = FileUtils.getDir("ProfD", ["sysfeatures", "empty"], true);
+registerDirectory("XREAppFeat", distroDir);
+
+AddonTestUtils.usePrivilegedSignatures = "system";
+
+add_task(() => initSystemAddonDirs());
+
+const initialSetup = {
+ async setup() {
+ await buildPrefilledUpdatesDir();
+ distroDir.leafName = "empty";
+ },
+ initialState: [
+ { isUpgrade: false, version: null },
+ { isUpgrade: true, version: "2.0" },
+ ],
+};
+
+add_task(async function test_systems_update_uninstall_check() {
+ Services.prefs.setBoolPref(PREF_SYSTEM_ADDON_UPDATE_ENABLED, true);
+
+ await setupSystemAddonConditions(initialSetup, distroDir);
+
+ let updateXML = buildSystemAddonUpdates([
+ {
+ id: "system2@tests.mozilla.org",
+ version: "3.0",
+ path: "system2_3.xpi",
+ xpi: await getSystemAddonXPI(2, "3.0"),
+ },
+ ]);
+
+ const listener = (msg, { method, params, reason }) => {
+ if (params.id === "system2@tests.mozilla.org" && method === "uninstall") {
+ Assert.ok(
+ false,
+ "Should not see uninstall call for system2@tests.mozilla.org"
+ );
+ }
+ };
+
+ AddonTestUtils.on("bootstrap-method", listener);
+
+ await Promise.all([
+ updateAllSystemAddons(updateXML),
+ promiseWebExtensionStartup("system2@tests.mozilla.org"),
+ ]);
+
+ AddonTestUtils.off("bootstrap-method", listener);
+
+ await promiseShutdownManager();
+});