/** * Get shared event manager * * If one is not defined, but we have a static instance in * StaticEventManager, that one will be used and set in this instance. * * If none is available in the StaticEventManager, a boolean false is * returned. * * @return false|SharedEventManagerInterface */ public function getSharedManager() { // "false" means "I do not want a shared manager; don't try and fetch one" if (false === $this->sharedManager || $this->sharedManager instanceof SharedEventManagerInterface) { return $this->sharedManager; } if (!StaticEventManager::hasInstance()) { return false; } $this->sharedManager = StaticEventManager::getInstance(); return $this->sharedManager; }
public function testAssertWithEventShared() { $this->setApplicationConfig(include __DIR__ . '/../../_files/application.config.with.shared.events.php'); $this->dispatch('/tests'); $this->assertNotQuery('div#content'); $this->assertNotXpathQuery('//div[@id="content"]'); $this->assertEquals('<html></html>', $this->getResponse()->getContent()); $this->assertEquals(true, StaticEventManager::hasInstance()); $countListeners = count(StaticEventManager::getInstance()->getListeners('Zend\\Mvc\\Application', MvcEvent::EVENT_FINISH)); $this->assertEquals(1, $countListeners); $this->reset(); $this->assertEquals(false, StaticEventManager::hasInstance()); $countListeners = StaticEventManager::getInstance()->getListeners('Zend\\Mvc\\Application', MvcEvent::EVENT_FINISH); $this->assertEquals(false, $countListeners); $this->dispatch('/tests-bis'); $this->assertQuery('div#content'); $this->assertXpathQuery('//div[@id="content"]'); $this->assertNotEquals('<html></html>', $this->getResponse()->getContent()); }