|  | 
| 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