diff --git a/src/node.js b/src/node.js index 6c72565323..f2965783a3 100644 --- a/src/node.js +++ b/src/node.js @@ -61,6 +61,15 @@ node.path = new function () { }; }; +node.cat = function(url_or_path, encoding, callback) { + var uri = node.http.parseUri(url_or_path) + if (uri.protocol) { + node.http.cat(url_or_path, encoding, callback) + } else { + node.fs.cat(url_or_path, encoding, callback) + } +} + // Module node.Module = function (o) { diff --git a/test/test-node-cat.js b/test/test-node-cat.js new file mode 100644 index 0000000000..d00a366d95 --- /dev/null +++ b/test/test-node-cat.js @@ -0,0 +1,28 @@ +include("mjsunit.js"); +PORT = 8888; + +var body = "exports.A = function() { return 'A';}"; +var server = new node.http.Server(function (req, res) { + res.sendHeader(200, [ + ["Content-Length", body.length], + ["Content-Type", "text/plain"] + ]); + res.sendBody(body); + res.finish(); +}); +server.listen(PORT); + +function onLoad() { + node.cat("http://localhost:"+PORT, "utf8", function(status, content) { + assertEquals(body, content); + assertEquals(200, status) + server.close() + }) + + var dirname = node.path.dirname(__filename); + var fixtures = node.path.join(dirname, "fixtures"); + var x = node.path.join(fixtures, "x.txt"); + node.cat(x, "utf8", function(status, content) { + assertEquals("xyz", content.replace(/[\r\n]/, '')) + }) +}