tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_bug659569.js (1773B)


      1 "use strict";
      2 
      3 const { HttpServer } = ChromeUtils.importESModule(
      4  "resource://testing-common/httpd.sys.mjs"
      5 );
      6 
      7 var httpserver = new HttpServer();
      8 
      9 function setupChannel(suffix) {
     10  return NetUtil.newChannel({
     11    uri: "http://localhost:" + httpserver.identity.primaryPort + suffix,
     12    loadUsingSystemPrincipal: true,
     13  });
     14 }
     15 
     16 function checkValueAndTrigger(request, data) {
     17  Assert.equal("Ok", data);
     18  httpserver.stop(do_test_finished);
     19 }
     20 
     21 function run_test() {
     22  // We don't want to have CookieJarSettings blocking this test.
     23  Services.prefs.setBoolPref(
     24    "network.cookieJarSettings.unblocked_for_testing",
     25    true
     26  );
     27 
     28  // Allow all cookies.
     29  Services.prefs.setIntPref("network.cookie.cookieBehavior", 0);
     30 
     31  httpserver.registerPathHandler("/redirect1", redirectHandler1);
     32  httpserver.registerPathHandler("/redirect2", redirectHandler2);
     33  httpserver.start(-1);
     34 
     35  // clear cache
     36  evict_cache_entries();
     37 
     38  // load first time
     39  var channel = setupChannel("/redirect1");
     40  channel.asyncOpen(new ChannelListener(checkValueAndTrigger, null));
     41  do_test_pending();
     42 }
     43 
     44 function redirectHandler1(metadata, response) {
     45  if (!metadata.hasHeader("Cookie")) {
     46    response.setStatusLine(metadata.httpVersion, 302, "Found");
     47    response.setHeader("Cache-Control", "max-age=600", false);
     48    response.setHeader("Location", "/redirect2?query", false);
     49    response.setHeader("Set-Cookie", "MyCookie=1", false);
     50  } else {
     51    response.setStatusLine(metadata.httpVersion, 200, "Ok");
     52    response.setHeader("Content-Type", "text/plain");
     53    response.bodyOutputStream.write("Ok", "Ok".length);
     54  }
     55 }
     56 
     57 function redirectHandler2(metadata, response) {
     58  response.setStatusLine(metadata.httpVersion, 302, "Found");
     59  response.setHeader("Location", "/redirect1", false);
     60 }