|
|
var sys = require("util") , assert = require("assert") , XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest , http = require("http") , xhr;
// Test server
var server = http.createServer(function (req, res) { // Check request method and URL
assert.equal(methods[curMethod], req.method); assert.equal("/" + methods[curMethod], req.url);
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();
if (curMethod == methods.length - 1) { this.close(); sys.puts("done"); } }).listen(8000);
// Test standard methods
var methods = ["GET", "POST", "HEAD", "PUT", "DELETE"]; var curMethod = 0;
function start(method) { // Reset each time
xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() { if (this.readyState == 4) { if (method == "HEAD") { assert.equal("", this.responseText); } else { assert.equal("Hello World", this.responseText); }
curMethod++;
if (curMethod < methods.length) { sys.puts("Testing " + methods[curMethod]); start(methods[curMethod]); } } };
var url = "http://localhost:8000/" + method; xhr.open(method, url); xhr.send(); }
sys.puts("Testing " + methods[curMethod]); start(methods[curMethod]);
|