public function testApplyRewritesWhenRequestIsNotStraight() { $this->_requestMock->expects($this->once())->method('isStraight')->will($this->returnValue(false)); $urlRewriteMock = $this->getMock('\\Magento\\UrlRewrite\\Model\\UrlRewrite', array(), array(), '', false); $this->_rewriteFactoryMock->expects($this->once())->method('create')->will($this->returnValue($urlRewriteMock)); $this->_model->applyRewrites($this->_requestMock); }
/** * Perform url rewites * * @param \Magento\Framework\App\FrontController $subject * @param callable $proceed * @param \Magento\Framework\App\RequestInterface $request * * @return \Magento\Framework\App\ResponseInterface * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function aroundDispatch(\Magento\Framework\App\FrontController $subject, \Closure $proceed, \Magento\Framework\App\RequestInterface $request) { if (!$this->_state->isInstalled()) { return $proceed($request); } $this->_rewriteService->applyRewrites($request); return $proceed($request); }
/** * Match provided request and if matched - return corresponding controller * * @param \Magento\Framework\App\RequestInterface $request * @return \Magento\Framework\App\Action\Action|null */ public function match(\Magento\Framework\App\RequestInterface $request) { // if URL has VDE prefix if (!$this->_designEditorHelper->isVdeRequest($request)) { return null; } // user must be logged in admin area if (!$this->_session->isLoggedIn()) { return null; } // prepare request to imitate $this->_prepareVdeRequest($request); // apply rewrites $this->_urlRewriteService->applyRewrites($request); // match routers $controller = null; $routers = $this->_getMatchedRouters(); /** @var $router \Magento\Framework\App\RouterInterface */ foreach ($routers as $router) { /** @var $controller \Magento\Framework\App\Action\AbstractAction */ $controller = $router->match($request); if ($controller) { $this->_state->update(\Magento\Framework\App\Area::AREA_FRONTEND, $request); break; } } // set inline translation mode $this->_designEditorHelper->setTranslationMode($request); return $controller; }