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 . ']');
 }
Exemple #5
0
 /**
  * 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;
 }