Backed out changeset b71c8c052463 (bug 1943846) for causing mass failures. CLOSED...
[gecko.git] / netwerk / test / unit / test_redirect-caching_passing.js
blob17fbb62744206f96a34bfdd2ec3ded0bbc10f9fd
1 "use strict";
3 const { HttpServer } = ChromeUtils.importESModule(
4 "resource://testing-common/httpd.sys.mjs"
5 );
7 ChromeUtils.defineLazyGetter(this, "URL", function () {
8 return "http://localhost:" + httpserver.identity.primaryPort;
9 });
11 var httpserver = null;
12 // Need to randomize, because apparently no one clears our cache
13 var randomPath = "/redirect/" + Math.random();
15 ChromeUtils.defineLazyGetter(this, "randomURI", function () {
16 return URL + randomPath;
17 });
19 function make_channel(url) {
20 return NetUtil.newChannel({ uri: url, loadUsingSystemPrincipal: true });
23 const responseBody = "response body";
25 function redirectHandler(metadata, response) {
26 response.setStatusLine(metadata.httpVersion, 301, "Moved");
27 response.setHeader("Location", URL + "/content", false);
30 function contentHandler(metadata, response) {
31 response.setHeader("Content-Type", "text/plain");
32 response.bodyOutputStream.write(responseBody, responseBody.length);
35 function firstTimeThrough(request, buffer) {
36 Assert.equal(buffer, responseBody);
37 var chan = make_channel(randomURI);
38 chan.loadFlags |= Ci.nsIRequest.LOAD_FROM_CACHE;
39 chan.asyncOpen(new ChannelListener(finish_test, null));
42 function finish_test(request, buffer) {
43 Assert.equal(buffer, responseBody);
44 httpserver.stop(do_test_finished);
47 function run_test() {
48 httpserver = new HttpServer();
49 httpserver.registerPathHandler(randomPath, redirectHandler);
50 httpserver.registerPathHandler("/content", contentHandler);
51 httpserver.start(-1);
53 var chan = make_channel(randomURI);
54 chan.asyncOpen(new ChannelListener(firstTimeThrough, null));
55 do_test_pending();