2 // Simple HTTP test: fetches page
5 // Note: sets Cc and Ci variables
8 const { HttpServer } = ChromeUtils.importESModule(
9 "resource://testing-common/httpd.sys.mjs"
12 var httpserver = new HttpServer();
13 var testpath = "/simple";
14 var httpbody = "0123456789";
18 print("============== START ==========");
26 function setup_test() {
28 print("============== setup_test: in");
30 httpserver.registerPathHandler(testpath, serverHandler);
32 var channel = setupChannel(testpath);
33 // ChannelListener defined in head_channels.js
34 channel.asyncOpen(new ChannelListener(checkRequest, channel));
36 print("============== setup_test: out");
40 function setupChannel(path) {
41 var chan = NetUtil.newChannel({
42 uri: "http://localhost:" + httpserver.identity.primaryPort + path,
43 loadUsingSystemPrincipal: true,
45 chan.QueryInterface(Ci.nsIHttpChannel);
46 chan.requestMethod = "GET";
50 function serverHandler(metadata, response) {
52 print("============== serverHandler: in");
54 response.setHeader("Content-Type", "text/plain", false);
55 response.bodyOutputStream.write(httpbody, httpbody.length);
57 print("============== serverHandler: out");
61 function checkRequest(request, data) {
63 print("============== checkRequest: in");
65 Assert.equal(data, httpbody);
66 httpserver.stop(do_test_finished);
68 print("============== checkRequest: out");