summaryrefslogtreecommitdiffstats
path: root/toolkit/mozapps/extensions/test/xpcshell/test_bootstrap.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/mozapps/extensions/test/xpcshell/test_bootstrap.js')
-rw-r--r--toolkit/mozapps/extensions/test/xpcshell/test_bootstrap.js707
1 files changed, 369 insertions, 338 deletions
diff --git a/toolkit/mozapps/extensions/test/xpcshell/test_bootstrap.js b/toolkit/mozapps/extensions/test/xpcshell/test_bootstrap.js
index ff58599bc..e8d12c1fa 100644
--- a/toolkit/mozapps/extensions/test/xpcshell/test_bootstrap.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_bootstrap.js
@@ -11,9 +11,6 @@ const ADDON_UNINSTALL = 6;
const ADDON_UPGRADE = 7;
const ADDON_DOWNGRADE = 8;
-const ID1 = "bootstrap1@tests.mozilla.org";
-const ID2 = "bootstrap2@tests.mozilla.org";
-
// This verifies that bootstrappable add-ons can be used without restarts.
Components.utils.import("resource://gre/modules/Services.jsm");
Components.utils.import("resource://gre/modules/Promise.jsm");
@@ -22,8 +19,6 @@ Components.utils.import("resource://gre/modules/Promise.jsm");
Services.prefs.setIntPref("extensions.enabledScopes",
AddonManager.SCOPE_PROFILE + AddonManager.SCOPE_USER);
-BootstrapMonitor.init();
-
createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
const profileDir = gProfD.clone();
@@ -35,49 +30,99 @@ registerDirectory("XREUSysExt", userExtDir.parent);
Components.utils.import("resource://testing-common/httpd.js");
var testserver = new HttpServer();
-testserver.start(undefined);
+testserver.start(-1);
gPort = testserver.identity.primaryPort;
testserver.registerDirectory("/addons/", do_get_file("addons"));
+function resetPrefs() {
+ Services.prefs.setIntPref("bootstraptest.active_version", -1);
+ Services.prefs.setIntPref("bootstraptest.installed_version", -1);
+ Services.prefs.setIntPref("bootstraptest2.active_version", -1);
+ Services.prefs.setIntPref("bootstraptest2.installed_version", -1);
+ Services.prefs.setIntPref("bootstraptest.startup_reason", -1);
+ Services.prefs.setIntPref("bootstraptest.shutdown_reason", -1);
+ Services.prefs.setIntPref("bootstraptest.install_reason", -1);
+ Services.prefs.setIntPref("bootstraptest.uninstall_reason", -1);
+ Services.prefs.setIntPref("bootstraptest.startup_oldversion", -1);
+ Services.prefs.setIntPref("bootstraptest.shutdown_newversion", -1);
+ Services.prefs.setIntPref("bootstraptest.install_oldversion", -1);
+ Services.prefs.setIntPref("bootstraptest.uninstall_newversion", -1);
+}
+
+function waitForPref(aPref, aCallback) {
+ function prefChanged() {
+ Services.prefs.removeObserver(aPref, prefChanged);
+ // Always let whoever set the preference keep running
+ do_execute_soon(aCallback);
+ }
+ Services.prefs.addObserver(aPref, prefChanged, false);
+}
+
+function promisePref(aPref) {
+ let deferred = Promise.defer();
+
+ waitForPref(aPref, deferred.resolve.bind(deferred));
+
+ return deferred.promise;
+}
+
+function promiseInstall(aFiles) {
+ let deferred = Promise.defer();
+
+ installAllFiles(aFiles, function() {
+ deferred.resolve();
+ });
+
+ return deferred.promise;
+}
+
+function getActiveVersion() {
+ return Services.prefs.getIntPref("bootstraptest.active_version");
+}
+
+function getInstalledVersion() {
+ return Services.prefs.getIntPref("bootstraptest.installed_version");
+}
+
+function getActiveVersion2() {
+ return Services.prefs.getIntPref("bootstraptest2.active_version");
+}
+
+function getInstalledVersion2() {
+ return Services.prefs.getIntPref("bootstraptest2.installed_version");
+}
+
function getStartupReason() {
- let info = BootstrapMonitor.started.get(ID1);
- return info ? info.reason : undefined;
+ return Services.prefs.getIntPref("bootstraptest.startup_reason");
}
function getShutdownReason() {
- let info = BootstrapMonitor.stopped.get(ID1);
- return info ? info.reason : undefined;
+ return Services.prefs.getIntPref("bootstraptest.shutdown_reason");
}
function getInstallReason() {
- let info = BootstrapMonitor.installed.get(ID1);
- return info ? info.reason : undefined;
+ return Services.prefs.getIntPref("bootstraptest.install_reason");
}
function getUninstallReason() {
- let info = BootstrapMonitor.uninstalled.get(ID1);
- return info ? info.reason : undefined;
+ return Services.prefs.getIntPref("bootstraptest.uninstall_reason");
}
function getStartupOldVersion() {
- let info = BootstrapMonitor.started.get(ID1);
- return info ? info.data.oldVersion : undefined;
+ return Services.prefs.getIntPref("bootstraptest.startup_oldversion");
}
function getShutdownNewVersion() {
- let info = BootstrapMonitor.stopped.get(ID1);
- return info ? info.data.newVersion : undefined;
+ return Services.prefs.getIntPref("bootstraptest.shutdown_newversion");
}
function getInstallOldVersion() {
- let info = BootstrapMonitor.installed.get(ID1);
- return info ? info.data.oldVersion : undefined;
+ return Services.prefs.getIntPref("bootstraptest.install_oldversion");
}
function getUninstallNewVersion() {
- let info = BootstrapMonitor.uninstalled.get(ID1);
- return info ? info.data.newVersion : undefined;
+ return Services.prefs.getIntPref("bootstraptest.uninstall_newversion");
}
function do_check_bootstrappedPref(aCallback) {
@@ -112,6 +157,8 @@ function do_check_bootstrappedPref(aCallback) {
function run_test() {
do_test_pending();
+ resetPrefs();
+
startupManager();
do_check_false(gExtensionsJSON.exists());
@@ -141,18 +188,18 @@ function run_test_1() {
do_check_false(install.addon.hasResource("foo.bar"));
do_check_eq(install.addon.operationsRequiringRestart &
AddonManager.OP_NEEDS_RESTART_INSTALL, 0);
- do_check_not_in_crash_annotation(ID1, "1.0");
+ do_check_not_in_crash_annotation("bootstrap1@tests.mozilla.org", "1.0");
let addon = install.addon;
- BootstrapMonitor.promiseAddonStartup(ID1).then(function() {
+ waitForPref("bootstraptest.startup_reason", function() {
do_check_bootstrappedPref(function() {
check_test_1(addon.syncGUID);
});
});
prepare_test({
- [ID1]: [
+ "bootstrap1@tests.mozilla.org": [
["onInstalling", false],
"onInstalled"
]
@@ -163,7 +210,7 @@ function run_test_1() {
do_check_true(addon.hasResource("install.rdf"));
// startup should not have been called yet.
- BootstrapMonitor.checkAddonNotStarted(ID1);
+ do_check_eq(getActiveVersion(), -1);
});
install.install();
});
@@ -177,7 +224,7 @@ function check_test_1(installSyncGUID) {
// doesn't require a restart.
do_check_eq(installs.length, 0);
- AddonManager.getAddonByID(ID1, function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
do_check_neq(b1, null);
do_check_eq(b1.version, "1.0");
do_check_neq(b1.syncGUID, null);
@@ -185,17 +232,16 @@ function check_test_1(installSyncGUID) {
do_check_false(b1.appDisabled);
do_check_false(b1.userDisabled);
do_check_true(b1.isActive);
- do_check_false(b1.isSystem);
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonStarted(ID1, "1.0");
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 1);
do_check_eq(getStartupReason(), ADDON_INSTALL);
- do_check_eq(getStartupOldVersion(), undefined);
+ do_check_eq(getStartupOldVersion(), 0);
do_check_true(b1.hasResource("install.rdf"));
do_check_true(b1.hasResource("bootstrap.js"));
do_check_false(b1.hasResource("foo.bar"));
- do_check_in_crash_annotation(ID1, "1.0");
+ do_check_in_crash_annotation("bootstrap1@tests.mozilla.org", "1.0");
- let dir = do_get_addon_root_uri(profileDir, ID1);
+ let dir = do_get_addon_root_uri(profileDir, "bootstrap1@tests.mozilla.org");
do_check_eq(b1.getResourceURI("bootstrap.js").spec, dir + "bootstrap.js");
AddonManager.getAddonsWithOperationsByTypes(null, function(list) {
@@ -209,9 +255,9 @@ function check_test_1(installSyncGUID) {
// Tests that disabling doesn't require a restart
function run_test_2() {
- AddonManager.getAddonByID(ID1, function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
prepare_test({
- [ID1]: [
+ "bootstrap1@tests.mozilla.org": [
["onDisabling", false],
"onDisabled"
]
@@ -227,13 +273,13 @@ function run_test_2() {
do_check_false(b1.appDisabled);
do_check_true(b1.userDisabled);
do_check_false(b1.isActive);
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonNotStarted(ID1);
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 0);
do_check_eq(getShutdownReason(), ADDON_DISABLE);
- do_check_eq(getShutdownNewVersion(), undefined);
- do_check_not_in_crash_annotation(ID1, "1.0");
+ do_check_eq(getShutdownNewVersion(), 0);
+ do_check_not_in_crash_annotation("bootstrap1@tests.mozilla.org", "1.0");
- AddonManager.getAddonByID(ID1, function(newb1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(newb1) {
do_check_neq(newb1, null);
do_check_eq(newb1.version, "1.0");
do_check_false(newb1.appDisabled);
@@ -248,20 +294,20 @@ function run_test_2() {
// Test that restarting doesn't accidentally re-enable
function run_test_3() {
shutdownManager();
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonNotStarted(ID1);
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 0);
do_check_eq(getShutdownReason(), ADDON_DISABLE);
- do_check_eq(getShutdownNewVersion(), undefined);
+ do_check_eq(getShutdownNewVersion(), 0);
startupManager(false);
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonNotStarted(ID1);
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 0);
do_check_eq(getShutdownReason(), ADDON_DISABLE);
- do_check_eq(getShutdownNewVersion(), undefined);
- do_check_not_in_crash_annotation(ID1, "1.0");
+ do_check_eq(getShutdownNewVersion(), 0);
+ do_check_not_in_crash_annotation("bootstrap1@tests.mozilla.org", "1.0");
do_check_false(gExtensionsINI.exists());
- AddonManager.getAddonByID(ID1, function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
do_check_neq(b1, null);
do_check_eq(b1.version, "1.0");
do_check_false(b1.appDisabled);
@@ -274,9 +320,9 @@ function run_test_3() {
// Tests that enabling doesn't require a restart
function run_test_4() {
- AddonManager.getAddonByID(ID1, function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
prepare_test({
- [ID1]: [
+ "bootstrap1@tests.mozilla.org": [
["onEnabling", false],
"onEnabled"
]
@@ -292,14 +338,13 @@ function run_test_4() {
do_check_false(b1.appDisabled);
do_check_false(b1.userDisabled);
do_check_true(b1.isActive);
- do_check_false(b1.isSystem);
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonStarted(ID1, "1.0");
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 1);
do_check_eq(getStartupReason(), ADDON_ENABLE);
- do_check_eq(getStartupOldVersion(), undefined);
- do_check_in_crash_annotation(ID1, "1.0");
+ do_check_eq(getStartupOldVersion(), 0);
+ do_check_in_crash_annotation("bootstrap1@tests.mozilla.org", "1.0");
- AddonManager.getAddonByID(ID1, function(newb1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(newb1) {
do_check_neq(newb1, null);
do_check_eq(newb1.version, "1.0");
do_check_false(newb1.appDisabled);
@@ -317,25 +362,24 @@ function run_test_5() {
// By the time we've shut down, the database must have been written
do_check_true(gExtensionsJSON.exists());
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonNotStarted(ID1);
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 0);
do_check_eq(getShutdownReason(), APP_SHUTDOWN);
- do_check_eq(getShutdownNewVersion(), undefined);
- do_check_not_in_crash_annotation(ID1, "1.0");
+ do_check_eq(getShutdownNewVersion(), 0);
+ do_check_not_in_crash_annotation("bootstrap1@tests.mozilla.org", "1.0");
startupManager(false);
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonStarted(ID1, "1.0");
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 1);
do_check_eq(getStartupReason(), APP_STARTUP);
- do_check_eq(getStartupOldVersion(), undefined);
- do_check_in_crash_annotation(ID1, "1.0");
+ do_check_eq(getStartupOldVersion(), 0);
+ do_check_in_crash_annotation("bootstrap1@tests.mozilla.org", "1.0");
- AddonManager.getAddonByID(ID1, function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
do_check_neq(b1, null);
do_check_eq(b1.version, "1.0");
do_check_false(b1.appDisabled);
do_check_false(b1.userDisabled);
do_check_true(b1.isActive);
- do_check_false(b1.isSystem);
do_check_false(isExtensionInAddonsList(profileDir, b1.id));
do_check_bootstrappedPref(run_test_6);
@@ -357,9 +401,9 @@ function run_test_6() {
do_check_eq(install.name, "Test Bootstrap 1");
do_check_eq(install.state, AddonManager.STATE_DOWNLOADED);
- BootstrapMonitor.promiseAddonStartup(ID1).then(check_test_6);
+ waitForPref("bootstraptest.startup_reason", check_test_6);
prepare_test({
- [ID1]: [
+ "bootstrap1@tests.mozilla.org": [
["onInstalling", false],
"onInstalled"
]
@@ -373,23 +417,22 @@ function run_test_6() {
}
function check_test_6() {
- AddonManager.getAddonByID(ID1, function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
do_check_neq(b1, null);
do_check_eq(b1.version, "2.0");
do_check_false(b1.appDisabled);
do_check_false(b1.userDisabled);
do_check_true(b1.isActive);
- do_check_false(b1.isSystem);
- BootstrapMonitor.checkAddonInstalled(ID1, "2.0");
- BootstrapMonitor.checkAddonStarted(ID1, "2.0");
+ do_check_eq(getInstalledVersion(), 2);
+ do_check_eq(getActiveVersion(), 2);
do_check_eq(getStartupReason(), ADDON_UPGRADE);
do_check_eq(getInstallOldVersion(), 1);
do_check_eq(getStartupOldVersion(), 1);
do_check_eq(getShutdownReason(), ADDON_UPGRADE);
do_check_eq(getShutdownNewVersion(), 2);
do_check_eq(getUninstallNewVersion(), 2);
- do_check_not_in_crash_annotation(ID1, "1.0");
- do_check_in_crash_annotation(ID1, "2.0");
+ do_check_not_in_crash_annotation("bootstrap1@tests.mozilla.org", "1.0");
+ do_check_in_crash_annotation("bootstrap1@tests.mozilla.org", "2.0");
do_check_bootstrappedPref(run_test_7);
});
@@ -397,9 +440,9 @@ function check_test_6() {
// Tests that uninstalling doesn't require a restart
function run_test_7() {
- AddonManager.getAddonByID(ID1, function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
prepare_test({
- [ID1]: [
+ "bootstrap1@tests.mozilla.org": [
["onUninstalling", false],
"onUninstalled"
]
@@ -415,18 +458,18 @@ function run_test_7() {
function check_test_7() {
ensure_test_completed();
- BootstrapMonitor.checkAddonNotInstalled(ID1);
- BootstrapMonitor.checkAddonNotStarted(ID1);
+ do_check_eq(getInstalledVersion(), 0);
+ do_check_eq(getActiveVersion(), 0);
do_check_eq(getShutdownReason(), ADDON_UNINSTALL);
- do_check_eq(getShutdownNewVersion(), undefined);
- do_check_not_in_crash_annotation(ID1, "2.0");
+ do_check_eq(getShutdownNewVersion(), 0);
+ do_check_not_in_crash_annotation("bootstrap1@tests.mozilla.org", "2.0");
- AddonManager.getAddonByID(ID1, callback_soon(function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", callback_soon(function(b1) {
do_check_eq(b1, null);
restartManager();
- AddonManager.getAddonByID(ID1, function(newb1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(newb1) {
do_check_eq(newb1, null);
do_check_bootstrappedPref(run_test_8);
@@ -440,22 +483,21 @@ function run_test_8() {
shutdownManager();
manuallyInstall(do_get_addon("test_bootstrap1_1"), profileDir,
- ID1);
+ "bootstrap1@tests.mozilla.org");
startupManager(false);
- AddonManager.getAddonByID(ID1, function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
do_check_neq(b1, null);
do_check_eq(b1.version, "1.0");
do_check_false(b1.appDisabled);
do_check_false(b1.userDisabled);
do_check_true(b1.isActive);
- do_check_false(b1.isSystem);
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonStarted(ID1, "1.0");
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 1);
do_check_eq(getStartupReason(), ADDON_INSTALL);
- do_check_eq(getStartupOldVersion(), undefined);
- do_check_in_crash_annotation(ID1, "1.0");
+ do_check_eq(getStartupOldVersion(), 0);
+ do_check_in_crash_annotation("bootstrap1@tests.mozilla.org", "1.0");
do_check_bootstrappedPref(run_test_9);
});
@@ -465,14 +507,13 @@ function run_test_8() {
function run_test_9() {
shutdownManager();
- manuallyUninstall(profileDir, ID1);
- BootstrapMonitor.clear(ID1);
+ manuallyUninstall(profileDir, "bootstrap1@tests.mozilla.org");
startupManager(false);
- AddonManager.getAddonByID(ID1, function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
do_check_eq(b1, null);
- do_check_not_in_crash_annotation(ID1, "1.0");
+ do_check_not_in_crash_annotation("bootstrap1@tests.mozilla.org", "1.0");
do_check_bootstrappedPref(run_test_10);
});
@@ -481,6 +522,7 @@ function run_test_9() {
// Tests that installing a downgrade sends the right reason
function run_test_10() {
+ resetPrefs();
prepare_test({ }, [
"onNewInstall"
]);
@@ -496,11 +538,11 @@ function run_test_10() {
do_check_true(install.addon.hasResource("install.rdf"));
do_check_true(install.addon.hasResource("bootstrap.js"));
do_check_false(install.addon.hasResource("foo.bar"));
- do_check_not_in_crash_annotation(ID1, "2.0");
+ do_check_not_in_crash_annotation("bootstrap1@tests.mozilla.org", "2.0");
- BootstrapMonitor.promiseAddonStartup(ID1).then(check_test_10_pt1);
+ waitForPref("bootstraptest.startup_reason", check_test_10_pt1);
prepare_test({
- [ID1]: [
+ "bootstrap1@tests.mozilla.org": [
["onInstalling", false],
"onInstalled"
]
@@ -515,21 +557,20 @@ function run_test_10() {
}
function check_test_10_pt1() {
- AddonManager.getAddonByID(ID1, function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
do_check_neq(b1, null);
do_check_eq(b1.version, "2.0");
do_check_false(b1.appDisabled);
do_check_false(b1.userDisabled);
do_check_true(b1.isActive);
- do_check_false(b1.isSystem);
- BootstrapMonitor.checkAddonInstalled(ID1, "2.0");
- BootstrapMonitor.checkAddonStarted(ID1, "2.0");
+ do_check_eq(getInstalledVersion(), 2);
+ do_check_eq(getActiveVersion(), 2);
do_check_eq(getStartupReason(), ADDON_INSTALL);
- do_check_eq(getStartupOldVersion(), undefined);
+ do_check_eq(getStartupOldVersion(), 0);
do_check_true(b1.hasResource("install.rdf"));
do_check_true(b1.hasResource("bootstrap.js"));
do_check_false(b1.hasResource("foo.bar"));
- do_check_in_crash_annotation(ID1, "2.0");
+ do_check_in_crash_annotation("bootstrap1@tests.mozilla.org", "2.0");
prepare_test({ }, [
"onNewInstall"
@@ -544,9 +585,9 @@ function check_test_10_pt1() {
do_check_eq(install.name, "Test Bootstrap 1");
do_check_eq(install.state, AddonManager.STATE_DOWNLOADED);
- BootstrapMonitor.promiseAddonStartup(ID1).then(check_test_10_pt2);
+ waitForPref("bootstraptest.startup_reason", check_test_10_pt2);
prepare_test({
- [ID1]: [
+ "bootstrap1@tests.mozilla.org": [
["onInstalling", false],
"onInstalled"
]
@@ -560,23 +601,22 @@ function check_test_10_pt1() {
}
function check_test_10_pt2() {
- AddonManager.getAddonByID(ID1, function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
do_check_neq(b1, null);
do_check_eq(b1.version, "1.0");
do_check_false(b1.appDisabled);
do_check_false(b1.userDisabled);
do_check_true(b1.isActive);
- do_check_false(b1.isSystem);
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonStarted(ID1, "1.0");
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 1);
do_check_eq(getStartupReason(), ADDON_DOWNGRADE);
do_check_eq(getInstallOldVersion(), 2);
do_check_eq(getStartupOldVersion(), 2);
do_check_eq(getShutdownReason(), ADDON_DOWNGRADE);
do_check_eq(getShutdownNewVersion(), 1);
do_check_eq(getUninstallNewVersion(), 1);
- do_check_in_crash_annotation(ID1, "1.0");
- do_check_not_in_crash_annotation(ID1, "2.0");
+ do_check_in_crash_annotation("bootstrap1@tests.mozilla.org", "1.0");
+ do_check_not_in_crash_annotation("bootstrap1@tests.mozilla.org", "2.0");
do_check_bootstrappedPref(run_test_11);
});
@@ -584,9 +624,9 @@ function check_test_10_pt2() {
// Tests that uninstalling a disabled add-on still calls the uninstall method
function run_test_11() {
- AddonManager.getAddonByID(ID1, function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
prepare_test({
- [ID1]: [
+ "bootstrap1@tests.mozilla.org": [
["onDisabling", false],
"onDisabled",
["onUninstalling", false],
@@ -596,11 +636,11 @@ function run_test_11() {
b1.userDisabled = true;
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonNotStarted(ID1);
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 0);
do_check_eq(getShutdownReason(), ADDON_DISABLE);
- do_check_eq(getShutdownNewVersion(), undefined);
- do_check_not_in_crash_annotation(ID1, "1.0");
+ do_check_eq(getShutdownNewVersion(), 0);
+ do_check_not_in_crash_annotation("bootstrap1@tests.mozilla.org", "1.0");
b1.uninstall();
@@ -610,9 +650,9 @@ function run_test_11() {
function check_test_11() {
ensure_test_completed();
- BootstrapMonitor.checkAddonNotInstalled(ID1);
- BootstrapMonitor.checkAddonNotStarted(ID1);
- do_check_not_in_crash_annotation(ID1, "1.0");
+ do_check_eq(getInstalledVersion(), 0);
+ do_check_eq(getActiveVersion(), 0);
+ do_check_not_in_crash_annotation("bootstrap1@tests.mozilla.org", "1.0");
do_check_bootstrappedPref(run_test_12);
}
@@ -623,22 +663,21 @@ function run_test_12() {
shutdownManager();
manuallyInstall(do_get_addon("test_bootstrap1_1"), profileDir,
- ID1);
+ "bootstrap1@tests.mozilla.org");
startupManager(true);
- AddonManager.getAddonByID(ID1, function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
do_check_neq(b1, null);
do_check_eq(b1.version, "1.0");
do_check_false(b1.appDisabled);
do_check_false(b1.userDisabled);
do_check_true(b1.isActive);
- do_check_false(b1.isSystem);
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonStarted(ID1, "1.0");
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 1);
do_check_eq(getStartupReason(), ADDON_INSTALL);
- do_check_eq(getStartupOldVersion(), undefined);
- do_check_in_crash_annotation(ID1, "1.0");
+ do_check_eq(getStartupOldVersion(), 0);
+ do_check_in_crash_annotation("bootstrap1@tests.mozilla.org", "1.0");
b1.uninstall();
do_execute_soon(test_12_restart);
@@ -666,10 +705,10 @@ function run_test_13() {
do_check_eq(install.version, "3.0");
do_check_eq(install.name, "Test Bootstrap 1");
do_check_eq(install.state, AddonManager.STATE_DOWNLOADED);
- do_check_not_in_crash_annotation(ID1, "3.0");
+ do_check_not_in_crash_annotation("bootstrap1@tests.mozilla.org", "3.0");
prepare_test({
- [ID1]: [
+ "bootstrap1@tests.mozilla.org": [
["onInstalling", false],
"onInstalled"
]
@@ -687,15 +726,15 @@ function check_test_13() {
// doesn't require a restart.
do_check_eq(installs.length, 0);
- AddonManager.getAddonByID(ID1, function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
do_check_neq(b1, null);
do_check_eq(b1.version, "3.0");
do_check_true(b1.appDisabled);
do_check_false(b1.userDisabled);
do_check_false(b1.isActive);
- BootstrapMonitor.checkAddonInstalled(ID1, "3.0"); // We call install even for disabled add-ons
- BootstrapMonitor.checkAddonNotStarted(ID1); // Should not have called startup though
- do_check_not_in_crash_annotation(ID1, "3.0");
+ do_check_eq(getInstalledVersion(), 3); // We call install even for disabled add-ons
+ do_check_eq(getActiveVersion(), 0); // Should not have called startup though
+ do_check_not_in_crash_annotation("bootstrap1@tests.mozilla.org", "3.0");
do_execute_soon(test_13_restart);
});
@@ -705,15 +744,15 @@ function check_test_13() {
function test_13_restart() {
restartManager();
- AddonManager.getAddonByID(ID1, function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
do_check_neq(b1, null);
do_check_eq(b1.version, "3.0");
do_check_true(b1.appDisabled);
do_check_false(b1.userDisabled);
do_check_false(b1.isActive);
- BootstrapMonitor.checkAddonInstalled(ID1, "3.0"); // We call install even for disabled add-ons
- BootstrapMonitor.checkAddonNotStarted(ID1); // Should not have called startup though
- do_check_not_in_crash_annotation(ID1, "3.0");
+ do_check_eq(getInstalledVersion(), 3); // We call install even for disabled add-ons
+ do_check_eq(getActiveVersion(), 0); // Should not have called startup though
+ do_check_not_in_crash_annotation("bootstrap1@tests.mozilla.org", "3.0");
do_check_bootstrappedPref(function() {
b1.uninstall();
@@ -730,19 +769,19 @@ function run_test_14() {
shutdownManager();
manuallyInstall(do_get_addon("test_bootstrap1_3"), profileDir,
- ID1);
+ "bootstrap1@tests.mozilla.org");
startupManager(false);
- AddonManager.getAddonByID(ID1, function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
do_check_neq(b1, null);
do_check_eq(b1.version, "3.0");
do_check_true(b1.appDisabled);
do_check_false(b1.userDisabled);
do_check_false(b1.isActive);
- BootstrapMonitor.checkAddonInstalled(ID1, "3.0"); // We call install even for disabled add-ons
- BootstrapMonitor.checkAddonNotStarted(ID1); // Should not have called startup though
- do_check_not_in_crash_annotation(ID1, "3.0");
+ do_check_eq(getInstalledVersion(), 3); // We call install even for disabled add-ons
+ do_check_eq(getActiveVersion(), 0); // Should not have called startup though
+ do_check_not_in_crash_annotation("bootstrap1@tests.mozilla.org", "3.0");
do_check_bootstrappedPref(function() {
b1.uninstall();
@@ -755,21 +794,21 @@ function run_test_14() {
// Tests that upgrading a disabled bootstrapped extension still calls uninstall
// and install but doesn't startup the new version
function run_test_15() {
- BootstrapMonitor.promiseAddonStartup(ID1).then(function test_15_after_startup() {
- AddonManager.getAddonByID(ID1, function(b1) {
+ resetPrefs();
+ waitForPref("bootstraptest.startup_reason", function test_15_after_startup() {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
do_check_neq(b1, null);
do_check_eq(b1.version, "1.0");
do_check_false(b1.appDisabled);
do_check_false(b1.userDisabled);
do_check_true(b1.isActive);
- do_check_false(b1.isSystem);
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonStarted(ID1, "1.0");
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 1);
b1.userDisabled = true;
do_check_false(b1.isActive);
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonNotStarted(ID1);
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 0);
prepare_test({ }, [
"onNewInstall"
@@ -782,7 +821,7 @@ function run_test_15() {
do_check_true(install.addon.userDisabled);
prepare_test({
- [ID1]: [
+ "bootstrap1@tests.mozilla.org": [
["onInstalling", false],
"onInstalled"
]
@@ -798,28 +837,28 @@ function run_test_15() {
}
function check_test_15() {
- AddonManager.getAddonByID(ID1, function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
do_check_neq(b1, null);
do_check_eq(b1.version, "2.0");
do_check_false(b1.appDisabled);
do_check_true(b1.userDisabled);
do_check_false(b1.isActive);
- BootstrapMonitor.checkAddonInstalled(ID1, "2.0");
- BootstrapMonitor.checkAddonNotStarted(ID1);
+ do_check_eq(getInstalledVersion(), 2);
+ do_check_eq(getActiveVersion(), 0);
do_check_bootstrappedPref(function() {
restartManager();
- AddonManager.getAddonByID(ID1, callback_soon(function(b1_2) {
- do_check_neq(b1_2, null);
- do_check_eq(b1_2.version, "2.0");
- do_check_false(b1_2.appDisabled);
- do_check_true(b1_2.userDisabled);
- do_check_false(b1_2.isActive);
- BootstrapMonitor.checkAddonInstalled(ID1, "2.0");
- BootstrapMonitor.checkAddonNotStarted(ID1);
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", callback_soon(function(b1) {
+ do_check_neq(b1, null);
+ do_check_eq(b1.version, "2.0");
+ do_check_false(b1.appDisabled);
+ do_check_true(b1.userDisabled);
+ do_check_false(b1.isActive);
+ do_check_eq(getInstalledVersion(), 2);
+ do_check_eq(getActiveVersion(), 0);
- b1_2.uninstall();
+ b1.uninstall();
run_test_16();
}));
@@ -829,13 +868,13 @@ function check_test_15() {
// Tests that bootstrapped extensions don't get loaded when in safe mode
function run_test_16() {
- BootstrapMonitor.promiseAddonStartup(ID1).then(function test_16_after_startup() {
- AddonManager.getAddonByID(ID1, callback_soon(function(b1) {
+ resetPrefs();
+ waitForPref("bootstraptest.startup_reason", function test_16_after_startup() {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", callback_soon(function(b1) {
// Should have installed and started
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonStarted(ID1, "1.0");
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 1);
do_check_true(b1.isActive);
- do_check_false(b1.isSystem);
do_check_eq(b1.iconURL, "chrome://foo/skin/icon.png");
do_check_eq(b1.aboutURL, "chrome://foo/content/about.xul");
do_check_eq(b1.optionsURL, "chrome://foo/content/options.xul");
@@ -843,31 +882,31 @@ function run_test_16() {
shutdownManager();
// Should have stopped
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonNotStarted(ID1);
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 0);
gAppInfo.inSafeMode = true;
startupManager(false);
- AddonManager.getAddonByID(ID1, callback_soon(function(b1_2) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", callback_soon(function(b1) {
// Should still be stopped
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonNotStarted(ID1);
- do_check_false(b1_2.isActive);
- do_check_eq(b1_2.iconURL, null);
- do_check_eq(b1_2.aboutURL, null);
- do_check_eq(b1_2.optionsURL, null);
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 0);
+ do_check_false(b1.isActive);
+ do_check_eq(b1.iconURL, null);
+ do_check_eq(b1.aboutURL, null);
+ do_check_eq(b1.optionsURL, null);
shutdownManager();
gAppInfo.inSafeMode = false;
startupManager(false);
// Should have started
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonStarted(ID1, "1.0");
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 1);
- AddonManager.getAddonByID(ID1, function(b1_3) {
- b1_3.uninstall();
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
+ b1.uninstall();
do_execute_soon(run_test_17);
});
@@ -882,18 +921,18 @@ function run_test_17() {
shutdownManager();
manuallyInstall(do_get_addon("test_bootstrap1_1"), userExtDir,
- ID1);
+ "bootstrap1@tests.mozilla.org");
+ resetPrefs();
startupManager();
- AddonManager.getAddonByID(ID1, function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
// Should have installed and started
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonStarted(ID1, "1.0");
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 1);
do_check_neq(b1, null);
do_check_eq(b1.version, "1.0");
do_check_true(b1.isActive);
- do_check_false(b1.isSystem);
do_check_bootstrappedPref(run_test_18);
});
@@ -902,15 +941,15 @@ function run_test_17() {
// Check that installing a new bootstrapped extension in the profile replaces
// the existing one
function run_test_18() {
- BootstrapMonitor.promiseAddonStartup(ID1).then(function test_18_after_startup() {
- AddonManager.getAddonByID(ID1, function(b1) {
+ resetPrefs();
+ waitForPref("bootstraptest.startup_reason", function test_18_after_startup() {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
// Should have installed and started
- BootstrapMonitor.checkAddonInstalled(ID1, "2.0");
- BootstrapMonitor.checkAddonStarted(ID1, "2.0");
+ do_check_eq(getInstalledVersion(), 2);
+ do_check_eq(getActiveVersion(), 2);
do_check_neq(b1, null);
do_check_eq(b1.version, "2.0");
do_check_true(b1.isActive);
- do_check_false(b1.isSystem);
do_check_eq(getShutdownReason(), ADDON_UPGRADE);
do_check_eq(getUninstallReason(), ADDON_UPGRADE);
@@ -930,10 +969,11 @@ function run_test_18() {
// Check that uninstalling the profile version reveals the non-profile one
function run_test_19() {
- AddonManager.getAddonByID(ID1, function(b1) {
+ resetPrefs();
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
// The revealed add-on gets activated asynchronously
prepare_test({
- [ID1]: [
+ "bootstrap1@tests.mozilla.org": [
["onUninstalling", false],
"onUninstalled",
["onInstalling", false],
@@ -946,14 +986,13 @@ function run_test_19() {
}
function check_test_19() {
- AddonManager.getAddonByID(ID1, function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
// Should have reverted to the older version
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonStarted(ID1, "1.0");
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 1);
do_check_neq(b1, null);
do_check_eq(b1.version, "1.0");
do_check_true(b1.isActive);
- do_check_false(b1.isSystem);
// TODO these reasons really should be ADDON_DOWNGRADE (bug 607818)
do_check_eq(getShutdownReason(), ADDON_UNINSTALL);
@@ -961,10 +1000,10 @@ function check_test_19() {
do_check_eq(getInstallReason(), ADDON_INSTALL);
do_check_eq(getStartupReason(), ADDON_INSTALL);
- do_check_eq(getShutdownNewVersion(), undefined);
- do_check_eq(getUninstallNewVersion(), undefined);
- do_check_eq(getInstallOldVersion(), undefined);
- do_check_eq(getStartupOldVersion(), undefined);
+ do_check_eq(getShutdownNewVersion(), 0);
+ do_check_eq(getUninstallNewVersion(), 0);
+ do_check_eq(getInstallOldVersion(), 0);
+ do_check_eq(getStartupOldVersion(), 0);
do_check_bootstrappedPref(run_test_20);
});
@@ -973,31 +1012,31 @@ function check_test_19() {
// Check that a new profile extension detected at startup replaces the non-profile
// one
function run_test_20() {
+ resetPrefs();
shutdownManager();
manuallyInstall(do_get_addon("test_bootstrap1_2"), profileDir,
- ID1);
+ "bootstrap1@tests.mozilla.org");
startupManager();
- AddonManager.getAddonByID(ID1, function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
// Should have installed and started
- BootstrapMonitor.checkAddonInstalled(ID1, "2.0");
- BootstrapMonitor.checkAddonStarted(ID1, "2.0");
+ do_check_eq(getInstalledVersion(), 2);
+ do_check_eq(getActiveVersion(), 2);
do_check_neq(b1, null);
do_check_eq(b1.version, "2.0");
do_check_true(b1.isActive);
- do_check_false(b1.isSystem);
do_check_eq(getShutdownReason(), APP_SHUTDOWN);
do_check_eq(getUninstallReason(), ADDON_UPGRADE);
do_check_eq(getInstallReason(), ADDON_UPGRADE);
do_check_eq(getStartupReason(), APP_STARTUP);
- do_check_eq(getShutdownNewVersion(), undefined);
+ do_check_eq(getShutdownNewVersion(), 0);
do_check_eq(getUninstallNewVersion(), 2);
do_check_eq(getInstallOldVersion(), 1);
- do_check_eq(getStartupOldVersion(), undefined);
+ do_check_eq(getStartupOldVersion(), 0);
do_execute_soon(run_test_21);
});
@@ -1005,43 +1044,40 @@ function run_test_20() {
// Check that a detected removal reveals the non-profile one
function run_test_21() {
+ resetPrefs();
shutdownManager();
- do_check_eq(getShutdownReason(), APP_SHUTDOWN);
- do_check_eq(getShutdownNewVersion(), undefined);
-
- manuallyUninstall(profileDir, ID1);
- BootstrapMonitor.clear(ID1);
+ manuallyUninstall(profileDir, "bootstrap1@tests.mozilla.org");
startupManager();
- AddonManager.getAddonByID(ID1, function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
// Should have installed and started
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonStarted(ID1, "1.0");
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 1);
do_check_neq(b1, null);
do_check_eq(b1.version, "1.0");
do_check_true(b1.isActive);
- do_check_false(b1.isSystem);
+
+ do_check_eq(getShutdownReason(), APP_SHUTDOWN);
+ do_check_eq(getShutdownNewVersion(), 0);
// This won't be set as the bootstrap script was gone so we couldn't
// uninstall it properly
- do_check_eq(getUninstallReason(), undefined);
- do_check_eq(getUninstallNewVersion(), undefined);
+ do_check_eq(getUninstallReason(), -1);
+ do_check_eq(getUninstallNewVersion(), -1);
- do_check_eq(getInstallReason(), ADDON_DOWNGRADE);
- do_check_eq(getInstallOldVersion(), 2);
+ // TODO this reason should probably be ADDON_DOWNGRADE (bug 607818)
+ do_check_eq(getInstallReason(), ADDON_INSTALL);
+ do_check_eq(getInstallOldVersion(), 0);
do_check_eq(getStartupReason(), APP_STARTUP);
- do_check_eq(getStartupOldVersion(), undefined);
+ do_check_eq(getStartupOldVersion(), 0);
do_check_bootstrappedPref(function() {
- shutdownManager();
+ manuallyUninstall(userExtDir, "bootstrap1@tests.mozilla.org");
- manuallyUninstall(userExtDir, ID1);
- BootstrapMonitor.clear(ID1);
-
- startupManager(false);
+ restartManager();
run_test_22();
});
});
@@ -1052,55 +1088,53 @@ function run_test_22() {
shutdownManager();
let file = manuallyInstall(do_get_addon("test_bootstrap1_1"), profileDir,
- ID1);
+ "bootstrap1@tests.mozilla.org");
// Make it look old so changes are detected
setExtensionModifiedTime(file, file.lastModifiedTime - 5000);
startupManager();
- AddonManager.getAddonByID(ID1, callback_soon(function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", callback_soon(function(b1) {
// Should have installed and started
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonStarted(ID1, "1.0");
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 1);
do_check_neq(b1, null);
do_check_eq(b1.version, "1.0");
do_check_true(b1.isActive);
- do_check_false(b1.isSystem);
+ resetPrefs();
shutdownManager();
- do_check_eq(getShutdownReason(), APP_SHUTDOWN);
- do_check_eq(getShutdownNewVersion(), undefined);
-
- manuallyUninstall(profileDir, ID1);
- BootstrapMonitor.clear(ID1);
+ manuallyUninstall(profileDir, "bootstrap1@tests.mozilla.org");
manuallyInstall(do_get_addon("test_bootstrap1_2"), profileDir,
- ID1);
+ "bootstrap1@tests.mozilla.org");
startupManager();
- AddonManager.getAddonByID(ID1, function(b1_2) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
// Should have installed and started
- BootstrapMonitor.checkAddonInstalled(ID1, "2.0");
- BootstrapMonitor.checkAddonStarted(ID1, "2.0");
- do_check_neq(b1_2, null);
- do_check_eq(b1_2.version, "2.0");
- do_check_true(b1_2.isActive);
- do_check_false(b1_2.isSystem);
+ do_check_eq(getInstalledVersion(), 2);
+ do_check_eq(getActiveVersion(), 2);
+ do_check_neq(b1, null);
+ do_check_eq(b1.version, "2.0");
+ do_check_true(b1.isActive);
+
+ do_check_eq(getShutdownReason(), APP_SHUTDOWN);
+ do_check_eq(getShutdownNewVersion(), 0);
// This won't be set as the bootstrap script was gone so we couldn't
// uninstall it properly
- do_check_eq(getUninstallReason(), undefined);
- do_check_eq(getUninstallNewVersion(), undefined);
+ do_check_eq(getUninstallReason(), -1);
+ do_check_eq(getUninstallNewVersion(), -1);
do_check_eq(getInstallReason(), ADDON_UPGRADE);
do_check_eq(getInstallOldVersion(), 1);
do_check_eq(getStartupReason(), APP_STARTUP);
- do_check_eq(getStartupOldVersion(), undefined);
+ do_check_eq(getStartupOldVersion(), 0);
do_check_bootstrappedPref(function() {
- b1_2.uninstall();
+ b1.uninstall();
run_test_23();
});
@@ -1134,11 +1168,11 @@ function run_test_23() {
do_check_false(install.addon.hasResource("foo.bar"));
do_check_eq(install.addon.operationsRequiringRestart &
AddonManager.OP_NEEDS_RESTART_INSTALL, 0);
- do_check_not_in_crash_annotation(ID1, "1.0");
+ do_check_not_in_crash_annotation("bootstrap1@tests.mozilla.org", "1.0");
let addon = install.addon;
prepare_test({
- [ID1]: [
+ "bootstrap1@tests.mozilla.org": [
["onInstalling", false],
"onInstalled"
]
@@ -1160,32 +1194,31 @@ function check_test_23() {
// doesn't require a restart.
do_check_eq(installs.length, 0);
- AddonManager.getAddonByID(ID1, function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
do_execute_soon(function test_23_after_startup() {
do_check_neq(b1, null);
do_check_eq(b1.version, "1.0");
do_check_false(b1.appDisabled);
do_check_false(b1.userDisabled);
do_check_true(b1.isActive);
- do_check_false(b1.isSystem);
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonStarted(ID1, "1.0");
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 1);
do_check_eq(getStartupReason(), ADDON_INSTALL);
- do_check_eq(getStartupOldVersion(), undefined);
+ do_check_eq(getStartupOldVersion(), 0);
do_check_true(b1.hasResource("install.rdf"));
do_check_true(b1.hasResource("bootstrap.js"));
do_check_false(b1.hasResource("foo.bar"));
- do_check_in_crash_annotation(ID1, "1.0");
+ do_check_in_crash_annotation("bootstrap1@tests.mozilla.org", "1.0");
- let dir = do_get_addon_root_uri(profileDir, ID1);
+ let dir = do_get_addon_root_uri(profileDir, "bootstrap1@tests.mozilla.org");
do_check_eq(b1.getResourceURI("bootstrap.js").spec, dir + "bootstrap.js");
AddonManager.getAddonsWithOperationsByTypes(null, callback_soon(function(list) {
do_check_eq(list.length, 0);
restartManager();
- AddonManager.getAddonByID(ID1, callback_soon(function(b1_2) {
- b1_2.uninstall();
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", callback_soon(function(b1) {
+ b1.uninstall();
restartManager();
testserver.stop(run_test_24);
@@ -1198,42 +1231,45 @@ function check_test_23() {
// Tests that we recover from a broken preference
function run_test_24() {
+ resetPrefs();
do_print("starting 24");
- Promise.all([BootstrapMonitor.promiseAddonStartup(ID2),
- promiseInstallAllFiles([do_get_addon("test_bootstrap1_1"), do_get_addon("test_bootstrap2_1")])])
+ Promise.all([promisePref("bootstraptest2.active_version"),
+ promiseInstall([do_get_addon("test_bootstrap1_1"), do_get_addon("test_bootstrap2_1")])])
.then(function test_24_pref() {
do_print("test 24 got prefs");
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonStarted(ID1, "1.0");
- BootstrapMonitor.checkAddonInstalled(ID2, "1.0");
- BootstrapMonitor.checkAddonStarted(ID2, "1.0");
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 1);
+ do_check_eq(getInstalledVersion2(), 1);
+ do_check_eq(getActiveVersion2(), 1);
+
+ resetPrefs();
restartManager();
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonStarted(ID1, "1.0");
- BootstrapMonitor.checkAddonInstalled(ID2, "1.0");
- BootstrapMonitor.checkAddonStarted(ID2, "1.0");
+ do_check_eq(getInstalledVersion(), -1);
+ do_check_eq(getActiveVersion(), 1);
+ do_check_eq(getInstalledVersion2(), -1);
+ do_check_eq(getActiveVersion2(), 1);
shutdownManager();
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonNotStarted(ID1);
- BootstrapMonitor.checkAddonInstalled(ID2, "1.0");
- BootstrapMonitor.checkAddonNotStarted(ID2);
+ do_check_eq(getInstalledVersion(), -1);
+ do_check_eq(getActiveVersion(), 0);
+ do_check_eq(getInstalledVersion2(), -1);
+ do_check_eq(getActiveVersion2(), 0);
- // Break the preference
+ // Break the preferece
let bootstrappedAddons = JSON.parse(Services.prefs.getCharPref("extensions.bootstrappedAddons"));
- bootstrappedAddons[ID1].descriptor += "foo";
+ bootstrappedAddons["bootstrap1@tests.mozilla.org"].descriptor += "foo";
Services.prefs.setCharPref("extensions.bootstrappedAddons", JSON.stringify(bootstrappedAddons));
startupManager(false);
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonStarted(ID1, "1.0");
- BootstrapMonitor.checkAddonInstalled(ID2, "1.0");
- BootstrapMonitor.checkAddonStarted(ID2, "1.0");
+ do_check_eq(getInstalledVersion(), -1);
+ do_check_eq(getActiveVersion(), 1);
+ do_check_eq(getInstalledVersion2(), -1);
+ do_check_eq(getActiveVersion2(), 1);
run_test_25();
});
@@ -1242,36 +1278,34 @@ function run_test_24() {
// Tests that updating from a bootstrappable add-on to a normal add-on calls
// the uninstall method
function run_test_25() {
- BootstrapMonitor.promiseAddonStartup(ID1).then(function test_25_after_pref() {
+ waitForPref("bootstraptest.startup_reason", function test_25_after_pref() {
do_print("test 25 pref change detected");
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonStarted(ID1, "1.0");
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 1);
installAllFiles([do_get_addon("test_bootstrap1_4")], function() {
// Needs a restart to complete this so the old version stays running
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonStarted(ID1, "1.0");
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 1);
- AddonManager.getAddonByID(ID1, callback_soon(function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", callback_soon(function(b1) {
do_check_neq(b1, null);
do_check_eq(b1.version, "1.0");
do_check_true(b1.isActive);
- do_check_false(b1.isSystem);
do_check_true(hasFlag(b1.pendingOperations, AddonManager.PENDING_UPGRADE));
restartManager();
- BootstrapMonitor.checkAddonNotInstalled(ID1);
+ do_check_eq(getInstalledVersion(), 0);
do_check_eq(getUninstallReason(), ADDON_UPGRADE);
do_check_eq(getUninstallNewVersion(), 4);
- BootstrapMonitor.checkAddonNotStarted(ID1);
+ do_check_eq(getActiveVersion(), 0);
- AddonManager.getAddonByID(ID1, function(b1_2) {
- do_check_neq(b1_2, null);
- do_check_eq(b1_2.version, "4.0");
- do_check_true(b1_2.isActive);
- do_check_false(b1_2.isSystem);
- do_check_eq(b1_2.pendingOperations, AddonManager.PENDING_NONE);
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
+ do_check_neq(b1, null);
+ do_check_eq(b1.version, "4.0");
+ do_check_true(b1.isActive);
+ do_check_eq(b1.pendingOperations, AddonManager.PENDING_NONE);
do_check_bootstrappedPref(run_test_26);
});
@@ -1288,29 +1322,27 @@ function run_test_25() {
function run_test_26() {
installAllFiles([do_get_addon("test_bootstrap1_1")], function() {
// Needs a restart to complete this
- BootstrapMonitor.checkAddonNotInstalled(ID1);
- BootstrapMonitor.checkAddonNotStarted(ID1);
+ do_check_eq(getInstalledVersion(), 0);
+ do_check_eq(getActiveVersion(), 0);
- AddonManager.getAddonByID(ID1, callback_soon(function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", callback_soon(function(b1) {
do_check_neq(b1, null);
do_check_eq(b1.version, "4.0");
do_check_true(b1.isActive);
- do_check_false(b1.isSystem);
do_check_true(hasFlag(b1.pendingOperations, AddonManager.PENDING_UPGRADE));
restartManager();
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
+ do_check_eq(getInstalledVersion(), 1);
do_check_eq(getInstallReason(), ADDON_DOWNGRADE);
do_check_eq(getInstallOldVersion(), 4);
- BootstrapMonitor.checkAddonStarted(ID1, "1.0");
+ do_check_eq(getActiveVersion(), 1);
- AddonManager.getAddonByID(ID1, function(b1_2) {
- do_check_neq(b1_2, null);
- do_check_eq(b1_2.version, "1.0");
- do_check_true(b1_2.isActive);
- do_check_false(b1_2.isSystem);
- do_check_eq(b1_2.pendingOperations, AddonManager.PENDING_NONE);
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
+ do_check_neq(b1, null);
+ do_check_eq(b1.version, "1.0");
+ do_check_true(b1.isActive);
+ do_check_eq(b1.pendingOperations, AddonManager.PENDING_NONE);
do_check_bootstrappedPref(run_test_27);
});
@@ -1321,38 +1353,38 @@ function run_test_26() {
// Tests that updating from a bootstrappable add-on to a normal add-on while
// disabled calls the uninstall method
function run_test_27() {
- AddonManager.getAddonByID(ID1, function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
do_check_neq(b1, null);
b1.userDisabled = true;
do_check_eq(b1.version, "1.0");
do_check_false(b1.isActive);
do_check_eq(b1.pendingOperations, AddonManager.PENDING_NONE);
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonNotStarted(ID1);
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 0);
installAllFiles([do_get_addon("test_bootstrap1_4")], function() {
// Updating disabled things happens immediately
- BootstrapMonitor.checkAddonNotInstalled(ID1);
+ do_check_eq(getInstalledVersion(), 0);
do_check_eq(getUninstallReason(), ADDON_UPGRADE);
do_check_eq(getUninstallNewVersion(), 4);
- BootstrapMonitor.checkAddonNotStarted(ID1);
+ do_check_eq(getActiveVersion(), 0);
- AddonManager.getAddonByID(ID1, callback_soon(function(b1_2) {
- do_check_neq(b1_2, null);
- do_check_eq(b1_2.version, "4.0");
- do_check_false(b1_2.isActive);
- do_check_eq(b1_2.pendingOperations, AddonManager.PENDING_NONE);
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", callback_soon(function(b1) {
+ do_check_neq(b1, null);
+ do_check_eq(b1.version, "4.0");
+ do_check_false(b1.isActive);
+ do_check_eq(b1.pendingOperations, AddonManager.PENDING_NONE);
restartManager();
- BootstrapMonitor.checkAddonNotInstalled(ID1);
- BootstrapMonitor.checkAddonNotStarted(ID1);
+ do_check_eq(getInstalledVersion(), 0);
+ do_check_eq(getActiveVersion(), 0);
- AddonManager.getAddonByID(ID1, function(b1_3) {
- do_check_neq(b1_3, null);
- do_check_eq(b1_3.version, "4.0");
- do_check_false(b1_3.isActive);
- do_check_eq(b1_3.pendingOperations, AddonManager.PENDING_NONE);
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
+ do_check_neq(b1, null);
+ do_check_eq(b1.version, "4.0");
+ do_check_false(b1.isActive);
+ do_check_eq(b1.pendingOperations, AddonManager.PENDING_NONE);
do_check_bootstrappedPref(run_test_28);
});
@@ -1367,12 +1399,12 @@ function run_test_28() {
installAllFiles([do_get_addon("test_bootstrap1_1")], function() {
do_execute_soon(function bootstrap_disabled_downgrade_check() {
// Doesn't need a restart to complete this
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
+ do_check_eq(getInstalledVersion(), 1);
do_check_eq(getInstallReason(), ADDON_DOWNGRADE);
do_check_eq(getInstallOldVersion(), 4);
- BootstrapMonitor.checkAddonNotStarted(ID1);
+ do_check_eq(getActiveVersion(), 0);
- AddonManager.getAddonByID(ID1, callback_soon(function(b1) {
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", callback_soon(function(b1) {
do_check_neq(b1, null);
do_check_eq(b1.version, "1.0");
do_check_false(b1.isActive);
@@ -1381,19 +1413,18 @@ function run_test_28() {
restartManager();
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonNotStarted(ID1);
-
- AddonManager.getAddonByID(ID1, function(b1_2) {
- do_check_neq(b1_2, null);
- do_check_true(b1_2.userDisabled);
- b1_2.userDisabled = false;
- do_check_eq(b1_2.version, "1.0");
- do_check_true(b1_2.isActive);
- do_check_false(b1_2.isSystem);
- do_check_eq(b1_2.pendingOperations, AddonManager.PENDING_NONE);
- BootstrapMonitor.checkAddonInstalled(ID1, "1.0");
- BootstrapMonitor.checkAddonStarted(ID1, "1.0");
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 0);
+
+ AddonManager.getAddonByID("bootstrap1@tests.mozilla.org", function(b1) {
+ do_check_neq(b1, null);
+ do_check_true(b1.userDisabled);
+ b1.userDisabled = false;
+ do_check_eq(b1.version, "1.0");
+ do_check_true(b1.isActive);
+ do_check_eq(b1.pendingOperations, AddonManager.PENDING_NONE);
+ do_check_eq(getInstalledVersion(), 1);
+ do_check_eq(getActiveVersion(), 1);
do_check_bootstrappedPref(do_test_finished);
});