/**
  * Test the clearListeners method.
  *
  * @return  void
  *
  * @covers  Joomla\Event\Dispatcher::clearListeners
  * @since   1.0
  */
 public function testClearListeners()
 {
     $listener1 = new SomethingListener();
     $listener2 = new SomethingListener();
     $listener3 = new SomethingListener();
     $this->instance->addListener($listener1)->addListener($listener2)->addListener($listener3);
     // Test without specified event.
     $this->instance->clearListeners();
     $this->assertFalse($this->instance->hasListener($listener1));
     $this->assertFalse($this->instance->hasListener($listener2));
     $this->assertFalse($this->instance->hasListener($listener3));
     // Test with an event specified.
     $this->instance->addListener($listener1)->addListener($listener2)->addListener($listener3);
     $this->instance->clearListeners('onSomething');
     $this->assertTrue($this->instance->hasListener($listener1));
     $this->assertTrue($this->instance->hasListener($listener2));
     $this->assertTrue($this->instance->hasListener($listener3));
     $this->assertFalse($this->instance->hasListener($listener1, 'onSomething'));
     $this->assertFalse($this->instance->hasListener($listener2, 'onSomething'));
     $this->assertFalse($this->instance->hasListener($listener3, 'onSomething'));
     // Test with a specified event object.
     $this->instance->clearListeners(new Event('onAfterSomething'));
     $this->assertTrue($this->instance->hasListener($listener1));
     $this->assertTrue($this->instance->hasListener($listener2));
     $this->assertTrue($this->instance->hasListener($listener3));
     $this->assertFalse($this->instance->hasListener($listener1, 'onAfterSomething'));
     $this->assertFalse($this->instance->hasListener($listener2, 'onAfterSomething'));
     $this->assertFalse($this->instance->hasListener($listener3, 'onAfterSomething'));
 }
예제 #2
0
 /**
  * Test the clearListeners method.
  *
  * @return  void
  *
  * @since   1.0
  */
 public function testClearListeners()
 {
     // Add 3 listeners listening to the same events.
     $listener1 = new SomethingListener();
     $listener2 = new SomethingListener();
     $listener3 = new SomethingListener();
     $this->instance->addListener('onBeforeSomething', [$listener1, 'onBeforeSomething'])->addListener('onSomething', [$listener1, 'onSomething'])->addListener('onAfterSomething', [$listener1, 'onAfterSomething'])->addListener('onBeforeSomething', [$listener2, 'onBeforeSomething'])->addListener('onSomething', [$listener2, 'onSomething'])->addListener('onAfterSomething', [$listener2, 'onAfterSomething'])->addListener('onBeforeSomething', [$listener3, 'onBeforeSomething'])->addListener('onSomething', [$listener3, 'onSomething'])->addListener('onAfterSomething', [$listener3, 'onAfterSomething']);
     // Test without specified event.
     $this->instance->clearListeners();
     $this->assertFalse($this->instance->hasListener([$listener1, 'onBeforeSomething']));
     $this->assertFalse($this->instance->hasListener([$listener2, 'onSomething']));
     $this->assertFalse($this->instance->hasListener([$listener3, 'onAfterSomething']));
     // Test with an event specified.
     $this->instance->addListener('onBeforeSomething', [$listener1, 'onBeforeSomething'])->addListener('onSomething', [$listener1, 'onSomething'])->addListener('onAfterSomething', [$listener1, 'onAfterSomething'])->addListener('onBeforeSomething', [$listener2, 'onBeforeSomething'])->addListener('onSomething', [$listener2, 'onSomething'])->addListener('onAfterSomething', [$listener2, 'onAfterSomething'])->addListener('onBeforeSomething', [$listener3, 'onBeforeSomething'])->addListener('onSomething', [$listener3, 'onSomething'])->addListener('onAfterSomething', [$listener3, 'onAfterSomething']);
     $this->instance->clearListeners('onSomething');
     $this->assertTrue($this->instance->hasListener([$listener1, 'onBeforeSomething']));
     $this->assertFalse($this->instance->hasListener([$listener2, 'onSomething']));
     $this->assertTrue($this->instance->hasListener([$listener3, 'onAfterSomething']));
     $this->assertFalse($this->instance->hasListener([$listener1, 'onSomething']));
     $this->assertFalse($this->instance->hasListener([$listener3, 'onSomething']));
 }