function dispatch($uri) { $this->request->setUri($uri); $event = new \Zend\Mvc\MvcEvent(); $event->setRouter($this->router); $event->setRequest($this->request); $this->events->trigger('route', $event); $this->routeMatch = $event->getRouteMatch(); }
protected function getEventWithEventManager() { $mockEventManager = \Mockery::mock('\\Zend\\EventManager'); $mockApplication = \Mockery::mock('\\Zend\\Mvc\\Application'); $mockApplication->shouldReceive('getEventManager')->andReturn($mockEventManager); $event = new \Zend\Mvc\MvcEvent(); $event->setApplication($mockApplication); return [$mockEventManager, $event]; }
public function testAlreadySetLayoutTemplate() { $listener = new LayoutTemplateListener($this->layoutUpdater); $layout = new ViewModel(); $layout->setTemplate('3cols'); $event = new \Zend\Mvc\MvcEvent(); $event->setViewModel($layout); $listener->setLayoutTemplate($event); $this->assertEquals('3cols', $layout->getTemplate()); }
public function testDoesNotInjectTemplateWhenInModuleNamespace() { $e = new \Zend\Mvc\MvcEvent(); $routerFactory = new \Zend\Mvc\Service\RouterFactory(); $routeMatch = new \Zend\Mvc\Router\Http\RouteMatch(array('__NAMESPACE__' => 'App\\Controller', 'controller' => 'Index', 'action' => 'index')); $routeMatch->setMatchedRouteName('test'); $e->setRouteMatch($routeMatch)->setController('Index')->setControllerClass('App\\Controller\\Index')->setTarget('App\\Controller\\Index')->setResult(new \Zend\View\Model\ViewModel()); $this->listener->injectTemplate($e); $this->assertEquals('', $e->getResult()->getTemplate()); }
public function testLoadLayoutWithTerminationModel() { $listener = new LoadLayoutListener($this->layout); $layoutModel = new ViewModel(); $layoutModel->setTerminal(true); $event = new \Zend\Mvc\MvcEvent(); $event->setViewModel($layoutModel); $this->assertFalse($this->layout->isLoaded()); $listener->loadLayout($event); $this->assertFalse($this->layout->isLoaded()); }
public function testAddBodyClass() { $bodyClassHelper = new BodyClass(); $listener = new BodyClassListener($bodyClassHelper); $routeMatch = new RouteMatch([]); $routeMatch->setMatchedRouteName('my/SOME/route'); $event = new \Zend\Mvc\MvcEvent(); $event->setRouteMatch($routeMatch); $listener->addBodyClass($event); $this->assertEquals('my-some-route', (string) $bodyClassHelper); }
/** * Init layout view model * @return \BoilerAppMessenger\Media\Mail\MailMessageRenderer */ public function initLayout() { //Create layout template $oEvent = new \Zend\Mvc\MvcEvent(\Zend\Mvc\MvcEvent::EVENT_RENDER); $oEvent->setViewModel(new \Zend\View\Model\ViewModel()); if ($this->hasTemplatingService()) { $this->getTemplatingService()->buildLayoutTemplate($oEvent->setRequest(new \Zend\Http\Request())); } $this->plugin('view_model')->setRoot($oEvent->getViewModel()); return $this; }
public function testOnBootstrapListenersWithConsoleRequest() { $module = new Module(); $application = $this->createApplication(); $sm = $application->getServiceManager(); $sm->setAllowOverride(true); $sm->setService('Request', new ConsoleRequest()); $em = $application->getEventManager(); $event = new \Zend\Mvc\MvcEvent(); $event->setApplication($application); $this->assertCount(0, $em->getListeners(\Zend\Mvc\MvcEvent::EVENT_DISPATCH)); $module->onBootstrap($event); $this->assertCount(0, $em->getListeners(\Zend\Mvc\MvcEvent::EVENT_DISPATCH)); }
/** * Get an initialized instance of the controller plugin * * If controller setup is requested, the controller will be a * \Library\Test\Mvc\Controller\TestController. Its MvcEvent will be * initialized with a standard route 'test' (/module/controller/action/) * with defaults of "defaultcontroller" and "defaultaction". * The RouteMatch is initialized with "currentcontroller" and * "currentaction". An empty response is created. * * @param bool $setController Initialize the helper with a working controller (default: TRUE) * @return \Zend\Mvc\Controller\Plugin\PluginInterface Plugin instance */ protected function _getPlugin($setController = true) { if ($setController) { $router = new \Zend\Mvc\Router\Http\TreeRouteStack(); $router->addRoute('test', \Zend\Mvc\Router\Http\Segment::factory(array('route' => '/[module[/]][:controller[/][:action[/]]]', 'defaults' => array('controller' => 'defaultcontroller', 'action' => 'defaultaction')))); $routeMatch = new \Zend\Mvc\Router\RouteMatch(array('controller' => 'currentcontroller', 'action' => 'currentaction')); $routeMatch->setMatchedRouteName('test'); $event = new \Zend\Mvc\MvcEvent(); $event->setRouter($router); $event->setRouteMatch($routeMatch); $event->setResponse(new \Zend\Http\Response()); // Register TestController with the service manager because this is // not done in the module setup $manager = Application::getService('ControllerManager'); $manager->setInvokableClass('test', 'Library\\Test\\Mvc\\Controller\\TestController'); $this->_controller = $manager->get('test'); $this->_controller->setEvent($event); return $this->_controller->plugin($this->_getPluginName()); } else { return $this->_getPluginManager()->get($this->_getPluginName()); } }
public function getServiceConfig() { return array('factories' => array('MaglLegacyApplicationOptions' => function ($sl) { $config = $sl->get('Config'); $options = $config['magl_legacy_application']; return new Options\LegacyControllerOptions($options); }, 'MaglControllerService' => function (ServiceManager $sl) { $eventManager = $sl->get('Application')->getEventManager(); $event = new \Zend\Mvc\MvcEvent(); $event->setApplication($sl->get('Application')); $event->setTarget($sl->get('Application')); $event->setRequest($sl->get('Request')); $event->setRouter($sl->get('Router')); $event->setRouteMatch(new RouteMatch(array())); return new Service\ControllerService($eventManager, $event); })); }
public function configureEvent() { $event = new \Zend\Mvc\MvcEvent(); $event->setApplication($this->getApplication()); return $event; }
/** * Get an initialized instance of the controller plugin * * If controller setup is requested, the controller will be a * \Zend\Mvc\Controller\AbstractActionController mock. Its MvcEvent will be * initialized with a standard route 'test' (/module/controller/action/) * with defaults of "defaultcontroller" and "defaultaction". * The RouteMatch is initialized with "currentcontroller" and * "currentaction". An empty response is created. * * @param bool $setController Initialize the helper with a working controller (default: TRUE) * @return \Zend\Mvc\Controller\Plugin\PluginInterface Plugin instance */ protected function _getPlugin($setController = true) { if ($setController) { $router = new \Zend\Router\Http\TreeRouteStack(); $router->addRoute('test', \Zend\Router\Http\Segment::factory(array('route' => '/[module[/]][:controller[/][:action[/]]]', 'defaults' => array('controller' => 'defaultcontroller', 'action' => 'defaultaction')))); $routeMatch = new \Zend\Router\RouteMatch(array('controller' => 'currentcontroller', 'action' => 'currentaction')); $routeMatch->setMatchedRouteName('test'); $event = new \Zend\Mvc\MvcEvent(); $event->setRouter($router); $event->setRouteMatch($routeMatch); $event->setResponse(new \Zend\Http\Response()); $this->_controller = $this->getMockBuilder('Zend\\Mvc\\Controller\\AbstractActionController')->setMethods(null)->getMockForAbstractClass(); $this->_controller->setPluginManager($this->_getPluginManager()); $this->_controller->setEvent($event); return $this->_controller->plugin($this->_getPluginName()); } else { return $this->_getPluginManager()->get($this->_getPluginName()); } }
/** * @covers \EscoMail\Service\MailLogger::onMailSentError */ public function testLoggerOnMailSentFailure() { $configArray = array('log_dir' => vfsStream::url('exampleDir') . '/tmp'); $serviceManager = new ServiceManager(); $options = new ModuleOptions($configArray); $mailLogger = new MailLogger($options, $serviceManager); $mailSubject = 'Subject of the mail message'; $messageMock = $this->getMock('Zend\\Mail\\Message', array('getSubject')); $messageMock->expects($this->once())->method('getSubject')->will($this->returnValue($mailSubject)); $messageMock->addTo('*****@*****.**'); $mvcEvent = new \Zend\Mvc\MvcEvent(); $mvcEvent->setTarget($messageMock); $mvcEvent->setParam('error_message', 'Error message description'); $logFile = $configArray['log_dir'] . '/mail.log'; $this->assertEmpty(file_get_contents($logFile)); $mailLogger->onMailSentError($mvcEvent); $content = file_get_contents($logFile); $match = preg_match("/^(.*)ERR \\(3\\):(.*)'{$mailSubject}'(.*): foo@bar.com(.*): Error message description/i", $content); $this->assertEquals(1, $match); }