annotate node_modules/xmlhttprequest/tests/test-headers.js @ 101:52e44ee1c791 tip master

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