summaryrefslogtreecommitdiffstats
path: root/toolkit/mozapps/webextensions/test/xpcshell/test_delay_update.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/mozapps/webextensions/test/xpcshell/test_delay_update.js')
-rw-r--r--toolkit/mozapps/webextensions/test/xpcshell/test_delay_update.js260
1 files changed, 0 insertions, 260 deletions
diff --git a/toolkit/mozapps/webextensions/test/xpcshell/test_delay_update.js b/toolkit/mozapps/webextensions/test/xpcshell/test_delay_update.js
deleted file mode 100644
index 3d7eef051..000000000
--- a/toolkit/mozapps/webextensions/test/xpcshell/test_delay_update.js
+++ /dev/null
@@ -1,260 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-// This verifies that delaying an update works
-
-// The test extension uses an insecure update url.
-Services.prefs.setBoolPref("extensions.checkUpdateSecurity", false);
-
-Components.utils.import("resource://testing-common/httpd.js");
-const profileDir = gProfD.clone();
-profileDir.append("extensions");
-const tempdir = gTmpD.clone();
-
-const IGNORE_ID = "test_delay_update_ignore@tests.mozilla.org";
-const COMPLETE_ID = "test_delay_update_complete@tests.mozilla.org";
-const DEFER_ID = "test_delay_update_defer@tests.mozilla.org";
-
-const TEST_IGNORE_PREF = "delaytest.ignore";
-
-// Note that we would normally use BootstrapMonitor but it currently requires
-// the objects in `data` to be serializable, and we need a real reference to the
-// `instanceID` symbol to test.
-
-createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "42");
-
-// Create and configure the HTTP server.
-let testserver = createHttpServer();
-gPort = testserver.identity.primaryPort;
-mapFile("/data/test_delay_updates_complete.rdf", testserver);
-mapFile("/data/test_delay_updates_ignore.rdf", testserver);
-mapFile("/data/test_delay_updates_defer.rdf", testserver);
-testserver.registerDirectory("/addons/", do_get_file("addons"));
-
-function* createIgnoreAddon() {
- writeInstallRDFToDir({
- id: IGNORE_ID,
- version: "1.0",
- bootstrap: true,
- unpack: true,
- updateURL: `http://localhost:${gPort}/data/test_delay_updates_ignore.rdf`,
- targetApplications: [{
- id: "xpcshell@tests.mozilla.org",
- minVersion: "1",
- maxVersion: "1"
- }],
- name: "Test Delay Update Ignore",
- }, profileDir, IGNORE_ID, "bootstrap.js");
-
- let unpacked_addon = profileDir.clone();
- unpacked_addon.append(IGNORE_ID);
- do_get_file("data/test_delay_update_ignore/bootstrap.js")
- .copyTo(unpacked_addon, "bootstrap.js");
-}
-
-function* createCompleteAddon() {
- writeInstallRDFToDir({
- id: COMPLETE_ID,
- version: "1.0",
- bootstrap: true,
- unpack: true,
- updateURL: `http://localhost:${gPort}/data/test_delay_updates_complete.rdf`,
- targetApplications: [{
- id: "xpcshell@tests.mozilla.org",
- minVersion: "1",
- maxVersion: "1"
- }],
- name: "Test Delay Update Complete",
- }, profileDir, COMPLETE_ID, "bootstrap.js");
-
- let unpacked_addon = profileDir.clone();
- unpacked_addon.append(COMPLETE_ID);
- do_get_file("data/test_delay_update_complete/bootstrap.js")
- .copyTo(unpacked_addon, "bootstrap.js");
-}
-
-function* createDeferAddon() {
- writeInstallRDFToDir({
- id: DEFER_ID,
- version: "1.0",
- bootstrap: true,
- unpack: true,
- updateURL: `http://localhost:${gPort}/data/test_delay_updates_defer.rdf`,
- targetApplications: [{
- id: "xpcshell@tests.mozilla.org",
- minVersion: "1",
- maxVersion: "1"
- }],
- name: "Test Delay Update Defer",
- }, profileDir, DEFER_ID, "bootstrap.js");
-
- let unpacked_addon = profileDir.clone();
- unpacked_addon.append(DEFER_ID);
- do_get_file("data/test_delay_update_defer/bootstrap.js")
- .copyTo(unpacked_addon, "bootstrap.js");
-}
-
-// add-on registers upgrade listener, and ignores update.
-add_task(function*() {
-
- yield createIgnoreAddon();
-
- startupManager();
-
- let addon = yield promiseAddonByID(IGNORE_ID);
- do_check_neq(addon, null);
- do_check_eq(addon.version, "1.0");
- do_check_eq(addon.name, "Test Delay Update Ignore");
- do_check_true(addon.isCompatible);
- do_check_false(addon.appDisabled);
- do_check_true(addon.isActive);
- do_check_eq(addon.type, "extension");
-
- let update = yield promiseFindAddonUpdates(addon);
- let install = update.updateAvailable;
-
- yield promiseCompleteAllInstalls([install]);
-
- do_check_eq(install.state, AddonManager.STATE_POSTPONED);
-
- // addon upgrade has been delayed
- let addon_postponed = yield promiseAddonByID(IGNORE_ID);
- do_check_neq(addon_postponed, null);
- do_check_eq(addon_postponed.version, "1.0");
- do_check_eq(addon_postponed.name, "Test Delay Update Ignore");
- do_check_true(addon_postponed.isCompatible);
- do_check_false(addon_postponed.appDisabled);
- do_check_true(addon_postponed.isActive);
- do_check_eq(addon_postponed.type, "extension");
- do_check_true(Services.prefs.getBoolPref(TEST_IGNORE_PREF));
-
- // restarting allows upgrade to proceed
- yield promiseRestartManager();
-
- let addon_upgraded = yield promiseAddonByID(IGNORE_ID);
- do_check_neq(addon_upgraded, null);
- do_check_eq(addon_upgraded.version, "2.0");
- do_check_eq(addon_upgraded.name, "Test Delay Update Ignore");
- do_check_true(addon_upgraded.isCompatible);
- do_check_false(addon_upgraded.appDisabled);
- do_check_true(addon_upgraded.isActive);
- do_check_eq(addon_upgraded.type, "extension");
-
- yield shutdownManager();
-});
-
-// add-on registers upgrade listener, and allows update.
-add_task(function*() {
-
- yield createCompleteAddon();
-
- startupManager();
-
- let addon = yield promiseAddonByID(COMPLETE_ID);
- do_check_neq(addon, null);
- do_check_eq(addon.version, "1.0");
- do_check_eq(addon.name, "Test Delay Update Complete");
- do_check_true(addon.isCompatible);
- do_check_false(addon.appDisabled);
- do_check_true(addon.isActive);
- do_check_eq(addon.type, "extension");
-
- let update = yield promiseFindAddonUpdates(addon);
- let install = update.updateAvailable;
-
- yield promiseCompleteAllInstalls([install]);
-
- // upgrade is initially postponed
- let addon_postponed = yield promiseAddonByID(COMPLETE_ID);
- do_check_neq(addon_postponed, null);
- do_check_eq(addon_postponed.version, "1.0");
- do_check_eq(addon_postponed.name, "Test Delay Update Complete");
- do_check_true(addon_postponed.isCompatible);
- do_check_false(addon_postponed.appDisabled);
- do_check_true(addon_postponed.isActive);
- do_check_eq(addon_postponed.type, "extension");
-
- // addon upgrade has been allowed
- let [addon_allowed] = yield promiseAddonEvent("onInstalled");
- do_check_neq(addon_allowed, null);
- do_check_eq(addon_allowed.version, "2.0");
- do_check_eq(addon_allowed.name, "Test Delay Update Complete");
- do_check_true(addon_allowed.isCompatible);
- do_check_false(addon_allowed.appDisabled);
- do_check_true(addon_allowed.isActive);
- do_check_eq(addon_allowed.type, "extension");
-
- // restarting changes nothing
- yield promiseRestartManager();
-
- let addon_upgraded = yield promiseAddonByID(COMPLETE_ID);
- do_check_neq(addon_upgraded, null);
- do_check_eq(addon_upgraded.version, "2.0");
- do_check_eq(addon_upgraded.name, "Test Delay Update Complete");
- do_check_true(addon_upgraded.isCompatible);
- do_check_false(addon_upgraded.appDisabled);
- do_check_true(addon_upgraded.isActive);
- do_check_eq(addon_upgraded.type, "extension");
-
- yield shutdownManager();
-});
-
-// add-on registers upgrade listener, initially defers update then allows upgrade
-add_task(function*() {
-
- yield createDeferAddon();
-
- startupManager();
-
- let addon = yield promiseAddonByID(DEFER_ID);
- do_check_neq(addon, null);
- do_check_eq(addon.version, "1.0");
- do_check_eq(addon.name, "Test Delay Update Defer");
- do_check_true(addon.isCompatible);
- do_check_false(addon.appDisabled);
- do_check_true(addon.isActive);
- do_check_eq(addon.type, "extension");
-
- let update = yield promiseFindAddonUpdates(addon);
- let install = update.updateAvailable;
-
- yield promiseCompleteAllInstalls([install]);
-
- // upgrade is initially postponed
- let addon_postponed = yield promiseAddonByID(DEFER_ID);
- do_check_neq(addon_postponed, null);
- do_check_eq(addon_postponed.version, "1.0");
- do_check_eq(addon_postponed.name, "Test Delay Update Defer");
- do_check_true(addon_postponed.isCompatible);
- do_check_false(addon_postponed.appDisabled);
- do_check_true(addon_postponed.isActive);
- do_check_eq(addon_postponed.type, "extension");
-
- // add-on will not allow upgrade until fake event fires
- AddonManagerPrivate.callAddonListeners("onFakeEvent");
-
- // addon upgrade has been allowed
- let [addon_allowed] = yield promiseAddonEvent("onInstalled");
- do_check_neq(addon_allowed, null);
- do_check_eq(addon_allowed.version, "2.0");
- do_check_eq(addon_allowed.name, "Test Delay Update Defer");
- do_check_true(addon_allowed.isCompatible);
- do_check_false(addon_allowed.appDisabled);
- do_check_true(addon_allowed.isActive);
- do_check_eq(addon_allowed.type, "extension");
-
- // restarting changes nothing
- yield promiseRestartManager();
-
- let addon_upgraded = yield promiseAddonByID(DEFER_ID);
- do_check_neq(addon_upgraded, null);
- do_check_eq(addon_upgraded.version, "2.0");
- do_check_eq(addon_upgraded.name, "Test Delay Update Defer");
- do_check_true(addon_upgraded.isCompatible);
- do_check_false(addon_upgraded.appDisabled);
- do_check_true(addon_upgraded.isActive);
- do_check_eq(addon_upgraded.type, "extension");
-
- yield shutdownManager();
-});