11cb0ef41Sopenharmony_ci'use strict'; 21cb0ef41Sopenharmony_ciconst common = require('../common'); 31cb0ef41Sopenharmony_ciconst assert = require('assert'); 41cb0ef41Sopenharmony_ciconst http = require('http'); 51cb0ef41Sopenharmony_ciconst net = require('net'); 61cb0ef41Sopenharmony_ciconst dc = require('diagnostics_channel'); 71cb0ef41Sopenharmony_ci 81cb0ef41Sopenharmony_ciconst isHTTPServer = (server) => server instanceof http.Server; 91cb0ef41Sopenharmony_ciconst isIncomingMessage = (object) => object instanceof http.IncomingMessage; 101cb0ef41Sopenharmony_ciconst isOutgoingMessage = (object) => object instanceof http.OutgoingMessage; 111cb0ef41Sopenharmony_ciconst isNetSocket = (socket) => socket instanceof net.Socket; 121cb0ef41Sopenharmony_ci 131cb0ef41Sopenharmony_cidc.subscribe('http.client.request.start', common.mustCall(({ request }) => { 141cb0ef41Sopenharmony_ci assert.strictEqual(isOutgoingMessage(request), true); 151cb0ef41Sopenharmony_ci})); 161cb0ef41Sopenharmony_ci 171cb0ef41Sopenharmony_cidc.subscribe('http.client.response.finish', common.mustCall(({ 181cb0ef41Sopenharmony_ci request, 191cb0ef41Sopenharmony_ci response 201cb0ef41Sopenharmony_ci}) => { 211cb0ef41Sopenharmony_ci assert.strictEqual(isOutgoingMessage(request), true); 221cb0ef41Sopenharmony_ci assert.strictEqual(isIncomingMessage(response), true); 231cb0ef41Sopenharmony_ci})); 241cb0ef41Sopenharmony_ci 251cb0ef41Sopenharmony_cidc.subscribe('http.server.request.start', common.mustCall(({ 261cb0ef41Sopenharmony_ci request, 271cb0ef41Sopenharmony_ci response, 281cb0ef41Sopenharmony_ci socket, 291cb0ef41Sopenharmony_ci server, 301cb0ef41Sopenharmony_ci}) => { 311cb0ef41Sopenharmony_ci assert.strictEqual(isIncomingMessage(request), true); 321cb0ef41Sopenharmony_ci assert.strictEqual(isOutgoingMessage(response), true); 331cb0ef41Sopenharmony_ci assert.strictEqual(isNetSocket(socket), true); 341cb0ef41Sopenharmony_ci assert.strictEqual(isHTTPServer(server), true); 351cb0ef41Sopenharmony_ci})); 361cb0ef41Sopenharmony_ci 371cb0ef41Sopenharmony_cidc.subscribe('http.server.response.finish', common.mustCall(({ 381cb0ef41Sopenharmony_ci request, 391cb0ef41Sopenharmony_ci response, 401cb0ef41Sopenharmony_ci socket, 411cb0ef41Sopenharmony_ci server, 421cb0ef41Sopenharmony_ci}) => { 431cb0ef41Sopenharmony_ci assert.strictEqual(isIncomingMessage(request), true); 441cb0ef41Sopenharmony_ci assert.strictEqual(isOutgoingMessage(response), true); 451cb0ef41Sopenharmony_ci assert.strictEqual(isNetSocket(socket), true); 461cb0ef41Sopenharmony_ci assert.strictEqual(isHTTPServer(server), true); 471cb0ef41Sopenharmony_ci})); 481cb0ef41Sopenharmony_ci 491cb0ef41Sopenharmony_ciconst server = http.createServer(common.mustCall((req, res) => { 501cb0ef41Sopenharmony_ci res.end('done'); 511cb0ef41Sopenharmony_ci})); 521cb0ef41Sopenharmony_ci 531cb0ef41Sopenharmony_ciserver.listen(() => { 541cb0ef41Sopenharmony_ci const { port } = server.address(); 551cb0ef41Sopenharmony_ci http.get(`http://localhost:${port}`, (res) => { 561cb0ef41Sopenharmony_ci res.resume(); 571cb0ef41Sopenharmony_ci res.on('end', () => { 581cb0ef41Sopenharmony_ci server.close(); 591cb0ef41Sopenharmony_ci }); 601cb0ef41Sopenharmony_ci }); 611cb0ef41Sopenharmony_ci}); 62