aboutsummaryrefslogtreecommitdiffstats
path: root/signaling-server/node_modules/socket.io/node_modules/socket.io-client/node_modules/xmlhttprequest/tests/test-exceptions.js
blob: f1edd71f628f9deb9e2f48cbb375ce0b31a7a396 (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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
var sys = require("util")
  , assert = require("assert")
  , XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest
  , xhr = new XMLHttpRequest();

// Test request methods that aren't allowed
try {
  xhr.open("TRACK", "http://localhost:8000/");
  console.log("ERROR: TRACK should have thrown exception");
} catch(e) {}
try {
  xhr.open("TRACE", "http://localhost:8000/");
  console.log("ERROR: TRACE should have thrown exception");
} catch(e) {}
try {
  xhr.open("CONNECT", "http://localhost:8000/");
  console.log("ERROR: CONNECT should have thrown exception");
} catch(e) {}
// Test valid request method
try {
  xhr.open("GET", "http://localhost:8000/");
} catch(e) {
  console.log("ERROR: Invalid exception for GET", e);
}

// Test forbidden headers
var forbiddenRequestHeaders = [
  "accept-charset",
  "accept-encoding",
  "access-control-request-headers",
  "access-control-request-method",
  "connection",
  "content-length",
  "content-transfer-encoding",
  "cookie",
  "cookie2",
  "date",
  "expect",
  "host",
  "keep-alive",
  "origin",
  "referer",
  "te",
  "trailer",
  "transfer-encoding",
  "upgrade",
  "user-agent",
  "via"
];

for (var i in forbiddenRequestHeaders) {
  try {
    xhr.setRequestHeader(forbiddenRequestHeaders[i], "Test");
    console.log("ERROR: " + forbiddenRequestHeaders[i] + " should have thrown exception");
  } catch(e) {
  }
}

// Try valid header
xhr.setRequestHeader("X-Foobar", "Test");

console.log("Done");