Tests and implementation of node.cat()
authorUrban Hafner <urban@bettong.net>
Sun, 21 Jun 2009 14:40:08 +0000 (16:40 +0200)
committerUrban Hafner <urban@bettong.net>
Sun, 21 Jun 2009 14:40:08 +0000 (16:40 +0200)
src/node.js
test/test-node-cat.js [new file with mode: 0644]

index 6c72565..f296578 100644 (file)
@@ -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 (file)
index 0000000..d00a366
--- /dev/null
@@ -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]/, ''))
+  })
+}