From dca7f7bada6488f1b9df75a102a55db0b0ca578d Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 9 Jun 2009 10:28:59 +0200 Subject: [PATCH] Add http server / http client test. --- test/test-http.js | 54 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 test/test-http.js diff --git a/test/test-http.js b/test/test-http.js new file mode 100644 index 0000000000..044e444431 --- /dev/null +++ b/test/test-http.js @@ -0,0 +1,54 @@ +include("mjsunit.js"); +PORT = 8888; + +var responses_sent = 0; +var responses_recvd = 0; +var body0 = ""; +var body1 = ""; + +function onLoad () { + new node.http.Server(function (req, res) { + if (responses_sent == 0) { + assertEquals("GET", req.method); + assertEquals("/hello", req.uri.path); + } + + if (responses_sent == 1) { + assertEquals("POST", req.method); + assertEquals("/world", req.uri.path); + this.close(); + } + + res.sendHeader(200, [["Content-Type", "text/plain"]]); + res.sendBody("The path was " + req.uri.path); + res.finish(); + responses_sent += 1; + }).listen(PORT); + + var client = new node.http.Client(PORT); + var req = client.get("/hello"); + req.finish(function (res) { + assertEquals(200, res.statusCode); + responses_recvd += 1; + res.setBodyEncoding("utf8"); + res.onBody = function (chunk) { body0 += chunk; }; + }); + + setTimeout(function () { + req = client.post("/world"); + req.finish(function (res) { + assertEquals(200, res.statusCode); + responses_recvd += 1; + res.setBodyEncoding("utf8"); + res.onBody = function (chunk) { body1 += chunk; }; + }); + }, 10); +} + +function onExit () { + assertEquals(2, responses_recvd); + assertEquals(2, responses_sent); + assertEquals("The path was /hello", body0); + assertEquals("The path was /world", body1); +} +