|
1 /* -*- Mode: JavaScript; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
|
2 "use strict"; |
|
3 Cu.import("resource://testing-common/httpd.js"); |
|
4 |
|
5 var httpserver = null; |
|
6 const noRedirectURI = "/content"; |
|
7 const pageValue = "Final page"; |
|
8 const acceptType = "application/json"; |
|
9 |
|
10 function redirectHandler(metadata, response) |
|
11 { |
|
12 response.setStatusLine(metadata.httpVersion, 302, "Moved Temporarily"); |
|
13 response.setHeader("Location", noRedirectURI, false); |
|
14 } |
|
15 |
|
16 function contentHandler(metadata, response) |
|
17 { |
|
18 do_check_eq(metadata.getHeader("Accept"), acceptType); |
|
19 httpserver.stop(do_test_finished); |
|
20 } |
|
21 |
|
22 function dummyHandler(request, buffer) |
|
23 { |
|
24 } |
|
25 |
|
26 function run_test() |
|
27 { |
|
28 httpserver = new HttpServer(); |
|
29 httpserver.registerPathHandler("/redirect", redirectHandler); |
|
30 httpserver.registerPathHandler("/content", contentHandler); |
|
31 httpserver.start(-1); |
|
32 |
|
33 var prefs = Cc["@mozilla.org/preferences-service;1"] |
|
34 .getService(Components.interfaces.nsIPrefBranch); |
|
35 prefs.setBoolPref("network.http.prompt-temp-redirect", false); |
|
36 |
|
37 var ios = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService); |
|
38 var chan = ios.newChannel("http://localhost:" + |
|
39 httpserver.identity.primaryPort + "/redirect", |
|
40 "", |
|
41 null); |
|
42 |
|
43 chan.QueryInterface(Ci.nsIHttpChannel); |
|
44 chan.setRequestHeader("Accept", acceptType, false); |
|
45 |
|
46 chan.asyncOpen(new ChannelListener(dummyHandler, null), null); |
|
47 |
|
48 do_test_pending(); |
|
49 } |