/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ /* 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/. */ 'use strict'; var {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components; Cu.import('resource://gre/modules/XPCOMUtils.jsm'); Cu.import('resource://gre/modules/Services.jsm'); Cu.import('resource://testing-common/httpd.js'); XPCOMUtils.defineLazyServiceGetter(this, 'gCaptivePortalDetector', '@mozilla.org/toolkit/captive-detector;1', 'nsICaptivePortalDetector'); const kCanonicalSitePath = '/canonicalSite.html'; const kCanonicalSiteContent = 'true'; const kPrefsCanonicalURL = 'captivedetect.canonicalURL'; const kPrefsCanonicalContent = 'captivedetect.canonicalContent'; const kPrefsMaxWaitingTime = 'captivedetect.maxWaitingTime'; const kPrefsPollingTime = 'captivedetect.pollingTime'; var gServer; var gServerURL; function setupPrefs() { let prefs = Components.classes["@mozilla.org/preferences-service;1"] .getService(Components.interfaces.nsIPrefService) .QueryInterface(Components.interfaces.nsIPrefBranch); prefs.setCharPref(kPrefsCanonicalURL, gServerURL + kCanonicalSitePath); prefs.setCharPref(kPrefsCanonicalContent, kCanonicalSiteContent); prefs.setIntPref(kPrefsMaxWaitingTime, 0); prefs.setIntPref(kPrefsPollingTime, 1); } function run_captivedetect_test(xhr_handler, fakeUIResponse, testfun) { gServer = new HttpServer(); gServer.registerPathHandler(kCanonicalSitePath, xhr_handler); gServer.start(-1); gServerURL = 'http://localhost:' + gServer.identity.primaryPort; setupPrefs(); fakeUIResponse(); testfun(); }