diff options
Diffstat (limited to 'test/sequential/test-http-client-timeout-with-data.js')
-rw-r--r-- | test/sequential/test-http-client-timeout-with-data.js | 48 |
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(); + }); + } +}); |