| 'use strict'; |
| const common = require('../common'); |
| const assert = require('assert'); |
| const http = require('http'); |
| const net = require('net'); |
| |
| ['on', 'addListener', 'prependListener'].forEach((testFn) => { |
| let received = ''; |
| |
| const server = http.createServer(function(req, res) { |
| res.writeHead(200); |
| res.end(); |
| |
| req.socket[testFn]('data', function(data) { |
| received += data; |
| }); |
| |
| server.close(); |
| }).listen(0, function() { |
| const socket = net.connect(this.address().port, function() { |
| socket.write('PUT / HTTP/1.1\r\n\r\n'); |
| |
| socket.once('data', function() { |
| socket.end('hello world'); |
| }); |
| |
| socket.on('end', common.mustCall(() => { |
| assert.strictEqual(received, 'hello world', |
| `failed for socket.${testFn}`); |
| })); |
| }); |
| }); |
| }); |