diff options
Diffstat (limited to 'browser/experiments/test/xpcshell/test_nethang_bug1012924.js')
-rw-r--r-- | browser/experiments/test/xpcshell/test_nethang_bug1012924.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/browser/experiments/test/xpcshell/test_nethang_bug1012924.js b/browser/experiments/test/xpcshell/test_nethang_bug1012924.js new file mode 100644 index 0000000000..7ef6049016 --- /dev/null +++ b/browser/experiments/test/xpcshell/test_nethang_bug1012924.js @@ -0,0 +1,47 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +Cu.import("resource://testing-common/httpd.js"); +Cu.import("resource:///modules/experiments/Experiments.jsm"); + +const MANIFEST_HANDLER = "manifests/handler"; + +function run_test() { + run_next_test(); +} + +add_task(function* test_setup() { + loadAddonManager(); + do_get_profile(); + + let httpServer = new HttpServer(); + httpServer.start(-1); + let port = httpServer.identity.primaryPort; + let httpRoot = "http://localhost:" + port + "/"; + let handlerURI = httpRoot + MANIFEST_HANDLER; + httpServer.registerPathHandler("/" + MANIFEST_HANDLER, + (request, response) => { + response.processAsync(); + response.setStatus(null, 200, "OK"); + response.write("["); // never finish! + }); + + do_register_cleanup(() => httpServer.stop(() => {})); + Services.prefs.setBoolPref(PREF_EXPERIMENTS_ENABLED, true); + Services.prefs.setIntPref(PREF_LOGGING_LEVEL, 0); + Services.prefs.setBoolPref(PREF_LOGGING_DUMP, true); + Services.prefs.setCharPref(PREF_MANIFEST_URI, handlerURI); + Services.prefs.setIntPref(PREF_FETCHINTERVAL, 0); + + let experiments = Experiments.instance(); + experiments.updateManifest().then( + () => { + Assert.ok(true, "updateManifest finished successfully"); + }, + (e) => { + do_throw("updateManifest should not have failed: got error " + e); + }); + yield experiments.uninit(); +}); |