Server IP : 127.0.0.2 / Your IP : 18.222.26.253 Web Server : Apache/2.4.18 (Ubuntu) System : User : www-data ( ) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : disk_free_space,disk_total_space,diskfreespace,dl,exec,fpaththru,getmyuid,getmypid,highlight_file,ignore_user_abord,leak,listen,link,opcache_get_configuration,opcache_get_status,passthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,php_uname,phpinfo,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,pclose,popen,proc_open,proc_close,proc_get_status,proc_nice,proc_terminate,shell_exec,source,show_source,system,virtual MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/vendor/symfony/event-dispatcher/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\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', ['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', ['service.listener', 'onEvent'], 5); $dispatcher->addListenerService('onEvent', ['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', ['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', ['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', ['service.listener', 'onEvent']); $dispatcher->dispatch('onEvent', new Event()); $dispatcher->removeListener('onEvent', [$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', ['service.listener', 'onEvent']); $dispatcher->removeListener('onEvent', [$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 [ 'onEvent' => 'onEvent', 'onEventWithPriority' => ['onEventWithPriority', 10], 'onEventNested' => [['onEventNested']], ]; } public function onEvent(Event $e) { } public function onEventWithPriority(Event $e) { } public function onEventNested(Event $e) { } }