|
var sys = require("util") |
|
, assert = require("assert") |
|
, XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest |
|
, xhr = new XMLHttpRequest(); |
|
|
|
|
|
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) {} |
|
|
|
try { |
|
xhr.open("GET", "http://localhost:8000/"); |
|
} catch(e) { |
|
console.log("ERROR: Invalid exception for GET", e); |
|
} |
|
|
|
|
|
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", |
|
"via" |
|
]; |
|
|
|
for (var i in forbiddenRequestHeaders) { |
|
if(xhr.setRequestHeader(forbiddenRequestHeaders[i], "Test") !== false) { |
|
console.log("ERROR: " + forbiddenRequestHeaders[i] + " should have thrown exception"); |
|
} |
|
} |
|
|
|
|
|
xhr.setRequestHeader("X-Foobar", "Test"); |
|
|
|
console.log("Done"); |
|
|