Mercurial > hg > nodescore
comparison node_modules/xmlhttprequest/tests/test-headers.js @ 77:cd921abc8887
added puredata trigger/OSC router
author | Rob Canning <rob@foo.net> |
---|---|
date | Tue, 15 Jul 2014 17:48:07 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
76:0ae87af84e2f | 77:cd921abc8887 |
---|---|
1 var sys = require("util") | |
2 , assert = require("assert") | |
3 , XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest | |
4 , xhr = new XMLHttpRequest() | |
5 , http = require("http"); | |
6 | |
7 // Test server | |
8 var server = http.createServer(function (req, res) { | |
9 // Test setRequestHeader | |
10 assert.equal("Foobar", req.headers["x-test"]); | |
11 // Test non-conforming allowed header | |
12 assert.equal("node-XMLHttpRequest-test", req.headers["user-agent"]); | |
13 // Test header set with blacklist disabled | |
14 assert.equal("http://github.com", req.headers["referer"]); | |
15 | |
16 var body = "Hello World"; | |
17 res.writeHead(200, { | |
18 "Content-Type": "text/plain", | |
19 "Content-Length": Buffer.byteLength(body), | |
20 // Set cookie headers to see if they're correctly suppressed | |
21 // Actual values don't matter | |
22 "Set-Cookie": "foo=bar", | |
23 "Set-Cookie2": "bar=baz", | |
24 "Date": "Thu, 30 Aug 2012 18:17:53 GMT", | |
25 "Connection": "close" | |
26 }); | |
27 res.write("Hello World"); | |
28 res.end(); | |
29 | |
30 this.close(); | |
31 }).listen(8000); | |
32 | |
33 xhr.onreadystatechange = function() { | |
34 if (this.readyState == 4) { | |
35 // Test getAllResponseHeaders() | |
36 var headers = "content-type: text/plain\r\ncontent-length: 11\r\ndate: Thu, 30 Aug 2012 18:17:53 GMT\r\nconnection: close"; | |
37 assert.equal(headers, this.getAllResponseHeaders()); | |
38 | |
39 // Test case insensitivity | |
40 assert.equal('text/plain', this.getResponseHeader('Content-Type')); | |
41 assert.equal('text/plain', this.getResponseHeader('Content-type')); | |
42 assert.equal('text/plain', this.getResponseHeader('content-Type')); | |
43 assert.equal('text/plain', this.getResponseHeader('content-type')); | |
44 | |
45 // Test aborted getAllResponseHeaders | |
46 this.abort(); | |
47 assert.equal("", this.getAllResponseHeaders()); | |
48 assert.equal(null, this.getResponseHeader("Connection")); | |
49 | |
50 sys.puts("done"); | |
51 } | |
52 }; | |
53 | |
54 assert.equal(null, xhr.getResponseHeader("Content-Type")); | |
55 try { | |
56 xhr.open("GET", "http://localhost:8000/"); | |
57 // Valid header | |
58 xhr.setRequestHeader("X-Test", "Foobar"); | |
59 // Invalid header | |
60 xhr.setRequestHeader("Content-Length", 0); | |
61 // Allowed header outside of specs | |
62 xhr.setRequestHeader("user-agent", "node-XMLHttpRequest-test"); | |
63 // Test getRequestHeader | |
64 assert.equal("Foobar", xhr.getRequestHeader("X-Test")); | |
65 // Test invalid header | |
66 assert.equal("", xhr.getRequestHeader("Content-Length")); | |
67 | |
68 // Test allowing all headers | |
69 xhr.setDisableHeaderCheck(true); | |
70 xhr.setRequestHeader("Referer", "http://github.com"); | |
71 assert.equal("http://github.com", xhr.getRequestHeader("Referer")); | |
72 | |
73 xhr.send(); | |
74 } catch(e) { | |
75 console.log("ERROR: Exception raised", e); | |
76 } |