netwerk/test/unit/test_bug659569.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 Cu.import("resource://testing-common/httpd.js");
     2 Cu.import("resource://gre/modules/Services.jsm");
     3 var httpserver = new HttpServer();
     5 function setupChannel(suffix)
     6 {
     7     var ios =
     8         Components.classes["@mozilla.org/network/io-service;1"]
     9         .getService(Ci.nsIIOService);
    10     var chan = ios.newChannel("http://localhost:" +
    11 			      httpserver.identity.primaryPort +
    12 			      suffix, "", null);
    13     return chan;
    14 }
    16 function checkValueAndTrigger(request, data, ctx)
    17 {
    18     do_check_eq("Ok", data);
    19     httpserver.stop(do_test_finished);
    20 }
    22 function run_test()
    23 {
    24     // Allow all cookies.
    25     Services.prefs.setIntPref("network.cookie.cookieBehavior", 0);
    27     httpserver.registerPathHandler("/redirect1", redirectHandler1);
    28     httpserver.registerPathHandler("/redirect2", redirectHandler2);
    29     httpserver.start(-1);
    31     // clear cache
    32     evict_cache_entries();
    34     // load first time
    35     var channel = setupChannel("/redirect1");
    36     channel.asyncOpen(new ChannelListener(checkValueAndTrigger, null), null);
    37     do_test_pending();
    38 }
    40 function redirectHandler1(metadata, response)
    41 {
    42 	if (!metadata.hasHeader("Cookie")) {
    43 	    response.setStatusLine(metadata.httpVersion, 302, "Found");
    44 	    response.setHeader("Cache-Control", "max-age=600", false);
    45 	    response.setHeader("Location", "/redirect2?query", false);
    46 	    response.setHeader("Set-Cookie", "MyCookie=1", false);
    47     } else {
    48 	    response.setStatusLine(metadata.httpVersion, 200, "Ok");
    49         response.setHeader("Content-Type", "text/plain");
    50         response.bodyOutputStream.write("Ok", "Ok".length);
    51     }
    52 }
    54 function redirectHandler2(metadata, response)
    55 {
    56     response.setStatusLine(metadata.httpVersion, 302, "Found");
    57     response.setHeader("Location", "/redirect1", false);
    58 }

mercurial