summaryrefslogtreecommitdiffstats
path: root/toolkit/mozapps/extensions/test/xpcshell/test_install_strictcompat.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/mozapps/extensions/test/xpcshell/test_install_strictcompat.js')
-rw-r--r--toolkit/mozapps/extensions/test/xpcshell/test_install_strictcompat.js184
1 files changed, 56 insertions, 128 deletions
diff --git a/toolkit/mozapps/extensions/test/xpcshell/test_install_strictcompat.js b/toolkit/mozapps/extensions/test/xpcshell/test_install_strictcompat.js
index 77f806ba2..0c7003d59 100644
--- a/toolkit/mozapps/extensions/test/xpcshell/test_install_strictcompat.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_install_strictcompat.js
@@ -3,9 +3,14 @@
*/
// This verifies that add-ons can be installed from XPI files
-var Cc = Components.classes;
-var Ci = Components.interfaces;
-var Cu = Components.utils;
+const Cc = Components.classes;
+const Ci = Components.interfaces;
+const Cu = Components.utils;
+
+// Maximum error in file modification times. Some file systems don't store
+// modification times exactly. As long as we are closer than this then it
+// still passes.
+const MAX_TIME_DIFFERENCE = 3000;
// install.rdf size, icon.png, icon64.png size
const ADDON1_SIZE = 705 + 16 + 16;
@@ -177,13 +182,13 @@ function check_test_1() {
do_check_true(a1.hasResource("install.rdf"));
do_check_false(a1.hasResource("foo.bar"));
- let root_uri = do_get_addon_root_uri(profileDir, "addon1@tests.mozilla.org");
- do_check_eq(a1.getResourceURI("install.rdf").spec, root_uri + "install.rdf");
- do_check_eq(a1.iconURL, root_uri + "icon.png");
- do_check_eq(a1.icon64URL, root_uri + "icon64.png");
+ let uri = do_get_addon_root_uri(profileDir, "addon1@tests.mozilla.org");
+ do_check_eq(a1.getResourceURI("install.rdf").spec, uri + "install.rdf");
+ do_check_eq(a1.iconURL, uri + "icon.png");
+ do_check_eq(a1.icon64URL, uri + "icon64.png");
a1.uninstall();
- do_execute_soon(function() { run_test_2(a1) });
+ do_execute_soon(function(){run_test_2(a1)});
});
});
}));
@@ -192,9 +197,8 @@ function check_test_1() {
// Tests that an install from a url downloads.
function run_test_2(aAddon) {
- let { id, version } = aAddon;
restartManager();
- do_check_not_in_crash_annotation(id, version);
+ do_check_not_in_crash_annotation(aAddon.id, aAddon.version);
let url = "http://localhost:4444/addons/test_install2_1.xpi";
AddonManager.getInstallForURL(url, function(install) {
@@ -216,7 +220,7 @@ function run_test_2(aAddon) {
], check_test_2);
install.addListener({
- onDownloadProgress: function() {
+ onDownloadProgress: function(install) {
do_execute_soon(function() {
Components.utils.forceGC();
});
@@ -369,8 +373,8 @@ function check_test_5(install) {
do_check_eq(installs[0].addon, olda2.pendingUpgrade);
restartManager();
- AddonManager.getInstallsByTypes(null, function(installs2) {
- do_check_eq(installs2.length, 0);
+ AddonManager.getInstallsByTypes(null, function(installs) {
+ do_check_eq(installs.length, 0);
AddonManager.getAddonByID("addon2@tests.mozilla.org", function(a2) {
do_check_neq(a2, null);
@@ -635,8 +639,6 @@ function run_test_11() {
"onNewInstall",
"onNewInstall",
"onNewInstall",
- "onNewInstall",
- "onNewInstall",
"onNewInstall"
]);
@@ -644,22 +646,11 @@ function run_test_11() {
ensure_test_completed();
do_check_neq(install, null);
do_check_neq(install.linkedInstalls, null);
- do_check_eq(install.linkedInstalls.length, 5);
+ do_check_eq(install.linkedInstalls.length, 3);
// Might be in any order so sort them based on ID
let installs = [install].concat(install.linkedInstalls);
installs.sort(function(a, b) {
- if (a.state != b.state) {
- if (a.state == AddonManager.STATE_DOWNLOAD_FAILED)
- return 1;
- else if (b.state == AddonManager.STATE_DOWNLOAD_FAILED)
- return -1;
- }
-
- // Don't care what order the failed installs show up in
- if (a.state == AddonManager.STATE_DOWNLOAD_FAILED)
- return 0;
-
if (a.addon.id < b.addon.id)
return -1;
if (a.addon.id > b.addon.id)
@@ -707,12 +698,6 @@ function run_test_11() {
do_check_true(hasFlag(installs[3].addon.operationsRequiringRestart,
AddonManager.OP_NEEDS_RESTART_INSTALL));
- do_check_eq(installs[4].state, AddonManager.STATE_DOWNLOAD_FAILED);
- do_check_eq(installs[4].error, AddonManager.ERROR_CORRUPT_FILE);
-
- do_check_eq(installs[5].state, AddonManager.STATE_DOWNLOAD_FAILED);
- do_check_eq(installs[5].error, AddonManager.ERROR_CORRUPT_FILE);
-
AddonManager.getAllInstalls(function(aInstalls) {
do_check_eq(aInstalls.length, 4);
@@ -821,8 +806,6 @@ function run_test_12() {
"onNewInstall",
"onNewInstall",
"onNewInstall",
- "onNewInstall",
- "onNewInstall",
"onDownloadEnded"
],
"addon4@tests.mozilla.org": [
@@ -847,22 +830,11 @@ function run_test_12() {
}
function check_test_12() {
- do_check_eq(gInstall.linkedInstalls.length, 5);
+ do_check_eq(gInstall.linkedInstalls.length, 3);
// Might be in any order so sort them based on ID
let installs = [gInstall].concat(gInstall.linkedInstalls);
installs.sort(function(a, b) {
- if (a.state != b.state) {
- if (a.state == AddonManager.STATE_DOWNLOAD_FAILED)
- return 1;
- else if (b.state == AddonManager.STATE_DOWNLOAD_FAILED)
- return -1;
- }
-
- // Don't care what order the failed installs show up in
- if (a.state == AddonManager.STATE_DOWNLOAD_FAILED)
- return 0;
-
if (a.addon.id < b.addon.id)
return -1;
if (a.addon.id > b.addon.id)
@@ -902,12 +874,6 @@ function check_test_12() {
do_check_eq(installs[3].name, "Multi Test 4");
do_check_eq(installs[3].state, AddonManager.STATE_INSTALLED);
- do_check_eq(installs[4].state, AddonManager.STATE_DOWNLOAD_FAILED);
- do_check_eq(installs[4].error, AddonManager.ERROR_CORRUPT_FILE);
-
- do_check_eq(installs[5].state, AddonManager.STATE_DOWNLOAD_FAILED);
- do_check_eq(installs[5].error, AddonManager.ERROR_CORRUPT_FILE);
-
restartManager();
AddonManager.getAddonsByIDs(["addon4@tests.mozilla.org",
@@ -1129,26 +1095,26 @@ function run_test_16() {
do_check_true(a2.userDisabled);
do_check_false(a2.isActive);
- let url_2 = "http://localhost:4444/addons/test_install2_2.xpi";
- AddonManager.getInstallForURL(url_2, function(aInstall_2) {
- aInstall_2.addListener({
+ let url = "http://localhost:4444/addons/test_install2_2.xpi";
+ AddonManager.getInstallForURL(url, function(aInstall) {
+ aInstall.addListener({
onInstallEnded: function() {
do_execute_soon(function test16_install2() {
- do_check_true(aInstall_2.addon.userDisabled);
+ do_check_true(aInstall.addon.userDisabled);
restartManager();
- AddonManager.getAddonByID("addon2@tests.mozilla.org", function(a2_2) {
- do_check_true(a2_2.userDisabled);
- do_check_false(a2_2.isActive);
+ AddonManager.getAddonByID("addon2@tests.mozilla.org", function(a2) {
+ do_check_true(a2.userDisabled);
+ do_check_false(a2.isActive);
- a2_2.uninstall();
+ a2.uninstall();
do_execute_soon(run_test_17);
});
});
}
});
- aInstall_2.install();
+ aInstall.install();
}, "application/x-xpinstall");
});
});
@@ -1166,7 +1132,7 @@ function run_test_17() {
AddonManager.getInstallForURL(url, function(aInstall) {
aInstall.addListener({
onInstallEnded: function() {
- do_execute_soon(function() {
+ do_execute_soon(function test17_install1() {
do_check_false(aInstall.addon.userDisabled);
restartManager();
@@ -1175,29 +1141,29 @@ function run_test_17() {
do_check_false(a2.userDisabled);
do_check_true(a2.isActive);
- let url_2 = "http://localhost:4444/addons/test_install2_2.xpi";
- AddonManager.getInstallForURL(url_2, function(aInstall_2) {
- aInstall_2.addListener({
+ let url = "http://localhost:4444/addons/test_install2_2.xpi";
+ AddonManager.getInstallForURL(url, function(aInstall) {
+ aInstall.addListener({
onInstallStarted: function() {
- do_check_false(aInstall_2.addon.userDisabled);
- aInstall_2.addon.userDisabled = true;
+ do_check_false(aInstall.addon.userDisabled);
+ aInstall.addon.userDisabled = true;
},
onInstallEnded: function() {
- do_execute_soon(function() {
+ do_execute_soon(function test17_install1() {
restartManager();
- AddonManager.getAddonByID("addon2@tests.mozilla.org", function(a2_2) {
- do_check_true(a2_2.userDisabled);
- do_check_false(a2_2.isActive);
+ AddonManager.getAddonByID("addon2@tests.mozilla.org", function(a2) {
+ do_check_true(a2.userDisabled);
+ do_check_false(a2.isActive);
- a2_2.uninstall();
+ a2.uninstall();
do_execute_soon(run_test_18);
});
});
}
});
- aInstall_2.install();
+ aInstall.install();
}, "application/x-xpinstall");
});
});
@@ -1227,29 +1193,29 @@ function run_test_18() {
do_check_true(a2.userDisabled);
do_check_false(a2.isActive);
- let url_2 = "http://localhost:4444/addons/test_install2_2.xpi";
- AddonManager.getInstallForURL(url_2, function(aInstall_2) {
- aInstall_2.addListener({
+ let url = "http://localhost:4444/addons/test_install2_2.xpi";
+ AddonManager.getInstallForURL(url, function(aInstall) {
+ aInstall.addListener({
onInstallStarted: function() {
- do_check_true(aInstall_2.addon.userDisabled);
- aInstall_2.addon.userDisabled = false;
+ do_check_true(aInstall.addon.userDisabled);
+ aInstall.addon.userDisabled = false;
},
onInstallEnded: function() {
do_execute_soon(function test18_install2() {
restartManager();
- AddonManager.getAddonByID("addon2@tests.mozilla.org", function(a2_2) {
- do_check_false(a2_2.userDisabled);
- do_check_true(a2_2.isActive);
+ AddonManager.getAddonByID("addon2@tests.mozilla.org", function(a2) {
+ do_check_false(a2.userDisabled);
+ do_check_true(a2.isActive);
- a2_2.uninstall();
+ a2.uninstall();
do_execute_soon(run_test_18_1);
});
});
}
});
- aInstall_2.install();
+ aInstall.install();
}, "application/x-xpinstall");
});
});
@@ -1273,7 +1239,7 @@ function run_test_18_1() {
let url = "http://localhost:4444/addons/test_install2_1.xpi";
AddonManager.getInstallForURL(url, function(aInstall) {
aInstall.addListener({
- onInstallEnded: function(unused, aAddon) {
+ onInstallEnded: function(aInstall, aAddon) {
do_execute_soon(function test18_install() {
do_check_neq(aAddon.fullDescription, "Repository description");
@@ -1301,7 +1267,7 @@ function run_test_19() {
let url = "http://localhost:4444/addons/test_install2_1.xpi";
AddonManager.getInstallForURL(url, function(aInstall) {
aInstall.addListener({
- onInstallEnded: function(unused, aAddon) {
+ onInstallEnded: function(aInstall, aAddon) {
do_execute_soon(function test19_install() {
do_check_eq(aAddon.fullDescription, "Repository description");
@@ -1327,7 +1293,7 @@ function run_test_20() {
let url = "http://localhost:4444/addons/test_install2_1.xpi";
AddonManager.getInstallForURL(url, function(aInstall) {
aInstall.addListener({
- onInstallEnded: function(unused, aAddon) {
+ onInstallEnded: function(aInstall, aAddon) {
do_execute_soon(function test20_install() {
do_check_eq(aAddon.fullDescription, "Repository description");
@@ -1614,8 +1580,8 @@ function run_test_26() {
let url = "http://localhost:4444/redirect?/addons/test_install1.xpi";
AddonManager.getInstallForURL(url, function(aInstall) {
aInstall.addListener({
- onDownloadProgress: function(aDownloadProgressInstall) {
- aDownloadProgressInstall.cancel();
+ onDownloadProgress: function(aInstall) {
+ aInstall.cancel();
}
});
@@ -1684,43 +1650,5 @@ function finish_test_27(aInstall) {
ensure_test_completed();
- run_test_30();
-}
-
-// Tests that a multi-package XPI with no add-ons inside shows up as a
-// corrupt file
-function run_test_30() {
- prepare_test({ }, [
- "onNewInstall"
- ]);
-
- AddonManager.getInstallForFile(do_get_addon("test_install7"), function(install) {
- ensure_test_completed();
-
- do_check_neq(install, null);
- do_check_eq(install.state, AddonManager.STATE_DOWNLOAD_FAILED);
- do_check_eq(install.error, AddonManager.ERROR_CORRUPT_FILE);
- do_check_eq(install.linkedInstalls, null);
-
- run_test_31();
- });
-}
-
-// Tests that a multi-package XPI with no valid add-ons inside shows up as a
-// corrupt file
-function run_test_31() {
- prepare_test({ }, [
- "onNewInstall"
- ]);
-
- AddonManager.getInstallForFile(do_get_addon("test_install8"), function(install) {
- ensure_test_completed();
-
- do_check_neq(install, null);
- do_check_eq(install.state, AddonManager.STATE_DOWNLOAD_FAILED);
- do_check_eq(install.error, AddonManager.ERROR_CORRUPT_FILE);
- do_check_eq(install.linkedInstalls, null);
-
- end_test();
- });
+ end_test();
}