1// Copyright Joyent, Inc. and other Node contributors.2//3// Permission is hereby granted, free of charge, to any person obtaining a4// copy of this software and associated documentation files (the5// "Software"), to deal in the Software without restriction, including6// without limitation the rights to use, copy, modify, merge, publish,7// distribute, sublicense, and/or sell copies of the Software, and to permit8// persons to whom the Software is furnished to do so, subject to the9// following conditions:10//11// The above copyright notice and this permission notice shall be included12// in all copies or substantial portions of the Software.13//14// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS15// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF16// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN17// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,18// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR19// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE20// USE OR OTHER DEALINGS IN THE SOFTWARE.2122var assert = require('assert');23var events = require('../');2425function listener() {}26function listener2() {}2728var e1 = new events.EventEmitter();29e1.on('foo', listener);30var fooListeners = e1.listeners('foo');31assert.deepEqual(e1.listeners('foo'), [listener]);32e1.removeAllListeners('foo');33assert.deepEqual(e1.listeners('foo'), []);34assert.deepEqual(fooListeners, [listener]);3536var e2 = new events.EventEmitter();37e2.on('foo', listener);38var e2ListenersCopy = e2.listeners('foo');39assert.deepEqual(e2ListenersCopy, [listener]);40assert.deepEqual(e2.listeners('foo'), [listener]);41e2ListenersCopy.push(listener2);42assert.deepEqual(e2.listeners('foo'), [listener]);43assert.deepEqual(e2ListenersCopy, [listener, listener2]);4445var e3 = new events.EventEmitter();46e3.on('foo', listener);47var e3ListenersCopy = e3.listeners('foo');48e3.on('foo', listener2);49assert.deepEqual(e3.listeners('foo'), [listener, listener2]);50assert.deepEqual(e3ListenersCopy, [listener]);515253