public function testRemoveAll() { $closure = function () { }; $closure1 = function () { }; $this->event->on('test', $closure); $this->event->on('test', $closure1); $this->event->on('test1', $closure1); $this->assertEquals(array($closure, $closure1), $this->event->listeners('test')); $this->assertEquals(array($closure1), $this->event->listeners('test1')); $this->event->removeAllListeners('test'); $this->assertEquals(array(), $this->event->listeners('test')); $this->event->removeAllListeners(); $this->assertEquals(array(), $this->event->listeners('test1')); }
function testRemoveAllListeners() { $self = $this; $ok = false; $bad = false; $eventEmitter = new EventEmitter(); $listener1 = function () use(&$bad) { $bad = true; }; $listener2 = function () use(&$bad) { $bad = true; }; $eventEmitter->on('test', $listener1); $eventEmitter->on('test', $listener2); $eventEmitter->removeAllListeners('test'); $eventEmitter->emit('test'); $this->assertFalse($bad); }
function testUnregisterAllListenersForMultipleEvents() { $a = 0; $b = 0; $ee = new EventEmitter(); $ee->on(['foo', 'bar', 'qux'], function () use(&$a) { $a++; }); $ee->on(['bar', 'qux'], function () use(&$b) { $b++; }); $ee->removeAllListeners(['foo', 'bar']); $ee->emit('foo'); $ee->emit('bar'); $ee->emit('qux'); $this->assertEquals(1, $a); $this->assertEquals(1, $b); }
function testRemoveAllListenersNoArg() { $result = false; $callBack = function () use(&$result) { $result = true; }; $ee = new EventEmitter(); $ee->on('foo', $callBack); $ee->emit('foo'); $this->assertTrue($result); $result = false; $ee->removeAllListeners(); $ee->emit('foo'); $this->assertFalse($result); }