summaryrefslogtreecommitdiffstats
path: root/netwerk/test/httpserver/test/data/sjs/qi.sjs
blob: ee0fc74a0f6b4ced63f8076e03a09fddc294c9d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
function handleRequest(request, response) {
  var exstr, qid;

  response.setStatusLine(request.httpVersion, 500, "FAIL");

  var passed = false;
  try {
    qid = request.QueryInterface(Ci.nsIHttpRequest);
    passed = qid === request;
  } catch (e) {
    // eslint-disable-next-line no-control-regex
    exstr = ("" + e).split(/[\x09\x20-\x7f\x81-\xff]+/)[0];
    response.setStatusLine(
      request.httpVersion,
      500,
      "request doesn't QI: " + exstr
    );
    return;
  }
  if (!passed) {
    response.setStatusLine(request.httpVersion, 500, "request QI'd wrongly?");
    return;
  }

  passed = false;
  try {
    qid = response.QueryInterface(Ci.nsIHttpResponse);
    passed = qid === response;
  } catch (e) {
    // eslint-disable-next-line no-control-regex
    exstr = ("" + e).split(/[\x09\x20-\x7f\x81-\xff]+/)[0];
    response.setStatusLine(
      request.httpVersion,
      500,
      "response doesn't QI: " + exstr
    );
    return;
  }
  if (!passed) {
    response.setStatusLine(request.httpVersion, 500, "response QI'd wrongly?");
    return;
  }

  response.setStatusLine(request.httpVersion, 200, "SJS QI Tests Passed");
}