|
1 | 1 | 'use strict';
|
2 |
| -require('../common'); |
3 |
| -var assert = require('assert'); |
4 |
| -var http = require('http'); |
| 2 | +const common = require('../common'); |
| 3 | +const assert = require('assert'); |
| 4 | +const http = require('http'); |
5 | 5 |
|
6 |
| -var serverConnected = false; |
7 |
| -var serverRequests = 0; |
8 | 6 | var clientResponses = 0;
|
9 | 7 |
|
10 |
| -var server = http.createServer(function(req, res) { |
| 8 | +const server = http.createServer(common.mustCall(function(req, res) { |
11 | 9 | console.error('Server got GET request');
|
12 | 10 | req.resume();
|
13 |
| - ++serverRequests; |
14 | 11 | res.writeHead(200);
|
15 | 12 | res.write('');
|
16 | 13 | setTimeout(function() {
|
17 | 14 | res.end(req.url);
|
18 | 15 | }, 50);
|
19 |
| -}); |
20 |
| -server.on('connect', function(req, socket, firstBodyChunk) { |
| 16 | +}, 2)); |
| 17 | +server.on('connect', common.mustCall(function(req, socket) { |
21 | 18 | console.error('Server got CONNECT request');
|
22 |
| - serverConnected = true; |
23 | 19 | socket.write('HTTP/1.1 200 Connection established\r\n\r\n');
|
24 | 20 | socket.resume();
|
25 | 21 | socket.on('end', function() {
|
26 | 22 | socket.end();
|
27 | 23 | });
|
28 |
| -}); |
| 24 | +})); |
29 | 25 | server.listen(0, function() {
|
30 |
| - var req = http.request({ |
| 26 | + const req = http.request({ |
31 | 27 | port: this.address().port,
|
32 | 28 | method: 'CONNECT',
|
33 | 29 | path: 'google.com:80'
|
34 | 30 | });
|
35 |
| - req.on('connect', function(res, socket, firstBodyChunk) { |
| 31 | + req.on('connect', common.mustCall(function(res, socket) { |
36 | 32 | console.error('Client got CONNECT response');
|
37 | 33 | socket.end();
|
38 | 34 | socket.on('end', function() {
|
39 | 35 | doRequest(0);
|
40 | 36 | doRequest(1);
|
41 | 37 | });
|
42 | 38 | socket.resume();
|
43 |
| - }); |
| 39 | + })); |
44 | 40 | req.end();
|
45 | 41 | });
|
46 | 42 |
|
47 | 43 | function doRequest(i) {
|
48 | 44 | http.get({
|
49 | 45 | port: server.address().port,
|
50 | 46 | path: '/request' + i
|
51 |
| - }, function(res) { |
| 47 | + }, common.mustCall(function(res) { |
52 | 48 | console.error('Client got GET response');
|
53 | 49 | var data = '';
|
54 | 50 | res.setEncoding('utf8');
|
55 | 51 | res.on('data', function(chunk) {
|
56 | 52 | data += chunk;
|
57 | 53 | });
|
58 | 54 | res.on('end', function() {
|
59 |
| - assert.equal(data, '/request' + i); |
| 55 | + assert.strictEqual(data, '/request' + i); |
60 | 56 | ++clientResponses;
|
61 | 57 | if (clientResponses === 2) {
|
62 | 58 | server.close();
|
63 | 59 | }
|
64 | 60 | });
|
65 |
| - }); |
| 61 | + })); |
66 | 62 | }
|
67 |
| - |
68 |
| -process.on('exit', function() { |
69 |
| - assert(serverConnected); |
70 |
| - assert.equal(serverRequests, 2); |
71 |
| - assert.equal(clientResponses, 2); |
72 |
| -}); |
0 commit comments