%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
// Flags: --expose-internals 'use strict'; const common = require('../common'); const assert = require('assert'); const EventEmitter = require('events'); const SocketListReceive = require('internal/socket_list').SocketListReceive; const key = 'test-key'; // Verify that the message won't be sent when child is not connected. { const child = Object.assign(new EventEmitter(), { connected: false, _send: common.mustNotCall() }); const list = new SocketListReceive(child, key); list.child.emit('internalMessage', { key, cmd: 'NODE_SOCKET_NOTIFY_CLOSE' }); list.child.emit('internalMessage', { key, cmd: 'NODE_SOCKET_GET_COUNT' }); } // Verify that a "NODE_SOCKET_ALL_CLOSED" message will be sent. { const child = Object.assign(new EventEmitter(), { connected: true, _send: common.mustCall((msg) => { assert.strictEqual(msg.cmd, 'NODE_SOCKET_ALL_CLOSED'); assert.strictEqual(msg.key, key); }) }); const list = new SocketListReceive(child, key); list.child.emit('internalMessage', { key, cmd: 'NODE_SOCKET_NOTIFY_CLOSE' }); } // Verify that a "NODE_SOCKET_COUNT" message will be sent. { const child = Object.assign(new EventEmitter(), { connected: true, _send: common.mustCall((msg) => { assert.strictEqual(msg.cmd, 'NODE_SOCKET_COUNT'); assert.strictEqual(msg.key, key); assert.strictEqual(msg.count, 0); }) }); const list = new SocketListReceive(child, key); list.child.emit('internalMessage', { key, cmd: 'NODE_SOCKET_GET_COUNT' }); } // Verify that the connections count is added and an "empty" event // will be emitted when all sockets in obj were closed. { const child = new EventEmitter(); const obj = { socket: new EventEmitter() }; const list = new SocketListReceive(child, key); assert.strictEqual(list.connections, 0); list.add(obj); assert.strictEqual(list.connections, 1); list.on('empty', common.mustCall((self) => assert.strictEqual(self, list))); obj.socket.emit('close'); assert.strictEqual(list.connections, 0); }