public function setUp() { $this->container = $this->getMock('Symfony\\Component\\DependencyInjection\\ContainerInterface'); $this->request = $this->getMock('Symfony\\Component\\HttpFoundation\\Request'); $registry = new NavigationRegistry(); $registry->setContainer($this->container); $this->extension = new NavigationExtension($registry); }
/** * @param \Symfony\Component\HttpFoundation\Request $request * @param \Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter $configuration * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException * @return bool|void */ public function apply(Request $request, ParamConverter $configuration) { $param = $configuration->getName(); $alias = $request->attributes->get('alias'); if (!$request->attributes->has('alias')) { throw new NotFoundHttpException('Cannot find admin without alias'); } try { $admin = $this->adminManager->getAdmin($alias); $request->attributes->set($param, $admin); $this->registry->addActivePath($admin->getDefaultPath()); } catch (\InvalidArgumentException $e) { throw new NotFoundHttpException(sprintf('Cannot find admin with alias "%s"', $alias)); } }
/** * @return array */ public function getBreadcrumbs() { return $this->registry->getBreadcrumbs(); }