summaryrefslogtreecommitdiff
path: root/test/sequential/test-http-client-timeout-with-data.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/sequential/test-http-client-timeout-with-data.js')
-rw-r--r--test/sequential/test-http-client-timeout-with-data.js48
1 files changed, 48 insertions, 0 deletions
diff --git a/test/sequential/test-http-client-timeout-with-data.js b/test/sequential/test-http-client-timeout-with-data.js
new file mode 100644
index 0000000000..f5b2a60dc5
--- /dev/null
+++ b/test/sequential/test-http-client-timeout-with-data.js
@@ -0,0 +1,48 @@
+'use strict';
+const common = require('../common');
+const assert = require('assert');
+const http = require('http');
+
+var ntimeouts = 0;
+var nchunks = 0;
+
+process.on('exit', function() {
+ assert.equal(ntimeouts, 1);
+ assert.equal(nchunks, 2);
+});
+
+const options = {
+ method: 'GET',
+ port: undefined,
+ host: '127.0.0.1',
+ path: '/'
+};
+
+const server = http.createServer(function(req, res) {
+ res.writeHead(200, {'Content-Length': '2'});
+ res.write('*');
+ setTimeout(function() { res.end('*'); }, common.platformTimeout(100));
+});
+
+server.listen(0, options.host, function() {
+ options.port = this.address().port;
+ const req = http.request(options, onresponse);
+ req.end();
+
+ function onresponse(res) {
+ req.setTimeout(50, function() {
+ assert.equal(nchunks, 1); // should have received the first chunk by now
+ ntimeouts++;
+ });
+
+ res.on('data', function(data) {
+ assert.equal('' + data, '*');
+ nchunks++;
+ });
+
+ res.on('end', function() {
+ assert.equal(nchunks, 2);
+ server.close();
+ });
+ }
+});