netwerk/test/unit/test_nojsredir.js

Thu, 15 Jan 2015 21:03:48 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 21:03:48 +0100
branch
TOR_BUG_9701
changeset 11
deefc01c0e14
permissions
-rw-r--r--

Integrate friendly tips from Tor colleagues to make (or not) 4.5 alpha 3;
This includes removal of overloaded (but unused) methods, and addition of
a overlooked call to DataStruct::SetData(nsISupports, uint32_t, bool.)

     1 Cu.import("resource://testing-common/httpd.js");
     3 var httpserver = new HttpServer();
     4 var index = 0;
     5 var tests = [
     6     {url : "/test/test",
     7      datalen : 16},
     9     // Test that the http channel fails and the response body is suppressed
    10     // bug 255119
    11     {url: "/test/test",
    12      responseheader: [ "Location: javascript:alert()"],
    13      flags : CL_EXPECT_FAILURE,
    14      datalen : 0},
    15 ];
    17 function setupChannel(url) {
    18     var ios = Components.classes["@mozilla.org/network/io-service;1"].
    19                          getService(Ci.nsIIOService);
    20     var chan = ios.newChannel("http://localhost:" +
    21 			      httpserver.identity.primaryPort + url, "", null);
    22     return chan;
    23 }
    25 function startIter() {
    26     var channel = setupChannel(tests[index].url);
    27     channel.asyncOpen(new ChannelListener(completeIter, channel, tests[index].flags), null);
    28 }
    30 function completeIter(request, data, ctx) {
    31     do_check_true(data.length == tests[index].datalen);
    32     if (++index < tests.length) {
    33 	startIter();
    34     } else {
    35         httpserver.stop(do_test_finished);
    36     }
    37 }
    39 function run_test() {
    40     httpserver.registerPathHandler("/test/test", handler);
    41     httpserver.start(-1);
    43     startIter();
    44     do_test_pending();
    45 }
    47 function handler(metadata, response) {
    48     var body = "thequickbrownfox";
    49     response.setHeader("Content-Type", "text/plain", false);
    51     var header = tests[index].responseheader;
    52     if (header != undefined) {
    53         for (var i = 0; i < header.length; i++) {
    54             var splitHdr = header[i].split(": ");
    55             response.setHeader(splitHdr[0], splitHdr[1], false);
    56         }
    57     }
    59     response.setStatusLine(metadata.httpVersion, 302, "Redirected");
    60     response.bodyOutputStream.write(body, body.length);
    61 }

mercurial