| var sys = require("util") |
| , assert = require("assert") |
| , http = require("http") |
| , XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest |
| , xhr; |
| |
| // Test server |
| var server = http.createServer(function (req, res) { |
| var body = (req.method != "HEAD" ? "Hello World" : ""); |
| |
| res.writeHead(200, { |
| "Content-Type": "text/plain", |
| "Content-Length": Buffer.byteLength(body) |
| }); |
| // HEAD has no body |
| if (req.method != "HEAD") { |
| res.write(body); |
| } |
| res.end(); |
| assert.equal(onreadystatechange, true); |
| assert.equal(readystatechange, true); |
| assert.equal(removed, true); |
| sys.puts("done"); |
| this.close(); |
| }).listen(8000); |
| |
| xhr = new XMLHttpRequest(); |
| |
| // Track event calls |
| var onreadystatechange = false; |
| var readystatechange = false; |
| var removed = true; |
| var removedEvent = function() { |
| removed = false; |
| }; |
| |
| xhr.onreadystatechange = function() { |
| onreadystatechange = true; |
| }; |
| |
| xhr.addEventListener("readystatechange", function() { |
| readystatechange = true; |
| }); |
| |
| // This isn't perfect, won't guarantee it was added in the first place |
| xhr.addEventListener("readystatechange", removedEvent); |
| xhr.removeEventListener("readystatechange", removedEvent); |
| |
| xhr.open("GET", "http://localhost:8000"); |
| xhr.send(); |