netwerk/test/unit/test_nojsredir.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");
     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