Browse Source

Implementation of node.http.cat

v0.7.4-release
Urban Hafner 16 years ago
parent
commit
ce85f84d15
  1. 19
      src/http.js
  2. 12
      test/test-http-cat.js
  3. 2
      test/test-remote-module-loading.js

19
src/http.js

@ -516,4 +516,23 @@ node.http.Client = function (port, host) {
}; };
}; };
node.http.cat = function(url, encoding, callback) {
var uri = node.http.parseUri(url)
uri.port = uri.port == "" ? 80 : Number(uri.port)
uri.path = uri.path == "" ? "/" : uri.path
var req = new node.http.Client(uri.port, uri.host).get(uri.path)
req.finish(function(res) {
var status = res.statusCode;
res.setBodyEncoding(encoding)
var content = ""
res.onBody = function(chunk) {
content += chunk;
}
res.onBodyComplete = function() {
callback(status, content);
}
})
}
})(); // anonymous namespace })(); // anonymous namespace

12
test/test-http-cat.js

@ -2,22 +2,20 @@ include("mjsunit.js");
PORT = 8888; PORT = 8888;
var body = "exports.A = function() { return 'A';}"; var body = "exports.A = function() { return 'A';}";
new node.http.Server(function (req, res) { var server = new node.http.Server(function (req, res) {
res.sendHeader(200, [ res.sendHeader(200, [
["Content-Length", body.length], ["Content-Length", body.length],
["Content-Type", "text/plain"] ["Content-Type", "text/plain"]
]); ]);
res.sendBody(body); res.sendBody(body);
res.finish(); res.finish();
}).listen(PORT); });
server.listen(PORT);
function onLoad() { function onLoad() {
try {
node.http.cat("http://localhost:"+PORT, "utf8", function(status, content) { node.http.cat("http://localhost:"+PORT, "utf8", function(status, content) {
assertEquals(body, content); assertEquals(body, content);
// TODO: Test the status code assertEquals(200, status)
server.close()
}) })
} catch(e) {
assertUnreachable(e)
}
} }

2
test/test-remote-module-loading.js

@ -16,3 +16,5 @@ function onLoad() {
assertEquals("A", a.A()); assertEquals("A", a.A());
} }
// TODO: Add tests for remote require using a timeout
Loading…
Cancel
Save