public function setUp()
 {
     // Store original autoloaders
     $this->loaders = spl_autoload_functions();
     if (!is_array($this->loaders)) {
         // spl_autoload_functions does not return empty array when no
         // autoloaders registered...
         $this->loaders = array();
     }
     // Store original include_path
     $this->includePath = get_include_path();
     $autoloader = new ModuleAutoloader(array(dirname(__DIR__) . '/TestAsset'));
     $autoloader->register();
     $this->sharedEvents = new SharedEventManager();
     $this->moduleManager = new ModuleManager(array('ListenerTestModule'));
     $this->moduleManager->getEventManager()->setSharedManager($this->sharedEvents);
     $this->moduleManager->getEventManager()->attach('loadModule.resolve', new ModuleResolverListener(), 1000);
     $this->application = new MockApplication();
     $events = new EventManager(array('Zend\\Mvc\\Application', 'ZendTest\\Module\\TestAsset\\MockApplication', 'application'));
     $events->setSharedManager($this->sharedEvents);
     $this->application->setEventManager($events);
     $this->serviceManager = new ServiceManager();
     $this->serviceManager->setService('ModuleManager', $this->moduleManager);
     $this->application->setServiceManager($this->serviceManager);
 }
 /**
  * Create an instance of EventManagerProxy
  * 
  * @param ServiceLocatorInterface $serviceLocator
  * 
  * @return EventManagerProxy
  */
 public function createService(ServiceLocatorInterface $serviceLocator)
 {
     $proxy = new EventManagerProxy();
     $em = new EventManager();
     $em->setSharedManager($serviceLocator->get('SharedEventManager'));
     $proxy->setEventManager($em);
     return $proxy;
 }
Exemplo n.º 3
0
 public function testAttach()
 {
     $sharedEvents = new SharedEventManager();
     $events = new EventManager();
     $events->setSharedManager($sharedEvents);
     $listener = new AccessListener();
     $listener->attach($events);
     $this->assertCount(1, $sharedEvents->getListeners('SporkTools', MvcEvent::EVENT_DISPATCH));
 }
Exemplo n.º 4
0
 public function setUp()
 {
     $this->module = new Module();
     $this->app = $this->getMockBuilder('Zend\\Mvc\\Application')->disableOriginalConstructor()->getMock();
     $sm = new ServiceManager(new Config(['services' => ['translator' => Translator::factory(['locale' => 'id_ID'])]]));
     $this->app->expects($this->any())->method('getServiceManager')->willReturn($sm);
     $em = new EventManager();
     $em->setSharedManager(new SharedEventManager());
     $this->app->expects($this->any())->method('getEventManager')->willReturn($em);
 }
Exemplo n.º 5
0
 public function marshalEventManager()
 {
     $r = new ReflectionClass(EventManager::class);
     if ($r->hasMethod('setSharedManager')) {
         $eventManager = new EventManager();
         $eventManager->setSharedManager(new SharedEventManager());
         return $eventManager;
     }
     return new EventManager(new SharedEventManager());
 }
 public function testCanAttachListeners()
 {
     $mockListener = $this->getMock('EventLogger\\Log\\Listener\\LogListener');
     $serviceManager = new ServiceManager();
     $serviceManager->setService('EventLogger\\Log\\Listener\\AppListener', $mockListener);
     $serviceManager->setService('EventLogger\\Log\\Listener\\DispatchErrorListener', $mockListener);
     $eventManager = new EventManager();
     $eventManager->setSharedManager(new SharedEventManager());
     $listenerAggregate = new ListenerAggregate($serviceManager);
     $listenerAggregate->attach($eventManager);
 }
Exemplo n.º 7
0
 public function setUp()
 {
     $this->module = new Module();
     $app = $this->prophesize('Zend\\Mvc\\Application');
     $sm = new ServiceManager(new Config(['services' => ['translator' => Translator::factory(['locale' => 'id_ID'])]]));
     $app->getServiceManager()->willReturn($sm);
     $em = new EventManager();
     $em->setSharedManager(new SharedEventManager());
     $app->getEventManager()->willReturn($em);
     $this->app = $app->reveal();
 }
 /**
  * Create an EventManager instance
  *
  * Creates a new EventManager instance, seeding it with a shared instance
  * of SharedEventManager.
  *
  * @param  ServiceLocatorInterface $serviceLocator
  * @return EventManager
  * @throws ServiceNotFoundException
  */
 public function createService(ServiceLocatorInterface $serviceLocator)
 {
     if ($serviceLocator instanceof AbstractPluginManager) {
         $serviceLocator = $serviceLocator->getServiceLocator();
     }
     /** @var SharedEventManagerInterface $sharedEventManager */
     $sharedEventManager = $serviceLocator->get('SharedEventManager');
     $em = new EventManager();
     $em->setSharedManager($sharedEventManager);
     return $em;
 }
Exemplo n.º 9
0
    /**
     * Create an EventManager instance
     *
     * Creates a new EventManager instance, seeding it with a shared instance
     * of SharedEventManager.
     * 
     * @param  ServiceLocatorInterface $serviceLocator 
     * @return EventManager
     */
    public function createService(ServiceLocatorInterface $serviceLocator)
    {
        static $sharedEventManager = null;
        if (!$sharedEventManager) {
            $sharedEventManager = new SharedEventManager();
        }

        $em = new EventManager();
        $em->setSharedManager($sharedEventManager);
        return $em;
    }
 /**
  * Create and return an EventManager composing the shared event manager instance.
  *
  * @return EventManager
  */
 private function createEventManager()
 {
     $r = new \ReflectionClass(EventManager::class);
     if ($r->hasMethod('setSharedManager')) {
         // zend-eventmanager v2 initialization
         $eventManager = new EventManager();
         $eventManager->setSharedManager($this->sharedEventManager);
         return $eventManager;
     }
     // zend-eventmanager v3 initialization
     return new EventManager($this->sharedEventManager);
 }
Exemplo n.º 11
0
 /**
  * Create an EventManager instance
  *
  * Creates a new EventManager instance, seeding it with a shared instance
  * of SharedEventManager.
  *
  * @param  ContainerInterface $container
  * @param  string $name
  * @param  null|array $options
  * @return EventManager
  */
 public function __invoke(ContainerInterface $container, $name, array $options = null)
 {
     if ($this->acceptsSharedManagerToConstructor()) {
         // zend-eventmanager v3
         return new EventManager($container->has('SharedEventManager') ? $container->get('SharedEventManager') : null);
     }
     // zend-eventmanager v2
     $events = new EventManager();
     if ($container->has('SharedEventManager')) {
         $events->setSharedManager($container->get('SharedEventManager'));
     }
     return $events;
 }
Exemplo n.º 12
0
 /**
  * @param ContainerInterface $container
  *
  * @return EventManager
  */
 protected function createEventManager(ContainerInterface $container)
 {
     if ($this->acceptsSharedManagerToConstructor()) {
         // zend-eventmanager v3
         return new EventManager($container->has('SharedEventManager') ? $container->get('SharedEventManager') : null);
     }
     // zend-eventmanager v2
     $events = new EventManager();
     if ($container->has('SharedEventManager')) {
         $events->setSharedManager($container->get('SharedEventManager'));
     }
     return $events;
 }
Exemplo n.º 13
0
 protected function setUp()
 {
     $module = new Module();
     $events = new EventManager();
     $sharedEvents = new SharedEventManager();
     $events->setSharedManager($sharedEvents);
     $plugins = new ControllerPluginManager();
     $this->serviceManager = new ServiceManager();
     $this->serviceManager->setService('Zend\\ServiceManager\\ServiceLocatorInterface', $this->serviceManager);
     $this->serviceManager->setService('EventManager', $events);
     $this->serviceManager->setService('SharedEventManager', $sharedEvents);
     $this->serviceManager->setService('ControllerPluginManager', $plugins);
     $this->controllerManager = new ControllerManager(new Config($module->getControllerConfig()));
     $this->controllerManager->setServiceLocator($this->serviceManager);
     $this->controllerManager->addPeeringServiceManager($this->serviceManager);
 }
Exemplo n.º 14
0
 public function testEventListenerIsAttached()
 {
     $module = new Module();
     $mvcEvent = $this->getMock('Zend\\EventManager\\EventInterface');
     $application = $this->getMock('Zend\\Mvc\\Application', [], [], '', false);
     $eventManager = new EventManager();
     $eventManager->setSharedManager(new SharedEventManager());
     $serviceManager = new ServiceManager();
     $mvcEvent->expects($this->once())->method('getParam')->with('application')->will($this->returnValue($application));
     $application->expects($this->once())->method('getEventManager')->will($this->returnValue($eventManager));
     $application->expects($this->once())->method('getServiceManager')->will($this->returnValue($serviceManager));
     $eventManager->addIdentifiers(['ZfcUser\\Service\\User']);
     $event = new Event();
     $event->setName('register.post');
     $userRegistrationService = $this->getMock('HtUserRegistration\\Service\\UserRegistrationServiceInterface');
     $serviceManager->setService('HtUserRegistration\\UserRegistrationService', $userRegistrationService);
     $userRegistrationService->expects($this->once())->method('onUserRegistration')->with($event);
     $module->onBootstrap($mvcEvent);
     $eventManager->trigger($event);
 }
Exemplo n.º 15
0
 public function setUp()
 {
     $this->loaders = spl_autoload_functions();
     if (!is_array($this->loaders)) {
         // spl_autoload_functions does not return empty array when no
         // autoloaders registered...
         $this->loaders = array();
     }
     // Store original include_path
     $this->includePath = get_include_path();
     $autoloader = new ModuleAutoloader(array(dirname(__DIR__) . '/TestAsset'));
     $autoloader->register();
     $sharedEvents = new SharedEventManager();
     $this->moduleManager = new ModuleManager(array());
     $this->moduleManager->getEventManager()->setSharedManager($sharedEvents);
     $this->moduleManager->getEventManager()->attach(ModuleEvent::EVENT_LOAD_MODULE_RESOLVE, new ModuleResolverListener(), 1000);
     $this->moduleManager->getEventManager()->attach(ModuleEvent::EVENT_LOAD_MODULE, new OnBootstrapListener(), 1000);
     $this->application = new MockApplication();
     $events = new EventManager(array('Zend\\Mvc\\Application', 'ZendTest\\Module\\TestAsset\\MockApplication', 'application'));
     $events->setSharedManager($sharedEvents);
     $this->application->setEventManager($events);
 }
Exemplo n.º 16
0
 /**
  * Create and return an event manager instance.
  *
  * Ensures that the returned event manager has a shared manager
  * composed.
  *
  * @return EventManager
  */
 private function createEventManager()
 {
     $r = new ReflectionClass(EventManager::class);
     if ($r->hasMethod('setSharedManager')) {
         $events = new EventManager();
         $events->setSharedManager(new SharedEventManager());
     } else {
         $events = new EventManager(new SharedEventManager());
     }
     $this->setEventManager($events);
     return $events;
 }
Exemplo n.º 17
0
 public function index10Action()
 {
     $shareEventManager = new SharedEventManager();
     //Giống abstract
     $shareEventManager->attach("emOne", "eventOne", function ($e) {
         echo "<h3 style='color:red;font-weight:bold'>eventManagerOne - eventOne - Do 1</h3>";
     });
     $shareEventManager->attach(array("emTwo", "emThree"), "eventNew", function ($e) {
         echo "<h3 style='color:red;font-weight:bold'>eventManagerOne - eventNew - Do 1</h3>";
     });
     $eventManager = new EventManager(array("emOne", "emThree"));
     $eventManager->setSharedManager($shareEventManager);
     $eventManager->trigger("eventOne");
     $eventManager->trigger("eventNew");
     $eventManager = new EventManager("emTwo");
     $eventManager->setSharedManager($shareEventManager);
     $eventManager->trigger("eventNew");
     return false;
 }
Exemplo n.º 18
0
 public function testCanProvideAlternateEventManagerToDisableDefaultRouteAndDispatchEventListeners()
 {
     $app = $this->setupActionController();
     $events = new EventManager();
     $sharedEvents = new SharedEventManager();
     $events->setSharedManager($sharedEvents);
     $app->setEventManager($events);
     $listener1 = function ($e) {
         $response = $e->getResponse();
         $content = $response->getContent();
         $content = empty($content) ? 'listener1' : $content . '::' . 'listener1';
         $response->setContent($content);
     };
     $listener2 = function ($e) {
         $response = $e->getResponse();
         $content = $response->getContent();
         $content = empty($content) ? 'listener2' : $content . '::' . 'listener2';
         $response->setContent($content);
     };
     $sharedEvents->attach('ZendTest\\Mvc\\Controller\\TestAsset\\SampleController', 'dispatch', $listener1, 10);
     $sharedEvents->attach('ZendTest\\Mvc\\Controller\\TestAsset\\SampleController', 'dispatch', $listener2, -10);
     $app->run();
     $response = $app->getResponse();
     $content = $response->getContent();
     $this->assertNotContains('listener1', $content);
     $this->assertNotContains('listener2', $content);
 }
 public function testTriggersRenderErrorEventInCaseOfRenderingException()
 {
     $resolver = new TemplateMapResolver();
     $resolver->add('exception', __DIR__ . '/_files/exception.phtml');
     $this->renderer->setResolver($resolver);
     $strategy = new PhpRendererStrategy($this->renderer);
     $this->view->getEventManager()->attach($strategy);
     $model = new ViewModel();
     $model->setTemplate('exception');
     $this->event->setViewModel($model);
     $services = new ServiceManager();
     $services->setService('Request', $this->request);
     $services->setService('Response', $this->response);
     $services->setInvokableClass('SharedEventManager', 'Zend\\EventManager\\SharedEventManager');
     $services->setFactory('EventManager', function ($services) {
         $sharedEvents = $services->get('SharedEventManager');
         $events = new EventManager();
         $events->setSharedManager($sharedEvents);
         return $events;
     }, false);
     $application = new Application(array(), $services);
     $this->event->setApplication($application);
     $test = (object) array('flag' => false);
     $application->getEventManager()->attach(MvcEvent::EVENT_RENDER_ERROR, function ($e) use($test) {
         $test->flag = true;
         $test->error = $e->getError();
         $test->exception = $e->getParam('exception');
     });
     $this->strategy->render($this->event);
     $this->assertTrue($test->flag);
     $this->assertEquals(Application::ERROR_EXCEPTION, $test->error);
     $this->assertInstanceOf('Exception', $test->exception);
     $this->assertContains('script', $test->exception->getMessage());
 }
Exemplo n.º 20
0
 public function testListenersAttachedToAnyIdentifierProvidedToEventManagerWillBeTriggered()
 {
     $identifiers = array('foo', 'bar');
     $events = StaticEventManager::getInstance();
     $manager = new EventManager($identifiers);
     $manager->setSharedManager($events);
     $test = new \stdClass();
     $test->triggered = 0;
     $events->attach('foo', 'bar', function ($e) use($test) {
         $test->triggered++;
     });
     $events->attach('bar', 'bar', function ($e) use($test) {
         $test->triggered++;
     });
     $manager->trigger('bar', $this, array());
     $this->assertEquals(2, $test->triggered);
 }
 public function testPassingIdentifierToConstructorAllowsListeningOnThatIdentifier()
 {
     $controller = new ResourceController('MyNamespace\\Controller\\Foo');
     $events = new EventManager();
     $sharedEvents = new SharedEventManager();
     $events->setSharedManager($sharedEvents);
     $controller->setEventManager($events);
     $test = new stdClass();
     $test->flag = false;
     $sharedEvents->attach('MyNamespace\\Controller\\Foo', 'test', function ($e) use($test) {
         $test->flag = true;
     });
     $events->trigger('test', $controller, array());
     $this->assertTrue($test->flag);
 }