comunicationLeap/node_modules/xmlhttprequest/tests/test-request-methods.js
node_modules/xmlhttprequest/tests/test-request-methods.jsRaw
1var sys = require("util")
2 , assert = require("assert")
3 , XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest
4 , http = require("http")
5 , xhr;
6
7// Test server
8var server = http.createServer(function (req, res) {
9 // Check request method and URL
10 assert.equal(methods[curMethod], req.method);
11 assert.equal("/" + methods[curMethod], req.url);
12
13 var body = (req.method != "HEAD" ? "Hello World" : "");
14
15 res.writeHead(200, {
16 "Content-Type": "text/plain",
17 "Content-Length": Buffer.byteLength(body)
18 });
19 // HEAD has no body
20 if (req.method != "HEAD") {
21 res.write(body);
22 }
23 res.end();
24
25 if (curMethod == methods.length - 1) {
26 this.close();
27 sys.puts("done");
28 }
29}).listen(8000);
30
31// Test standard methods
32var methods = ["GET", "POST", "HEAD", "PUT", "DELETE"];
33var curMethod = 0;
34
35function start(method) {
36 // Reset each time
37 xhr = new XMLHttpRequest();
38
39 xhr.onreadystatechange = function() {
40 if (this.readyState == 4) {
41 if (method == "HEAD") {
42 assert.equal("", this.responseText);
43 } else {
44 assert.equal("Hello World", this.responseText);
45 }
46
47 curMethod++;
48
49 if (curMethod < methods.length) {
50 sys.puts("Testing " + methods[curMethod]);
51 start(methods[curMethod]);
52 }
53 }
54 };
55
56 var url = "http://localhost:8000/" + method;
57 xhr.open(method, url);
58 xhr.send();
59}
60
61sys.puts("Testing " + methods[curMethod]);
62start(methods[curMethod]);