diff options
Diffstat (limited to 'toolkit/mozapps/extensions/test/xpcshell/test_metadata_update.js')
-rw-r--r-- | toolkit/mozapps/extensions/test/xpcshell/test_metadata_update.js | 39 |
1 files changed, 32 insertions, 7 deletions
diff --git a/toolkit/mozapps/extensions/test/xpcshell/test_metadata_update.js b/toolkit/mozapps/extensions/test/xpcshell/test_metadata_update.js index dbf5db485..a87b3f45b 100644 --- a/toolkit/mozapps/extensions/test/xpcshell/test_metadata_update.js +++ b/toolkit/mozapps/extensions/test/xpcshell/test_metadata_update.js @@ -23,12 +23,12 @@ Services.prefs.setBoolPref("extensions.checkUpdateSecurity", false); // None of this works without the add-on repository cache Services.prefs.setBoolPref("extensions.getAddons.cache.enabled", true); -var Cc = Components.classes; -var Ci = Components.interfaces; -var Cu = Components.utils; -var Cr = Components.results; +const Cc = Components.classes; +const Ci = Components.interfaces; +const Cu = Components.utils; +const Cr = Components.results; -Cu.import("resource://testing-common/MockRegistrar.jsm"); +Cu.import("resource://testing-common/httpd.js"); var testserver; const profileDir = gProfD.clone(); @@ -37,6 +37,7 @@ profileDir.append("extensions"); // This will be called to show the compatibility update dialog. var WindowWatcher = { expected: false, + arguments: null, openWindow: function(parent, url, name, features, args) { do_check_true(Services.startup.interrupted); @@ -54,7 +55,18 @@ var WindowWatcher = { } } -MockRegistrar.register("@mozilla.org/embedcomp/window-watcher;1", WindowWatcher); +var WindowWatcherFactory = { + createInstance: function createInstance(outer, iid) { + if (outer != null) + throw Components.results.NS_ERROR_NO_AGGREGATION; + return WindowWatcher.QueryInterface(iid); + } +}; + +var registrar = Components.manager.QueryInterface(Components.interfaces.nsIComponentRegistrar); +registrar.registerFactory(Components.ID("{1dfeb90a-2193-45d5-9cb8-864928b2af55}"), + "Fake Window Watcher", + "@mozilla.org/embedcomp/window-watcher;1", WindowWatcherFactory); // Return Date.now() in seconds, rounded function now() { @@ -68,9 +80,10 @@ add_task(function* checkFirstMetadata() { Services.prefs.setBoolPref(PREF_EM_SHOW_MISMATCH_UI, true); // Create and configure the HTTP server. - testserver = createHttpServer(); + testserver = new HttpServer(); testserver.registerDirectory("/data/", do_get_file("data")); testserver.registerDirectory("/addons/", do_get_file("addons")); + testserver.start(-1); gPort = testserver.identity.primaryPort; const BASE_URL = "http://localhost:" + gPort; const GETADDONS_RESULTS = BASE_URL + "/data/test_AddonRepository_cache.xml"; @@ -157,3 +170,15 @@ add_task(function* upgrade_young_pref_lastupdate() { yield promiseRestartManager("2"); do_check_false(WindowWatcher.expected); }); + + + +add_task(function* cleanup() { + return new Promise((resolve, reject) => { + testserver.stop(resolve); + }); +}); + +function run_test() { + run_next_test(); +} |