Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var common = require('../common');
- var assert = require('assert');
- var fs = require('fs');
- var http = require('http');
- var util = require('util');
- var path = require('path');
- var fn = path.join(common.fixturesDir, 'elipses-large.txt');
- var client_req_complete = false;
- var expected = fs.readFileSync(fn, 'utf8');
- var buffer = '';
- var count = 0;
- var server = http.createServer(function(req, res) {
- var timeoutId;
- assert.equal('POST', req.method);
- req.pause();
- common.error('request paused');
- setTimeout(function() {
- req.resume();
- common.error('request resumed');
- }, 1000);
- req.setEncoding('utf8');
- req.addListener('data', function(chunk) {
- common.error('recv data! nchars = ' + chunk.length);
- buffer += chunk;
- });
- req.addListener('end', function() {
- if (timeoutId) {
- clearTimeout(timeoutId);
- }
- console.log('request complete from server');
- res.writeHead(200, {'Content-Type': 'text/plain'});
- res.end();
- });
- });
- server.listen(common.PORT);
- server.addListener('listening', function() {
- var req = http.request({
- port: common.PORT,
- path: '/',
- method: 'POST'
- });
- common.error('pump!');
- util.pump(fs.createReadStream(fn), req, function(err) {
- if (err) {
- throw err;
- }
- client_req_complete = true;
- common.error('client finished sending request');
- });
- req.addListener('response', function(res) {
- res.addListener('end', function() {
- server.close();
- });
- });
- });
- process.addListener('exit', function() {
- assert.equal(expected, buffer);
- assert.ok(client_req_complete);
- });
Add Comment
Please, Sign In to add comment