| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | var sys = require("util")  , assert = require("assert")  , XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest  , xhr = new XMLHttpRequest();// Test request methods that aren't allowedtry {  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 methodtry {  xhr.open("GET", "http://localhost:8000/");} catch(e) {  console.log("ERROR: Invalid exception for GET", e);}// Test forbidden headersvar 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");  }}// Try valid headerxhr.setRequestHeader("X-Foobar", "Test");console.log("Done");
 |