Guest User

Untitled

a guest
Jul 22nd, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. var common = require('../common');
  2. var assert = require('assert');
  3. var fs = require('fs');
  4. var http = require('http');
  5. var util = require('util');
  6. var path = require('path');
  7. var fn = path.join(common.fixturesDir, 'elipses-large.txt');
  8.  
  9. var client_req_complete = false;
  10. var expected = fs.readFileSync(fn, 'utf8');
  11. var buffer = '';
  12. var count = 0;
  13.  
  14. var server = http.createServer(function(req, res) {
  15. var timeoutId;
  16. assert.equal('POST', req.method);
  17. req.pause();
  18. common.error('request paused');
  19.  
  20. setTimeout(function() {
  21. req.resume();
  22. common.error('request resumed');
  23. }, 1000);
  24.  
  25. req.setEncoding('utf8');
  26. req.addListener('data', function(chunk) {
  27. common.error('recv data! nchars = ' + chunk.length);
  28. buffer += chunk;
  29. });
  30.  
  31. req.addListener('end', function() {
  32. if (timeoutId) {
  33. clearTimeout(timeoutId);
  34. }
  35. console.log('request complete from server');
  36. res.writeHead(200, {'Content-Type': 'text/plain'});
  37. res.end();
  38. });
  39. });
  40. server.listen(common.PORT);
  41.  
  42. server.addListener('listening', function() {
  43. var req = http.request({
  44. port: common.PORT,
  45. path: '/',
  46. method: 'POST'
  47. });
  48.  
  49. common.error('pump!');
  50. util.pump(fs.createReadStream(fn), req, function(err) {
  51. if (err) {
  52. throw err;
  53. }
  54. client_req_complete = true;
  55. common.error('client finished sending request');
  56. });
  57.  
  58. req.addListener('response', function(res) {
  59. res.addListener('end', function() {
  60. server.close();
  61. });
  62. });
  63. });
  64.  
  65. process.addListener('exit', function() {
  66. assert.equal(expected, buffer);
  67. assert.ok(client_req_complete);
  68. });
Add Comment
Please, Sign In to add comment