michael@0: /* -*- Mode: JavaScript; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ michael@0: "use strict"; michael@0: Cu.import("resource://testing-common/httpd.js"); michael@0: michael@0: var httpserver = null; michael@0: const noRedirectURI = "/content"; michael@0: const pageValue = "Final page"; michael@0: const acceptType = "application/json"; michael@0: michael@0: function redirectHandler(metadata, response) michael@0: { michael@0: response.setStatusLine(metadata.httpVersion, 302, "Moved Temporarily"); michael@0: response.setHeader("Location", noRedirectURI, false); michael@0: } michael@0: michael@0: function contentHandler(metadata, response) michael@0: { michael@0: do_check_eq(metadata.getHeader("Accept"), acceptType); michael@0: httpserver.stop(do_test_finished); michael@0: } michael@0: michael@0: function dummyHandler(request, buffer) michael@0: { michael@0: } michael@0: michael@0: function run_test() michael@0: { michael@0: httpserver = new HttpServer(); michael@0: httpserver.registerPathHandler("/redirect", redirectHandler); michael@0: httpserver.registerPathHandler("/content", contentHandler); michael@0: httpserver.start(-1); michael@0: michael@0: var prefs = Cc["@mozilla.org/preferences-service;1"] michael@0: .getService(Components.interfaces.nsIPrefBranch); michael@0: prefs.setBoolPref("network.http.prompt-temp-redirect", false); michael@0: michael@0: var ios = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService); michael@0: var chan = ios.newChannel("http://localhost:" + michael@0: httpserver.identity.primaryPort + "/redirect", michael@0: "", michael@0: null); michael@0: michael@0: chan.QueryInterface(Ci.nsIHttpChannel); michael@0: chan.setRequestHeader("Accept", acceptType, false); michael@0: michael@0: chan.asyncOpen(new ChannelListener(dummyHandler, null), null); michael@0: michael@0: do_test_pending(); michael@0: }