Skip to content

Instantly share code, notes, and snippets.

@ithinkihaveacat
Created February 23, 2010 08:17
Show Gist options
  • Save ithinkihaveacat/311995 to your computer and use it in GitHub Desktop.
Save ithinkihaveacat/311995 to your computer and use it in GitHub Desktop.
From 69137a18824722581fbd57c13f7ffd4cf56555f1 Mon Sep 17 00:00:00 2001
From: Michael Stillwell <mjs@beebo.org>
Date: Tue, 23 Feb 2010 08:14:36 +0000
Subject: [PATCH] Test: Multiple listeners for http.Server's "request" event.
---
test/mjsunit/test-http-multi-listener.js | 44 ++++++++++++++++++++++++++++++
1 files changed, 44 insertions(+), 0 deletions(-)
create mode 100644 test/mjsunit/test-http-multi-listener.js
diff --git a/test/mjsunit/test-http-multi-listener.js b/test/mjsunit/test-http-multi-listener.js
new file mode 100644
index 0000000..fb72830
--- /dev/null
+++ b/test/mjsunit/test-http-multi-listener.js
@@ -0,0 +1,44 @@
+process.mixin(require("./common"));
+http = require("http");
+PORT = 8888;
+
+// m1 sets the content-type
+
+function m1(req, res) {
+ res.writeHeader(200, {'content-type': 'text/plain'});
+}
+
+// m2 sets the body
+
+function m2(req, res) {
+ var body = "";
+ req.addListener("data", function(s) { body += s; });
+ req.addListener("end", function() {
+ res.write("Hello, " + body);
+ res.close();
+ });
+}
+
+var server = http.createServer();
+server.addListener("request", m1);
+server.addListener("request", m2);
+server.listen(PORT);
+
+var client = http.createClient(PORT);
+
+var body = "Clem";
+var req = client.request("PUT", "/", { 'content-length': body.length });
+
+req.addListener('response', function (res) {
+ assert.equal(200, res.statusCode);
+ assert.equal("text/plain", res.headers['content-type']);
+ var body = "";
+ res.addListener('data', function (chunk) { body += chunk; });
+ res.addListener('end', function() {
+ assert.equal("Hello, Clem", body);
+ server.close();
+ });
+});
+
+req.write(body);
+req.close();
--
1.7.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment