Server IP : 66.29.132.122 / Your IP : 3.141.193.126 Web Server : LiteSpeed System : Linux business142.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : admazpex ( 531) PHP Version : 7.2.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/opt/cloudlinux/alt-php55/root/usr/share/pear/test/EventDispatcher/Symfony/Component/EventDispatcher/Tests/ |
Upload File : |
<?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\DependencyInjection\Scope; use Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher; use Symfony\Component\EventDispatcher\Event; use Symfony\Component\EventDispatcher\EventSubscriberInterface; class ContainerAwareEventDispatcherTest extends \PHPUnit_Framework_TestCase { public function testAddAListenerService() { $event = new Event(); $service = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service'); $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->getMock('Symfony\Component\EventDispatcher\Tests\SubscriberService'); $service ->expects($this->once()) ->method('onEvent') ->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); } public function testPreventDuplicateListenerService() { $event = new Event(); $service = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service'); $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); } /** * @expectedException \InvalidArgumentException */ public function testTriggerAListenerServiceOutOfScope() { $service = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service'); $scope = new Scope('scope'); $container = new Container(); $container->addScope($scope); $container->enterScope('scope'); $container->set('service.listener', $service, 'scope'); $dispatcher = new ContainerAwareEventDispatcher($container); $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent')); $container->leaveScope('scope'); $dispatcher->dispatch('onEvent'); } public function testReEnteringAScope() { $event = new Event(); $service1 = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service'); $service1 ->expects($this->exactly(2)) ->method('onEvent') ->with($event) ; $scope = new Scope('scope'); $container = new Container(); $container->addScope($scope); $container->enterScope('scope'); $container->set('service.listener', $service1, 'scope'); $dispatcher = new ContainerAwareEventDispatcher($container); $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent')); $dispatcher->dispatch('onEvent', $event); $service2 = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service'); $service2 ->expects($this->once()) ->method('onEvent') ->with($event) ; $container->enterScope('scope'); $container->set('service.listener', $service2, 'scope'); $dispatcher->dispatch('onEvent', $event); $container->leaveScope('scope'); $dispatcher->dispatch('onEvent'); } public function testHasListenersOnLazyLoad() { $event = new Event(); $service = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service'); $container = new Container(); $container->set('service.listener', $service); $dispatcher = new ContainerAwareEventDispatcher($container); $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent')); $event->setDispatcher($dispatcher); $event->setName('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->getMock('Symfony\Component\EventDispatcher\Tests\Service'); $container = new Container(); $container->set('service.listener', $service); $dispatcher = new ContainerAwareEventDispatcher($container); $dispatcher->addListenerService('onEvent', array('service.listener', 'onEvent')); $listeners = $dispatcher->getListeners(); $this->assertTrue(isset($listeners['onEvent'])); $this->assertCount(1, $dispatcher->getListeners('onEvent')); } public function testRemoveAfterDispatch() { $service = $this->getMock('Symfony\Component\EventDispatcher\Tests\Service'); $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->getMock('Symfony\Component\EventDispatcher\Tests\Service'); $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', 'onEvent' => array('onEvent', 10), 'onEvent' => array('onEvent'), ); } public function onEvent(Event $e) { } }