Add test-https-large-response.js
authorRyan Dahl <ry@tinyclouds.org>
Fri, 28 Jan 2011 03:27:25 +0000 (19:27 -0800)
committerRyan Dahl <ry@tinyclouds.org>
Fri, 28 Jan 2011 03:27:25 +0000 (19:27 -0800)
test/simple/test-https-large-response.js [new file with mode: 0644]

diff --git a/test/simple/test-https-large-response.js b/test/simple/test-https-large-response.js
new file mode 100644 (file)
index 0000000..ab80ba2
--- /dev/null
@@ -0,0 +1,56 @@
+var common = require('../common');
+var assert = require('assert');
+
+var fs = require('fs');
+var https = require('https');
+
+var options = {
+  key: fs.readFileSync(common.fixturesDir + '/keys/agent1-key.pem'),
+  cert: fs.readFileSync(common.fixturesDir + '/keys/agent1-cert.pem')
+};
+
+var reqCount = 0;
+var body = '';
+
+process.stdout.write('build body...');
+for (var i = 0; i < 1024*1024; i++) {
+  body += 'hello world\n';
+}
+process.stdout.write('done\n');
+
+var server = https.createServer(options, function (req, res) {
+  reqCount++;
+  console.log('got request');
+  res.writeHead(200, { 'content-type': 'text/plain' });
+  res.end(body);
+})
+
+var count = 0;
+var gotResEnd = false;
+
+server.listen(common.PORT, function () {
+  https.get({ port: common.PORT }, function(res) {
+    console.log("response!");
+
+    res.on('data', function(d) {
+      process.stdout.write('.');
+      count += d.length;
+    });
+
+    res.on('end', function(d) {
+      process.stdout.write('\n');
+      console.log("expected: ", body.length);
+      console.log("     got: ", count);
+      server.close();
+      gotResEnd = true;
+    });
+  });
+});
+
+
+process.on('exit', function () {
+  assert.equal(1, reqCount);
+  assert.equal(body.length, count);
+  assert.ok(gotResEnd);
+});
+