public function setUp() { $savePath = ini_get('session.save_path'); if (strpos($savePath, ';')) { $savePath = explode(';', $savePath); $savePath = array_pop($savePath); } if (empty($savePath)) { $this->markTestSkipped('Cannot test FlashMessenger due to unavailable session save path'); } if (headers_sent()) { $this->markTestSkipped('Cannot test FlashMessenger: cannot start session because headers already sent'); } Zend_Session::start(); $this->front = Zend_Controller_Front::getInstance(); $this->front->resetInstance(); $this->front->setControllerDirectory(dirname(dirname(dirname(__FILE__))) . DIRECTORY_SEPARATOR . '_files'); $this->front->returnResponse(true); $this->request = new Zend_Controller_Request_Http(); $this->request->setControllerName('helper-flash-messenger'); $this->response = new Zend_Controller_Response_Cli(); $this->controller = new HelperFlashMessengerController($this->request, $this->response, array()); $this->helper = new Zend_Controller_Action_Helper_FlashMessenger($this->controller); }
public function testCustomHelperFromPath() { $this->front->setControllerDirectory(dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . '_files'); $request = new Zend_Controller_Request_Http('http://framework.zend.com/helper-broker/test-custom-helper/'); $this->front->setResponse(new Zend_Controller_Response_Cli()); $this->front->returnResponse(true); Zend_Controller_Action_HelperBroker::addPath(dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'Helpers', 'MyApp'); $response = $this->front->dispatch($request); $this->assertEquals('MyApp_TestHelper', $response->getBody()); }
/** * Dispatches the request * * @param Zend_Controller_Front $frontController - The frontcontroller * @return Zend_Controller_Response_Abstract */ public function dispatch(Zend_Controller_Front $frontController, Zend_Controller_Request_Abstract $request = null, Zend_Controller_Response_Abstract $response = null) { // Return the response $frontController->returnResponse(true); return $frontController->dispatch(); }
/** * Processes the requestStack and merges their responses into $response. * * @param Zend_Controller_Front $front * @param Zend_Controller_Response_Abstract $response * */ protected function _processRequestStack($front, Zend_Controller_Response_Abstract $response) { $stack =& $this->_requestStack; $config =& $this->_config; $i = count($stack) - 1; $responseStack = array(); $front->returnResponse(true); do { $myResponse = new Zend_Controller_Response_Http(); $nextRequest = array_pop($stack); $nextRequest->setParam($config['indexKey'], $i); $this->_resetHelper(); $this->_resetPlugins(); $this->_resetParams($nextRequest->getParams()); $front->setRequest($nextRequest); $front->setResponse($myResponse); $responseStack[] = $front->dispatch($nextRequest, $myResponse); } while ($i--); $front->returnResponse(false); $bodies = array(); for ($i = 0, $len = count($responseStack); $i < $len; $i++) { $bodies[] = $responseStack[$i]->getBody(); } $body = implode(',', $bodies); $response->setBody('[' . $body . ']'); }
/** * Dispatches all requests. * * @param Zend_Controller_Front $controller * @return array|null Array of Response objects, or null if no tasks */ public function run(Zend_Controller_Front $controller) { $router = $controller->getRouter(); $returnResponse = $controller->returnResponse(); $responses = array(); foreach ($this->_requests as $request) { if ($request->getControllerName()) { // Use default router $controller->setRouter(new Zend_Controller_Router()); } if ($returnResponse) { $responses[] = $controller->dispatch($request); } $controller->setRouter($router); } $this->_completed = true; return $responses; }