diff options
Diffstat (limited to 'toolkit/mozapps/webextensions/test/xpcshell/test_hotfix.js')
-rw-r--r-- | toolkit/mozapps/webextensions/test/xpcshell/test_hotfix.js | 309 |
1 files changed, 0 insertions, 309 deletions
diff --git a/toolkit/mozapps/webextensions/test/xpcshell/test_hotfix.js b/toolkit/mozapps/webextensions/test/xpcshell/test_hotfix.js deleted file mode 100644 index c9303897f..000000000 --- a/toolkit/mozapps/webextensions/test/xpcshell/test_hotfix.js +++ /dev/null @@ -1,309 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ - */ - -// This verifies that hotfix installation works - -// The test extension uses an insecure update url. -Services.prefs.setBoolPref("extensions.checkUpdateSecurity", false); -// Ignore any certificate requirements the app has set -Services.prefs.setBoolPref("extensions.hotfix.cert.checkAttributes", false); - -Components.utils.import("resource://testing-common/httpd.js"); -var testserver = new HttpServer(); -testserver.start(-1); -gPort = testserver.identity.primaryPort; -testserver.registerDirectory("/addons/", do_get_file("addons")); -mapFile("/data/test_hotfix_1.rdf", testserver); -mapFile("/data/test_hotfix_2.rdf", testserver); -mapFile("/data/test_hotfix_3.rdf", testserver); - -const profileDir = gProfD.clone(); -profileDir.append("extensions"); - -function run_test() { - createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2"); - - startupManager(); - - do_test_pending(); - run_test_1(); -} - -function end_test() { - testserver.stop(do_test_finished); -} - -// Test that background updates find and install any available hotfix -function run_test_1() { - Services.prefs.setCharPref("extensions.hotfix.id", "hotfix@tests.mozilla.org"); - Services.prefs.setCharPref("extensions.update.background.url", "http://localhost:" + - gPort + "/data/test_hotfix_1.rdf"); - - prepare_test({ - "hotfix@tests.mozilla.org": [ - "onInstalling" - ] - }, [ - "onNewInstall", - "onDownloadStarted", - "onDownloadEnded", - "onInstallStarted", - "onInstallEnded", - ], callback_soon(check_test_1)); - - // We don't need to wait on the promise, just waiting for the install to finish is enough. - AddonManagerInternal.backgroundUpdateCheck(); -} - -function check_test_1() { - restartManager(); - - AddonManager.getAddonByID("hotfix@tests.mozilla.org", function(aAddon) { - do_check_neq(aAddon, null); - do_check_eq(aAddon.version, "1.0"); - - aAddon.uninstall(); - do_execute_soon(run_test_2); - }); -} - -// Don't install an already used hotfix -function run_test_2() { - restartManager(); - - AddonManager.addInstallListener({ - onNewInstall: function() { - do_throw("Should not have seen a new install created"); - } - }); - - // Run the background update - AddonManagerInternal.backgroundUpdateCheck().then(run_test_3); -} - -// Install a newer hotfix -function run_test_3() { - restartManager(); - Services.prefs.setCharPref("extensions.hotfix.url", "http://localhost:" + - gPort + "/data/test_hotfix_2.rdf"); - - prepare_test({ - "hotfix@tests.mozilla.org": [ - "onInstalling" - ] - }, [ - "onNewInstall", - "onDownloadStarted", - "onDownloadEnded", - "onInstallStarted", - "onInstallEnded", - ], callback_soon(check_test_3)); - - AddonManagerInternal.backgroundUpdateCheck(); -} - -function check_test_3() { - restartManager(); - - AddonManager.getAddonByID("hotfix@tests.mozilla.org", function(aAddon) { - do_check_neq(aAddon, null); - do_check_eq(aAddon.version, "2.0"); - - aAddon.uninstall(); - do_execute_soon(run_test_4); - }); -} - -// Don't install an incompatible hotfix -function run_test_4() { - restartManager(); - - Services.prefs.setCharPref("extensions.hotfix.url", "http://localhost:" + - gPort + "/data/test_hotfix_3.rdf"); - - AddonManager.addInstallListener({ - onNewInstall: function() { - do_throw("Should not have seen a new install created"); - } - }); - - AddonManagerInternal.backgroundUpdateCheck().then(run_test_5); -} - -// Don't install an older hotfix -function run_test_5() { - restartManager(); - - Services.prefs.setCharPref("extensions.hotfix.url", "http://localhost:" + - gPort + "/data/test_hotfix_1.rdf"); - - AddonManager.addInstallListener({ - onNewInstall: function() { - do_throw("Should not have seen a new install created"); - } - }); - - AddonManagerInternal.backgroundUpdateCheck().then(run_test_6); -} - -// Don't re-download an already pending install -function run_test_6() { - restartManager(); - - Services.prefs.setCharPref("extensions.hotfix.lastVersion", "0"); - Services.prefs.setCharPref("extensions.hotfix.url", "http://localhost:" + - gPort + "/data/test_hotfix_1.rdf"); - - prepare_test({ - "hotfix@tests.mozilla.org": [ - "onInstalling" - ] - }, [ - "onNewInstall", - "onDownloadStarted", - "onDownloadEnded", - "onInstallStarted", - "onInstallEnded", - ], callback_soon(check_test_6)); - - AddonManagerInternal.backgroundUpdateCheck(); -} - -function check_test_6() { - AddonManager.addInstallListener({ - onNewInstall: function() { - do_throw("Should not have seen a new install created"); - } - }); - - AddonManagerInternal.backgroundUpdateCheck() - .then(promiseRestartManager) - .then(() => promiseAddonByID("hotfix@tests.mozilla.org")) - .then(aAddon => { - aAddon.uninstall(); - run_test_7(); - }); -} - -// Start downloading again if something cancels the install -function run_test_7() { - restartManager(); - - Services.prefs.setCharPref("extensions.hotfix.lastVersion", "0"); - - prepare_test({ - "hotfix@tests.mozilla.org": [ - "onInstalling" - ] - }, [ - "onNewInstall", - "onDownloadStarted", - "onDownloadEnded", - "onInstallStarted", - "onInstallEnded", - ], check_test_7); - - AddonManagerInternal.backgroundUpdateCheck(); -} - -function check_test_7(aInstall) { - prepare_test({ - "hotfix@tests.mozilla.org": [ - "onOperationCancelled" - ] - }, [ - "onInstallCancelled", - ]); - - aInstall.cancel(); - - prepare_test({ - "hotfix@tests.mozilla.org": [ - "onInstalling" - ] - }, [ - "onNewInstall", - "onDownloadStarted", - "onDownloadEnded", - "onInstallStarted", - "onInstallEnded", - ], callback_soon(finish_test_7)); - - AddonManagerInternal.backgroundUpdateCheck(); -} - -function finish_test_7() { - restartManager(); - - AddonManager.getAddonByID("hotfix@tests.mozilla.org", function(aAddon) { - do_check_neq(aAddon, null); - do_check_eq(aAddon.version, "1.0"); - - aAddon.uninstall(); - do_execute_soon(run_test_8); - }); -} - -// Cancel a pending install when a newer version is already available -function run_test_8() { - restartManager(); - - Services.prefs.setCharPref("extensions.hotfix.lastVersion", "0"); - Services.prefs.setCharPref("extensions.hotfix.url", "http://localhost:" + - gPort + "/data/test_hotfix_1.rdf"); - - prepare_test({ - "hotfix@tests.mozilla.org": [ - "onInstalling" - ] - }, [ - "onNewInstall", - "onDownloadStarted", - "onDownloadEnded", - "onInstallStarted", - "onInstallEnded", - ], check_test_8); - - AddonManagerInternal.backgroundUpdateCheck(); -} - -function check_test_8() { - Services.prefs.setCharPref("extensions.hotfix.url", "http://localhost:" + - gPort + "/data/test_hotfix_2.rdf"); - - prepare_test({ - "hotfix@tests.mozilla.org": [ - "onOperationCancelled", - "onInstalling" - ] - }, [ - "onNewInstall", - "onDownloadStarted", - "onDownloadEnded", - "onInstallStarted", - "onInstallCancelled", - "onInstallEnded", - ], finish_test_8); - - AddonManagerInternal.backgroundUpdateCheck(); -} - -function finish_test_8() { - AddonManager.getAllInstalls(callback_soon(function(aInstalls) { - do_check_eq(aInstalls.length, 1); - do_check_eq(aInstalls[0].version, "2.0"); - - restartManager(); - - AddonManager.getAddonByID("hotfix@tests.mozilla.org", callback_soon(function(aAddon) { - do_check_neq(aAddon, null); - do_check_eq(aAddon.version, "2.0"); - - aAddon.uninstall(); - restartManager(); - - end_test(); - })); - })); -} |