michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. michael@0: */ michael@0: michael@0: // Disables security checking our updates which haven't been signed michael@0: Services.prefs.setBoolPref("extensions.checkUpdateSecurity", false); michael@0: michael@0: Components.utils.import("resource://testing-common/httpd.js"); michael@0: var server; michael@0: michael@0: // nsIAddonUpdateCheckListener implementation michael@0: var updateListener = { michael@0: _count: 0, michael@0: michael@0: onUpdateAvailable: function onAddonUpdateEnded(aAddon, aInstall) { michael@0: do_check_eq(aInstall.version, 10); michael@0: }, michael@0: michael@0: onNoUpdateAvailable: function onNoUpdateAvailable(aAddon) { michael@0: do_throw("Expected an available update for " + aAddon.id); michael@0: }, michael@0: michael@0: onUpdateFinished: function onUpdateFinished() { michael@0: if (++this._count == 2) michael@0: server.stop(do_test_finished); michael@0: }, michael@0: } michael@0: michael@0: function run_test() michael@0: { michael@0: // Setup for test michael@0: do_test_pending(); michael@0: createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9"); michael@0: startupManager(); michael@0: michael@0: installAllFiles([do_get_addon("test_bug394300_1"), michael@0: do_get_addon("test_bug394300_2")], function() { michael@0: michael@0: restartManager(); michael@0: michael@0: AddonManager.getAddonsByIDs(["bug394300_1@tests.mozilla.org", michael@0: "bug394300_2@tests.mozilla.org"], function(updates) { michael@0: michael@0: do_check_neq(updates[0], null); michael@0: do_check_neq(updates[1], null); michael@0: michael@0: server = new HttpServer(); michael@0: server.registerDirectory("/", do_get_file("data")); michael@0: server.start(4444); michael@0: michael@0: updates[0].findUpdates(updateListener, AddonManager.UPDATE_WHEN_USER_REQUESTED); michael@0: updates[1].findUpdates(updateListener, AddonManager.UPDATE_WHEN_USER_REQUESTED); michael@0: }); michael@0: }); michael@0: }