diff options
Diffstat (limited to 'toolkit/mozapps/webextensions/test/xpcshell/test_bug299716.js')
-rw-r--r-- | toolkit/mozapps/webextensions/test/xpcshell/test_bug299716.js | 208 |
1 files changed, 0 insertions, 208 deletions
diff --git a/toolkit/mozapps/webextensions/test/xpcshell/test_bug299716.js b/toolkit/mozapps/webextensions/test/xpcshell/test_bug299716.js deleted file mode 100644 index 66656abe6..000000000 --- a/toolkit/mozapps/webextensions/test/xpcshell/test_bug299716.js +++ /dev/null @@ -1,208 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -// Disables security checking our updates which haven't been signed -Services.prefs.setBoolPref("extensions.checkUpdateSecurity", false); - -// Update check listener. -const checkListener = { - pendingCount: 0, - - onUpdateAvailable: function onUpdateAvailable(aAddon, aInstall) { - for (let currentAddon of ADDONS) { - if (currentAddon.id == aAddon.id) { - currentAddon.newInstall = aInstall; - return; - } - } - }, - - onUpdateFinished: function onUpdateFinished() { - if (--this.pendingCount == 0) - next_test(); - } -} - -// Get the HTTP server. -Components.utils.import("resource://testing-common/httpd.js"); -var testserver; - -var ADDONS = [ - // XPCShell - { - id: "bug299716-a@tests.mozilla.org", - addon: "test_bug299716_a_1", - installed: true, - item: null, - newInstall: null - }, - - // Toolkit - { - id: "bug299716-b@tests.mozilla.org", - addon: "test_bug299716_b_1", - installed: true, - item: null, - newInstall: null - }, - - // XPCShell + Toolkit - { - id: "bug299716-c@tests.mozilla.org", - addon: "test_bug299716_c_1", - installed: true, - item: null, - newInstall: null - }, - - // XPCShell (Toolkit invalid) - { - id: "bug299716-d@tests.mozilla.org", - addon: "test_bug299716_d_1", - installed: true, - item: null, - newInstall: null - }, - - // Toolkit (XPCShell invalid) - { - id: "bug299716-e@tests.mozilla.org", - addon: "test_bug299716_e_1", - installed: false, - item: null, - newInstall: null, - failedAppName: "XPCShell" - }, - - // None (XPCShell, Toolkit invalid) - { - id: "bug299716-f@tests.mozilla.org", - addon: "test_bug299716_f_1", - installed: false, - item: null, - newInstall: null, - failedAppName: "XPCShell" - }, - - // None (Toolkit invalid) - { - id: "bug299716-g@tests.mozilla.org", - addon: "test_bug299716_g_1", - installed: false, - item: null, - newInstall: null, - failedAppName: "Toolkit" - }, -]; - -var next_test = function() {}; - -function do_check_item(aItem, aVersion, aAddonsEntry) { - if (aAddonsEntry.installed) { - if (aItem == null) - do_throw("Addon " + aAddonsEntry.id + " wasn't detected"); - if (aItem.version != aVersion) - do_throw("Addon " + aAddonsEntry.id + " was version " + aItem.version + " instead of " + aVersion); - } else if (aItem != null) { - do_throw("Addon " + aAddonsEntry.id + " was detected"); - } -} - -/** - * Start the test by installing extensions. - */ -function run_test() { - do_test_pending(); - - createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "5", "1.9"); - - const dataDir = do_get_file("data"); - const addonsDir = do_get_addon(ADDONS[0].addon).parent; - - // Make sure we can actually get our data files. - const xpiFile = addonsDir.clone(); - xpiFile.append("test_bug299716_a_2.xpi"); - do_check_true(xpiFile.exists()); - - // Create and configure the HTTP server. - testserver = new HttpServer(); - testserver.registerDirectory("/addons/", addonsDir); - testserver.registerDirectory("/data/", dataDir); - testserver.start(4444); - - // Make sure we can fetch the files over HTTP. - const Ci = Components.interfaces; - const xhr = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"] - .createInstance(Ci.nsIXMLHttpRequest) - xhr.open("GET", "http://localhost:4444/addons/test_bug299716_a_2.xpi", false); - xhr.send(null); - do_check_true(xhr.status == 200); - - xhr.open("GET", "http://localhost:4444/data/test_bug299716.rdf", false); - xhr.send(null); - do_check_true(xhr.status == 200); - - // Start the real test. - startupManager(); - dump("\n\n*** INSTALLING NEW ITEMS\n\n"); - - installAllFiles(ADDONS.map(a => do_get_addon(a.addon)), run_test_pt2, - true); -} - -/** - * Check the versions of all items, and ask the extension manager to find updates. - */ -function run_test_pt2() { - dump("\n\n*** DONE INSTALLING NEW ITEMS\n\n"); - dump("\n\n*** RESTARTING EXTENSION MANAGER\n\n"); - restartManager(); - - AddonManager.getAddonsByIDs(ADDONS.map(a => a.id), function(items) { - dump("\n\n*** REQUESTING UPDATE\n\n"); - // checkListener will call run_test_pt3(). - next_test = run_test_pt3; - - // Try to update the items. - for (var i = 0; i < ADDONS.length; i++) { - var item = items[i]; - do_check_item(item, "0.1", ADDONS[i]); - - if (item) { - checkListener.pendingCount++; - ADDONS[i].item = item; - item.findUpdates(checkListener, AddonManager.UPDATE_WHEN_USER_REQUESTED); - } - } - }); -} - -/** - * Install new items for each enabled extension. - */ -function run_test_pt3() { - // Install the new items. - dump("\n\n*** UPDATING ITEMS\n\n"); - completeAllInstalls(ADDONS.filter(a => a.newInstall).map(a => a.newInstall), - run_test_pt4); -} - -/** - * Check the final version of each extension. - */ -function run_test_pt4() { - dump("\n\n*** RESTARTING EXTENSION MANAGER\n\n"); - restartManager(); - - dump("\n\n*** FINAL CHECKS\n\n"); - AddonManager.getAddonsByIDs(ADDONS.map(a => a.id), function(items) { - for (var i = 0; i < ADDONS.length; i++) { - var item = items[i]; - do_check_item(item, "0.2", ADDONS[i]); - } - - testserver.stop(do_test_finished); - }); -} |