test-headers.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. var sys = require("util")
  2. , assert = require("assert")
  3. , XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest
  4. , xhr = new XMLHttpRequest()
  5. , http = require("http");
  6. // Test server
  7. var server = http.createServer(function (req, res) {
  8. // Test setRequestHeader
  9. assert.equal("Foobar", req.headers["x-test"]);
  10. var body = "Hello World";
  11. res.writeHead(200, {
  12. "Content-Type": "text/plain",
  13. "Content-Length": Buffer.byteLength(body),
  14. // Set cookie headers to see if they're correctly suppressed
  15. // Actual values don't matter
  16. "Set-Cookie": "foo=bar",
  17. "Set-Cookie2": "bar=baz",
  18. "Connection": "close"
  19. });
  20. res.write("Hello World");
  21. res.end();
  22. this.close();
  23. }).listen(8000);
  24. xhr.onreadystatechange = function() {
  25. if (this.readyState == 4) {
  26. // Test getAllResponseHeaders()
  27. var headers = "content-type: text/plain\r\ncontent-length: 11\r\nconnection: close";
  28. assert.equal(headers, this.getAllResponseHeaders());
  29. // Test case insensitivity
  30. assert.equal('text/plain', this.getResponseHeader('Content-Type'));
  31. assert.equal('text/plain', this.getResponseHeader('Content-type'));
  32. assert.equal('text/plain', this.getResponseHeader('content-Type'));
  33. assert.equal('text/plain', this.getResponseHeader('content-type'));
  34. // Test aborted getAllResponseHeaders
  35. this.abort();
  36. assert.equal("", this.getAllResponseHeaders());
  37. assert.equal(null, this.getResponseHeader("Connection"));
  38. sys.puts("done");
  39. }
  40. };
  41. assert.equal(null, xhr.getResponseHeader("Content-Type"));
  42. try {
  43. xhr.open("GET", "http://localhost:8000/");
  44. // Valid header
  45. xhr.setRequestHeader("X-Test", "Foobar");
  46. // Invalid header
  47. xhr.setRequestHeader("Content-Length", 0);
  48. // Test getRequestHeader
  49. assert.equal("Foobar", xhr.getRequestHeader("X-Test"));
  50. xhr.send();
  51. } catch(e) {
  52. console.log("ERROR: Exception raised", e);
  53. }