aboutsummaryrefslogtreecommitdiffhomepage
path: root/node_modules/xmlhttprequest-ssl/tests/test-exceptions.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/xmlhttprequest-ssl/tests/test-exceptions.js')
-rw-r--r--node_modules/xmlhttprequest-ssl/tests/test-exceptions.js59
1 files changed, 59 insertions, 0 deletions
diff --git a/node_modules/xmlhttprequest-ssl/tests/test-exceptions.js b/node_modules/xmlhttprequest-ssl/tests/test-exceptions.js
new file mode 100644
index 0000000..10eaea2
--- /dev/null
+++ b/node_modules/xmlhttprequest-ssl/tests/test-exceptions.js
@@ -0,0 +1,59 @@
+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");