| 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", |
| "via" |
| ]; |
| |
| for (var i in forbiddenRequestHeaders) { |
| if(xhr.setRequestHeader(forbiddenRequestHeaders[i], "Test") !== false) { |
| console.log("ERROR: " + forbiddenRequestHeaders[i] + " should have thrown exception"); |
| } |
| } |
| |
| // Try valid header |
| xhr.setRequestHeader("X-Foobar", "Test"); |
| |
| console.log("Done"); |