Example #1
0
 /**
  * You aren't supposed to call this multiple times per test...
  * @param   string  $url    The relative url (e.g. "/en/catalog/product/view/id/123")
  */
 protected function load($url, $post = array())
 {
     $request = Mage::app()->getRequest();
     $request->setRequestUri($url);
     if ($post) {
         $request->setPost($post);
         $_SERVER['REQUEST_METHOD'] = 'POST';
     }
     // real magic!
     $controller = new Mage_Core_Controller_Varien_Front();
     $controller->init();
     $request->setPathInfo()->setDispatched(false);
     if (!$request->isStraight()) {
         Mage::getModel('core/url_rewrite')->rewrite();
     }
     $controller->rewrite();
     $i = 0;
     while (!$request->isDispatched() && $i++ < 100) {
         foreach ($controller->getRouters() as $router) {
             if ($router->match($request)) {
                 break;
             }
         }
     }
     if ($i > 100) {
         throw new Exception('Front controller reached 100 router match iterations');
     }
     return $controller->getResponse();
 }
Example #2
0
 public function testRewrite()
 {
     $route = $this->_model->getRequest()->getRouteName();
     $controller = $this->_model->getRequest()->getControllerName();
     $action = $this->_model->getRequest()->getActionName();
     $this->_model->rewrite();
     $this->assertEquals($route, $this->_model->getRequest()->getRouteName());
     $this->assertEquals($controller, $this->_model->getRequest()->getControllerName());
     $this->assertEquals($action, $this->_model->getRequest()->getActionName());
     $this->markTestIncomplete('Requires an URL rewrite fixture.');
 }