node/test/parallel/test-http-client-read-in-error.js
Rich Trott 02fe8215f0 test: load common.js to test for global leaks
common.js contains code that checks for variables leaking into the
global namespace. Load common.js in all tests that do not
intentionally leak variables.

PR-URL: https://github.com/nodejs/node/pull/3095
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
2015-10-01 20:16:35 -07:00

45 lines
921 B
JavaScript

'use strict';
require('../common');
var net = require('net');
var http = require('http');
var util = require('util');
function Agent() {
http.Agent.call(this);
}
util.inherits(Agent, http.Agent);
Agent.prototype.createConnection = function() {
var self = this;
var socket = new net.Socket();
socket.on('error', function() {
socket.push('HTTP/1.1 200\r\n\r\n');
});
socket.on('newListener', function onNewListener(name) {
if (name !== 'error')
return;
socket.removeListener('newListener', onNewListener);
// Let other listeners to be set up too
process.nextTick(function() {
self.breakSocket(socket);
});
});
return socket;
};
Agent.prototype.breakSocket = function breakSocket(socket) {
socket.emit('error', new Error('Intentional error'));
};
var agent = new Agent();
http.request({
agent: agent
}).once('error', function() {
console.log('ignore');
});