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");
}
|