diff options
Diffstat (limited to 'toolkit/mozapps/extensions/test/xpcshell/test_install_strictcompat.js')
-rw-r--r-- | toolkit/mozapps/extensions/test/xpcshell/test_install_strictcompat.js | 184 |
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(); } |