radarrplexorganizrnginxsonarrdashboardhtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelanding
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							210 lines
						
					
					
						
							6.2 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							210 lines
						
					
					
						
							6.2 KiB
						
					
					
				| <?php | |
| 
 | |
| /* | |
|  * This file is part of the Symfony package. | |
|  * | |
|  * (c) Fabien Potencier <fabien@symfony.com> | |
|  * | |
|  * For the full copyright and license information, please view the LICENSE | |
|  * file that was distributed with this source code. | |
|  */ | |
| 
 | |
| namespace Symfony\Component\EventDispatcher\Tests; | |
| 
 | |
| use Symfony\Component\DependencyInjection\Container; | |
| use Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher; | |
| use Symfony\Component\EventDispatcher\Event; | |
| use Symfony\Component\EventDispatcher\EventSubscriberInterface; | |
| 
 | |
| /** | |
|  * @group legacy | |
|  */ | |
| class ContainerAwareEventDispatcherTest extends AbstractEventDispatcherTest | |
| { | |
|     protected function createEventDispatcher() | |
|     { | |
|         $container = new Container(); | |
| 
 | |
|         return new ContainerAwareEventDispatcher($container); | |
|     } | |
| 
 | |
|     public function testAddAListenerService() | |
|     { | |
|         $event = new Event(); | |
| 
 | |
|         $service = $this->getMockBuilder('Symfony\Component\EventDispatcher\Tests\Service')->getMock(); | |
| 
 | |
|         $service | |
|             ->expects($this->once()) | |
|             ->method('onEvent') | |
|             ->with($event) | |
|         ; | |
| 
 | |
|         $container = new Container(); | |
|         $container->set('service.listener', $service); | |
| 
 | |
|         $dispatcher = new ContainerAwareEventDispatcher($container); | |
|         $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent')); | |
| 
 | |
|         $dispatcher->dispatch('onEvent', $event); | |
|     } | |
| 
 | |
|     public function testAddASubscriberService() | |
|     { | |
|         $event = new Event(); | |
| 
 | |
|         $service = $this->getMockBuilder('Symfony\Component\EventDispatcher\Tests\SubscriberService')->getMock(); | |
| 
 | |
|         $service | |
|             ->expects($this->once()) | |
|             ->method('onEvent') | |
|             ->with($event) | |
|         ; | |
| 
 | |
|         $service | |
|             ->expects($this->once()) | |
|             ->method('onEventWithPriority') | |
|             ->with($event) | |
|         ; | |
| 
 | |
|         $service | |
|             ->expects($this->once()) | |
|             ->method('onEventNested') | |
|             ->with($event) | |
|         ; | |
| 
 | |
|         $container = new Container(); | |
|         $container->set('service.subscriber', $service); | |
| 
 | |
|         $dispatcher = new ContainerAwareEventDispatcher($container); | |
|         $dispatcher->addSubscriberService('service.subscriber', 'Symfony\Component\EventDispatcher\Tests\SubscriberService'); | |
| 
 | |
|         $dispatcher->dispatch('onEvent', $event); | |
|         $dispatcher->dispatch('onEventWithPriority', $event); | |
|         $dispatcher->dispatch('onEventNested', $event); | |
|     } | |
| 
 | |
|     public function testPreventDuplicateListenerService() | |
|     { | |
|         $event = new Event(); | |
| 
 | |
|         $service = $this->getMockBuilder('Symfony\Component\EventDispatcher\Tests\Service')->getMock(); | |
| 
 | |
|         $service | |
|             ->expects($this->once()) | |
|             ->method('onEvent') | |
|             ->with($event) | |
|         ; | |
| 
 | |
|         $container = new Container(); | |
|         $container->set('service.listener', $service); | |
| 
 | |
|         $dispatcher = new ContainerAwareEventDispatcher($container); | |
|         $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent'), 5); | |
|         $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent'), 10); | |
| 
 | |
|         $dispatcher->dispatch('onEvent', $event); | |
|     } | |
| 
 | |
|     public function testHasListenersOnLazyLoad() | |
|     { | |
|         $event = new Event(); | |
| 
 | |
|         $service = $this->getMockBuilder('Symfony\Component\EventDispatcher\Tests\Service')->getMock(); | |
| 
 | |
|         $container = new Container(); | |
|         $container->set('service.listener', $service); | |
| 
 | |
|         $dispatcher = new ContainerAwareEventDispatcher($container); | |
|         $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent')); | |
| 
 | |
|         $service | |
|             ->expects($this->once()) | |
|             ->method('onEvent') | |
|             ->with($event) | |
|         ; | |
| 
 | |
|         $this->assertTrue($dispatcher->hasListeners()); | |
| 
 | |
|         if ($dispatcher->hasListeners('onEvent')) { | |
|             $dispatcher->dispatch('onEvent'); | |
|         } | |
|     } | |
| 
 | |
|     public function testGetListenersOnLazyLoad() | |
|     { | |
|         $service = $this->getMockBuilder('Symfony\Component\EventDispatcher\Tests\Service')->getMock(); | |
| 
 | |
|         $container = new Container(); | |
|         $container->set('service.listener', $service); | |
| 
 | |
|         $dispatcher = new ContainerAwareEventDispatcher($container); | |
|         $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent')); | |
| 
 | |
|         $listeners = $dispatcher->getListeners(); | |
| 
 | |
|         $this->assertArrayHasKey('onEvent', $listeners); | |
| 
 | |
|         $this->assertCount(1, $dispatcher->getListeners('onEvent')); | |
|     } | |
| 
 | |
|     public function testRemoveAfterDispatch() | |
|     { | |
|         $service = $this->getMockBuilder('Symfony\Component\EventDispatcher\Tests\Service')->getMock(); | |
| 
 | |
|         $container = new Container(); | |
|         $container->set('service.listener', $service); | |
| 
 | |
|         $dispatcher = new ContainerAwareEventDispatcher($container); | |
|         $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent')); | |
| 
 | |
|         $dispatcher->dispatch('onEvent', new Event()); | |
|         $dispatcher->removeListener('onEvent', array($container->get('service.listener'), 'onEvent')); | |
|         $this->assertFalse($dispatcher->hasListeners('onEvent')); | |
|     } | |
| 
 | |
|     public function testRemoveBeforeDispatch() | |
|     { | |
|         $service = $this->getMockBuilder('Symfony\Component\EventDispatcher\Tests\Service')->getMock(); | |
| 
 | |
|         $container = new Container(); | |
|         $container->set('service.listener', $service); | |
| 
 | |
|         $dispatcher = new ContainerAwareEventDispatcher($container); | |
|         $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent')); | |
| 
 | |
|         $dispatcher->removeListener('onEvent', array($container->get('service.listener'), 'onEvent')); | |
|         $this->assertFalse($dispatcher->hasListeners('onEvent')); | |
|     } | |
| } | |
| 
 | |
| class Service | |
| { | |
|     public function onEvent(Event $e) | |
|     { | |
|     } | |
| } | |
| 
 | |
| class SubscriberService implements EventSubscriberInterface | |
| { | |
|     public static function getSubscribedEvents() | |
|     { | |
|         return array( | |
|             'onEvent' => 'onEvent', | |
|             'onEventWithPriority' => array('onEventWithPriority', 10), | |
|             'onEventNested' => array(array('onEventNested')), | |
|         ); | |
|     } | |
| 
 | |
|     public function onEvent(Event $e) | |
|     { | |
|     } | |
| 
 | |
|     public function onEventWithPriority(Event $e) | |
|     { | |
|     } | |
| 
 | |
|     public function onEventNested(Event $e) | |
|     { | |
|     } | |
| }
 | |
| 
 |