summaryrefslogtreecommitdiffstats
path: root/toolkit/components/webextensions/test/xpcshell/test_ext_management_uninstall_self.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/webextensions/test/xpcshell/test_ext_management_uninstall_self.js')
-rw-r--r--toolkit/components/webextensions/test/xpcshell/test_ext_management_uninstall_self.js135
1 files changed, 0 insertions, 135 deletions
diff --git a/toolkit/components/webextensions/test/xpcshell/test_ext_management_uninstall_self.js b/toolkit/components/webextensions/test/xpcshell/test_ext_management_uninstall_self.js
deleted file mode 100644
index 7d80a9c23..000000000
--- a/toolkit/components/webextensions/test/xpcshell/test_ext_management_uninstall_self.js
+++ /dev/null
@@ -1,135 +0,0 @@
-/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set sts=2 sw=2 et tw=80: */
-"use strict";
-
-Cu.import("resource://gre/modules/AddonManager.jsm");
-Cu.import("resource://testing-common/AddonTestUtils.jsm");
-Cu.import("resource://testing-common/MockRegistrar.jsm");
-
-const {promiseAddonByID} = AddonTestUtils;
-const id = "uninstall_self_test@tests.mozilla.com";
-
-const manifest = {
- applications: {
- gecko: {
- id,
- },
- },
- name: "test extension name",
- version: "1.0",
-};
-
-const waitForUninstalled = () => new Promise(resolve => {
- const listener = {
- onUninstalled: (addon) => {
- equal(addon.id, id, "The expected add-on has been uninstalled");
- AddonManager.getAddonByID(addon.id, checkedAddon => {
- equal(checkedAddon, null, "Add-on no longer exists");
- AddonManager.removeAddonListener(listener);
- resolve();
- });
- },
- };
- AddonManager.addAddonListener(listener);
-});
-
-let promptService = {
- _response: null,
- QueryInterface: XPCOMUtils.generateQI([Ci.nsIPromptService]),
- confirmEx: function(...args) {
- this._confirmExArgs = args;
- return this._response;
- },
-};
-
-add_task(function* setup() {
- let fakePromptService = MockRegistrar.register("@mozilla.org/embedcomp/prompt-service;1", promptService);
- do_register_cleanup(() => {
- MockRegistrar.unregister(fakePromptService);
- });
- yield ExtensionTestUtils.startAddonManager();
-});
-
-add_task(function* test_management_uninstall_no_prompt() {
- function background() {
- browser.test.onMessage.addListener(msg => {
- browser.management.uninstallSelf();
- });
- }
-
- let extension = ExtensionTestUtils.loadExtension({
- manifest,
- background,
- useAddonManager: "temporary",
- });
-
- yield extension.startup();
- let addon = yield promiseAddonByID(id);
- notEqual(addon, null, "Add-on is installed");
- extension.sendMessage("uninstall");
- yield waitForUninstalled();
- yield extension.markUnloaded();
- Services.obs.notifyObservers(extension.extension.file, "flush-cache-entry", null);
-});
-
-add_task(function* test_management_uninstall_prompt_uninstall() {
- promptService._response = 0;
-
- function background() {
- browser.test.onMessage.addListener(msg => {
- browser.management.uninstallSelf({showConfirmDialog: true});
- });
- }
-
- let extension = ExtensionTestUtils.loadExtension({
- manifest,
- background,
- useAddonManager: "temporary",
- });
-
- yield extension.startup();
- let addon = yield promiseAddonByID(id);
- notEqual(addon, null, "Add-on is installed");
- extension.sendMessage("uninstall");
- yield waitForUninstalled();
- yield extension.markUnloaded();
-
- // Test localization strings
- equal(promptService._confirmExArgs[1], `Uninstall ${manifest.name}`);
- equal(promptService._confirmExArgs[2],
- `The extension “${manifest.name}” is requesting to be uninstalled. What would you like to do?`);
- equal(promptService._confirmExArgs[4], "Uninstall");
- equal(promptService._confirmExArgs[5], "Keep Installed");
- Services.obs.notifyObservers(extension.extension.file, "flush-cache-entry", null);
-});
-
-add_task(function* test_management_uninstall_prompt_keep() {
- promptService._response = 1;
-
- function background() {
- browser.test.onMessage.addListener(async msg => {
- await browser.test.assertRejects(
- browser.management.uninstallSelf({showConfirmDialog: true}),
- "User cancelled uninstall of extension",
- "Expected rejection when user declines uninstall");
-
- browser.test.sendMessage("uninstall-rejected");
- });
- }
-
- let extension = ExtensionTestUtils.loadExtension({
- manifest,
- background,
- useAddonManager: "temporary",
- });
-
- yield extension.startup();
- let addon = yield promiseAddonByID(id);
- notEqual(addon, null, "Add-on is installed");
- extension.sendMessage("uninstall");
- yield extension.awaitMessage("uninstall-rejected");
- addon = yield promiseAddonByID(id);
- notEqual(addon, null, "Add-on remains installed");
- yield extension.unload();
- Services.obs.notifyObservers(extension.extension.file, "flush-cache-entry", null);
-});