arnaucube
arnaucube/raspberryGPIOhtmlserverPublic Self-hosted repository
raspberryGPIOhtmlserver/node_modules/xmlhttprequest/tests/test-events.js
node_modules/xmlhttprequest/tests/test-events.jsRaw
 1var sys = require("util")
 2  , assert = require("assert")
 3  , http = require("http")
 4  , XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest
 5  , xhr;
 6
 7// Test server
 8var server = http.createServer(function (req, res) {
 9  var body = (req.method != "HEAD" ? "Hello World" : "");
10
11  res.writeHead(200, {
12    "Content-Type": "text/plain",
13    "Content-Length": Buffer.byteLength(body)
14  });
15  // HEAD has no body
16  if (req.method != "HEAD") {
17    res.write(body);
18  }
19  res.end();
20  assert.equal(onreadystatechange, true);
21  assert.equal(readystatechange, true);
22  assert.equal(removed, true);
23  sys.puts("done");
24  this.close();
25}).listen(8000);
26
27xhr = new XMLHttpRequest();
28
29// Track event calls
30var onreadystatechange = false;
31var readystatechange = false;
32var removed = true;
33var removedEvent = function() {
34  removed = false;
35};
36
37xhr.onreadystatechange = function() {
38  onreadystatechange = true;
39};
40
41xhr.addEventListener("readystatechange", function() {
42  readystatechange = true;
43});
44
45// This isn't perfect, won't guarantee it was added in the first place
46xhr.addEventListener("readystatechange", removedEvent);
47xhr.removeEventListener("readystatechange", removedEvent);
48
49xhr.open("GET", "http://localhost:8000");
50xhr.send();