1'use strict'; 2 3const common = require('../common'); 4const EventEmitter = require('events'); 5const assert = require('assert'); 6 7const EE = new EventEmitter(); 8const handler = common.mustCall(undefined, 3); 9const anotherHandler = common.mustCall(); 10 11assert.strictEqual(EE.listenerCount('event'), 0); 12assert.strictEqual(EE.listenerCount('event', handler), 0); 13assert.strictEqual(EE.listenerCount('event', anotherHandler), 0); 14 15EE.once('event', handler); 16 17assert.strictEqual(EE.listenerCount('event'), 1); 18assert.strictEqual(EE.listenerCount('event', handler), 1); 19assert.strictEqual(EE.listenerCount('event', anotherHandler), 0); 20 21EE.removeAllListeners('event'); 22 23assert.strictEqual(EE.listenerCount('event'), 0); 24assert.strictEqual(EE.listenerCount('event', handler), 0); 25assert.strictEqual(EE.listenerCount('event', anotherHandler), 0); 26 27EE.on('event', handler); 28 29assert.strictEqual(EE.listenerCount('event'), 1); 30assert.strictEqual(EE.listenerCount('event', handler), 1); 31assert.strictEqual(EE.listenerCount('event', anotherHandler), 0); 32 33EE.once('event', anotherHandler); 34 35assert.strictEqual(EE.listenerCount('event'), 2); 36assert.strictEqual(EE.listenerCount('event', handler), 1); 37assert.strictEqual(EE.listenerCount('event', anotherHandler), 1); 38 39assert.strictEqual(EE.listenerCount('another-event'), 0); 40assert.strictEqual(EE.listenerCount('another-event', handler), 0); 41assert.strictEqual(EE.listenerCount('another-event', anotherHandler), 0); 42 43EE.once('event', handler); 44 45assert.strictEqual(EE.listenerCount('event'), 3); 46assert.strictEqual(EE.listenerCount('event', handler), 2); 47assert.strictEqual(EE.listenerCount('event', anotherHandler), 1); 48 49EE.emit('event'); 50 51assert.strictEqual(EE.listenerCount('event'), 1); 52assert.strictEqual(EE.listenerCount('event', handler), 1); 53assert.strictEqual(EE.listenerCount('event', anotherHandler), 0); 54 55EE.emit('event'); 56 57assert.strictEqual(EE.listenerCount('event'), 1); 58assert.strictEqual(EE.listenerCount('event', handler), 1); 59assert.strictEqual(EE.listenerCount('event', anotherHandler), 0); 60 61EE.off('event', handler); 62 63assert.strictEqual(EE.listenerCount('event'), 0); 64assert.strictEqual(EE.listenerCount('event', handler), 0); 65assert.strictEqual(EE.listenerCount('event', anotherHandler), 0); 66