コード例 #1
0
ファイル: Magento.php プロジェクト: liip/liip-magento-shared
 /**
  * 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();
 }
コード例 #2
0
ファイル: Front.php プロジェクト: NatashaOlut/Mage_Test
 /**
  * Overriden for getting rid
  * of initialization of routers for each test case
  *
  * (non-PHPdoc)
  * @see Mage_Core_Controller_Varien_Front::init()
  */
 public function init()
 {
     if (!$this->_routers) {
         parent::init();
     }
     return $this;
 }
コード例 #3
0
ファイル: App.php プロジェクト: arslbbt/mangentovies
 /**
  * Initialize application front controller
  *
  * @return Mage_Core_Model_App
  */
 protected function _initFrontController()
 {
     $this->_frontController = new Mage_Core_Controller_Varien_Front();
     Mage::register('controller', $this->_frontController);
     $this->_frontController->init();
     return $this;
 }
コード例 #4
0
 /**
  * Resets initialized routers before front controller re-initialization
  * on test cases
  *
  * @see Mage_Core_Controller_Varien_Front::init()
  */
 public function init()
 {
     if ($this->_routers) {
         $this->_routers = array();
     }
     return parent::init();
 }
コード例 #5
0
ファイル: FrontTest.php プロジェクト: natxetee/magento2
 /**
  * @param string $sourcePath
  * @param string $resultPath
  *
  * @dataProvider applyRewritesDataProvider
  * @magentoConfigFixture global/rewrite/test_url/from /test\/(\w*)/
  * @magentoConfigFixture global/rewrite/test_url/to   new_test/$1/subdirectory
  * @magentoDataFixture Mage/Core/_files/url_rewrite.php
  * @magentoDbIsolation enabled
  */
 public function testApplyRewrites($sourcePath, $resultPath)
 {
     /** @var $request Mage_Core_Controller_Request_Http */
     $request = $this->_objectManager->create('Mage_Core_Controller_Request_Http');
     $request->setPathInfo($sourcePath);
     $this->_model->applyRewrites($request);
     $this->assertEquals($resultPath, $request->getPathInfo());
 }
コード例 #6
0
ファイル: FrontTest.php プロジェクト: relue/magento2
 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.');
 }
コード例 #7
0
 /**
  * Initialize application front controller
  *
  * @return Mage_Core_Model_App
  */
 protected function _initFrontController()
 {
     $this->_frontController = new Mage_Core_Controller_Varien_Front();
     Mage::register('controller', $this->_frontController);
     Varien_Profiler::start('mage::app::init_front_controller');
     $this->_frontController->init();
     Varien_Profiler::stop('mage::app::init_front_controller');
     return $this;
 }
コード例 #8
0
ファイル: App.php プロジェクト: rorteg/magento2
 /**
  * Initialize application front controller
  *
  * @return Mage_Core_Model_App
  */
 protected function _initFrontController()
 {
     $this->_frontController = new Mage_Core_Controller_Varien_Front();
     Magento_Profiler::start('init_front_controller');
     $this->_frontController->init();
     Magento_Profiler::stop('init_front_controller');
     return $this;
 }
コード例 #9
0
ファイル: Action.php プロジェクト: natxetee/magento2
 /**
  * Rendering layout
  *
  * @param   string $output
  * @return  Mage_Core_Controller_Varien_Action
  */
 public function renderLayout($output = '')
 {
     if ($this->getFlag('', 'no-renderLayout')) {
         return;
     }
     if ($this->_frontController->getNoRender()) {
         return;
     }
     Magento_Profiler::start('LAYOUT');
     $this->_renderTitles();
     Magento_Profiler::start('layout_render');
     if ('' !== $output) {
         $this->getLayout()->addOutputElement($output);
     }
     Mage::dispatchEvent('controller_action_layout_render_before');
     Mage::dispatchEvent('controller_action_layout_render_before_' . $this->getFullActionName());
     $this->getLayout()->setDirectOutput(false);
     $output = $this->getLayout()->getOutput();
     Mage::getSingleton('Mage_Core_Model_Translate_Inline')->processResponseBody($output);
     $this->getResponse()->appendBody($output);
     Magento_Profiler::stop('layout_render');
     Magento_Profiler::stop('LAYOUT');
     return $this;
 }
コード例 #10
0
ファイル: App.php プロジェクト: ronseigel/agent-ohm
 /**
  * Initialize application front controller
  *
  * @return Mage_Core_Model_App
  */
 protected function _initFrontController()
 {
     AO::includeFile('Mage/Core/Controller/Varien/Front');
     AO::includeFile('Mage/Core/Model/Session');
     $this->_frontController = new Mage_Core_Controller_Varien_Front();
     if (VPROF) {
         Varien_Profiler::start('mage::app::init_front_controller');
     }
     $this->_frontController->init();
     if (VPROF) {
         Varien_Profiler::stop('mage::app::init_front_controller');
     }
     return $this;
 }