Backed out changeset b71c8c052463 (bug 1943846) for causing mass failures. CLOSED...
[gecko.git] / netwerk / test / unit / test_redirect_canceled.js
blob8ada84efe4111a304f0c32977278f591e2e136c3
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 finish_test(request, buffer) {
36 Assert.equal(buffer, "");
37 httpServer.stop(do_test_finished);
40 function run_test() {
41 httpServer = new HttpServer();
42 httpServer.registerPathHandler(randomPath, redirectHandler);
43 httpServer.registerPathHandler("/content", contentHandler);
44 httpServer.start(-1);
46 var chan = make_channel(randomURI);
47 chan.notificationCallbacks = new ChannelEventSink(ES_ABORT_REDIRECT);
48 chan.asyncOpen(new ChannelListener(finish_test, null));
49 do_test_pending();