/* Any copyright is dedicated to the Public Domain. * http://creativecommons.org/publicdomain/zero/1.0/ */ "use strict"; Cu.import("resource://testing-common/httpd.js"); XPCOMUtils.defineLazyModuleGetter(this, "Experiments", "resource:///modules/experiments/Experiments.jsm"); const MANIFEST_HANDLER = "manifests/handler"; const SEC_IN_ONE_DAY = 24 * 60 * 60; const MS_IN_ONE_DAY = SEC_IN_ONE_DAY * 1000; var gHttpServer = null; var gHttpRoot = null; var gDataRoot = null; var gPolicy = null; var gManifestObject = null; var gManifestHandlerURI = null; function run_test() { run_next_test(); } add_task(function* test_setup() { loadAddonManager(); yield removeCacheFile(); gHttpServer = new HttpServer(); gHttpServer.start(-1); let port = gHttpServer.identity.primaryPort; gHttpRoot = "http://localhost:" + port + "/"; gDataRoot = gHttpRoot + "data/"; gManifestHandlerURI = gHttpRoot + MANIFEST_HANDLER; gHttpServer.registerDirectory("/data/", do_get_cwd()); gHttpServer.registerPathHandler("/" + MANIFEST_HANDLER, (request, response) => { response.setStatusLine(null, 200, "OK"); response.write(JSON.stringify(gManifestObject)); response.processAsync(); response.finish(); }); do_register_cleanup(() => gHttpServer.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, gManifestHandlerURI); Services.prefs.setIntPref(PREF_FETCHINTERVAL, 0); gPolicy = new Experiments.Policy(); patchPolicy(gPolicy, { updatechannel: () => "nightly", oneshotTimer: (callback, timeout, thisObj, name) => {}, }); }); function checkExperimentListsEqual(list, list2) { Assert.equal(list.length, list2.length, "Lists should have the same length.") for (let i=0; i