|
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