protected function setUp() { $this->router = $this->getMockBuilder('Symfony\\Component\\Routing\\RouterInterface')->getMock(); $this->securityFacade = $this->getMockBuilder('Oro\\Bundle\\SecurityBundle\\SecurityFacade')->disableOriginalConstructor()->getMock(); $this->factoryExtension = new AclAwareMenuFactoryExtension($this->router, $this->securityFacade); $this->factory = new MenuFactory(); $this->factory->addExtension($this->factoryExtension); }
protected function setUp() { $this->router = $this->getMockBuilder('Symfony\\Component\\Routing\\RouterInterface')->getMock(); $this->securityFacade = $this->getMockBuilder('Oro\\Bundle\\SecurityBundle\\SecurityFacade')->disableOriginalConstructor()->getMock(); $this->securityFacade->expects($this->any())->method('hasLoggedUser')->will($this->returnValue(true)); $this->factoryExtension = new AclAwareMenuFactoryExtension($this->router, $this->securityFacade); $this->factory = new MenuFactory(); $this->factory->addExtension($this->factoryExtension); }
public function testExtensions() { $factory = new MenuFactory(); $extension1 = $this->getMock('Knp\\Menu\\Factory\\ExtensionInterface'); $extension1->expects($this->once())->method('buildOptions')->with(array('foo' => 'bar'))->will($this->returnValue(array('uri' => 'foobar'))); $extension1->expects($this->once())->method('buildItem')->with($this->isInstanceOf('Knp\\Menu\\ItemInterface'), $this->contains('foobar')); $factory->addExtension($extension1); $extension2 = $this->getMock('Knp\\Menu\\Factory\\ExtensionInterface'); $extension2->expects($this->once())->method('buildOptions')->with(array('foo' => 'baz'))->will($this->returnValue(array('foo' => 'bar'))); $extension1->expects($this->once())->method('buildItem')->with($this->isInstanceOf('Knp\\Menu\\ItemInterface'), $this->contains('foobar')); $factory->addExtension($extension2, 10); $item = $factory->createItem('test', array('foo' => 'baz')); $this->assertEquals('foobar', $item->getUri()); }
public function register(Application $app) { $app['knp_menu.factory'] = $app->share(function () use($app) { $factory = new MenuFactory(); if (isset($app['url_generator'])) { $factory->addExtension(new RoutingExtension($app['url_generator'])); } return $factory; }); $app['knp_menu.matcher'] = $app->share(function () use($app) { $matcher = new Matcher(); if (isset($app['knp_menu.matcher.configure'])) { $app['knp_menu.matcher.configure']($matcher); } return $matcher; }); $app['knp_menu.renderer.list'] = $app->share(function () use($app) { return new ListRenderer($app['knp_menu.matcher'], array(), $app['charset']); }); $app['knp_menu.menu_provider'] = $app->share(function () use($app) { return new PimpleMenuProvider($app, $app['knp_menu.menus']); }); if (!isset($app['knp_menu.menus'])) { $app['knp_menu.menus'] = array(); } $app['knp_menu.renderer_provider'] = $app->share(function () use($app) { $app['knp_menu.renderers'] = array_merge(array('list' => 'knp_menu.renderer.list'), isset($app['knp_menu.renderer.twig']) ? array('twig' => 'knp_menu.renderer.twig') : array(), isset($app['knp_menu.renderers']) ? $app['knp_menu.renderers'] : array()); return new PimpleRendererProvider($app, $app['knp_menu.default_renderer'], $app['knp_menu.renderers']); }); $app['knp_menu.menu_manipulator'] = $app->share(function () use($app) { return new MenuManipulator(); }); if (!isset($app['knp_menu.default_renderer'])) { $app['knp_menu.default_renderer'] = 'list'; } $app['knp_menu.helper'] = $app->share(function () use($app) { return new Helper($app['knp_menu.renderer_provider'], $app['knp_menu.menu_provider'], $app['knp_menu.menu_manipulator']); }); if (isset($app['twig'])) { $app['knp_menu.twig_extension'] = $app->share(function () use($app) { return new MenuExtension($app['knp_menu.helper'], $app['knp_menu.matcher'], $app['knp_menu.menu_manipulator']); }); $app['knp_menu.renderer.twig'] = $app->share(function () use($app) { return new TwigRenderer($app['twig'], $app['knp_menu.template'], $app['knp_menu.matcher']); }); if (!isset($app['knp_menu.template'])) { $app['knp_menu.template'] = 'knp_menu.html.twig'; } $app['twig'] = $app->share($app->extend('twig', function (\Twig_Environment $twig) use($app) { $twig->addExtension($app['knp_menu.twig_extension']); return $twig; })); $app['twig.loader.filesystem'] = $app->share($app->extend('twig.loader.filesystem', function (\Twig_Loader_Filesystem $loader) use($app) { $loader->addPath(__DIR__ . '/../../Resources/views'); return $loader; })); } }
/** * {@inheritdoc} */ public function register(Container $app) { $app['menu.factory'] = function ($app) { $factory = new MenuFactory(); $factory->addExtension(new RoutingExtension($app['url_generator'])); return $factory; }; $app['menu.matcher'] = function ($app) { $matcher = new Matcher(); if (isset($app['menu.matcher.configure'])) { $app['menu.matcher.configure']($matcher); } return $matcher; }; $app['menu.matcher.configure'] = $app->protect(function (Matcher $matcher) use($app) { foreach ($app['menu.voters'] as $voter) { $matcher->addVoter($voter); } }); $app['menu.voters'] = function ($app) { $request = $app['request_stack']->getMasterRequest(); $voters = []; if (null !== $request) { $voters[] = new RouteVoter($request); $voters[] = new UriVoter($request->getRequestUri()); } return $voters; }; $app['menu.renderer.list'] = function ($app) { return new ListRenderer($app['menu.matcher'], [], $app['charset']); }; $app['menu.provider'] = function ($app) { return new MenuProvider($app, $app['menus']); }; if (!isset($app['menus'])) { $app['menus'] = []; } $app['menu.renderer'] = function ($app) { return new TwigRenderer($app['twig'], 'knp_menu.html.twig', $app['menu.matcher']); }; $app['menu.renderer_provider'] = function ($app) { $app['menu.renderers'] = array_merge(['list' => 'menu.renderer.list'], ['twig' => 'menu.renderer'], isset($app['menu.renderers']) ? $app['menu.renderers'] : []); return new RendererProvider($app, 'twig', $app['menu.renderers']); }; $app['menu.manipulator'] = function () { return new MenuManipulator(); }; $app['menu.helper'] = function ($app) { return new Helper($app['menu.renderer_provider'], $app['menu.provider'], $app['menu.manipulator']); }; $app['menu.twig_extension'] = function ($app) { return new MenuExtension($app['menu.helper'], $app['menu.matcher'], $app['menu.manipulator']); }; $app->extend('twig', function (\Twig_Environment $twig, $app) { $twig->addExtension($app['menu.twig_extension']); return $twig; }); }
/** * @param array $options * @param boolean $isAllowed * * @dataProvider optionsWithoutLoggedUser */ public function testBuildOptionsWithoutLoggedUser($options, $isAllowed) { $securityFacade = $this->getMockBuilder('Oro\\Bundle\\SecurityBundle\\SecurityFacade')->disableOriginalConstructor()->getMock(); $securityFacade->expects($this->any())->method('hasLoggedUser')->willReturn(false); $factoryExtension = new AclAwareMenuFactoryExtension($this->router, $securityFacade); $factory = new MenuFactory(); $factory->addExtension($factoryExtension); $item = $factory->createItem('test', $options); $this->assertInstanceOf('Knp\\Menu\\MenuItem', $item); $this->assertEquals($isAllowed, $item->getExtra('isAllowed')); }
/** * Init Mock */ public function setUp() { $routingExtension = $this->getMockBuilder('Knp\\Menu\\Integration\\Symfony\\RoutingExtension')->disableOriginalConstructor()->getMock(); $routingExtension->expects($this->any())->method('buildOptions')->will($this->returnValue(array('uri' => '/my-page'))); $securityContext = $this->getMockBuilder('Symfony\\Component\\Security\\Core\\SecurityContextInterface')->disableOriginalConstructor()->getMock(); $securityContext->expects($this->any())->method('isGranted')->will($this->returnValue(true)); $menuFactory = new MenuFactory(); $menuFactory->addExtension($routingExtension); $eventDispatcher = $this->getMock('Symfony\\Component\\EventDispatcher\\EventDispatcherInterface'); $configuration = JbConfigKnpMenuExtensionTest::loadConfiguration(); $this->configurationProvider = new ConfigurationMenuProvider($menuFactory, $eventDispatcher, $securityContext); $this->configurationProvider->setConfiguration($configuration); }
/** * Sets up the fixture, for example, opens a network connection. * This method is called before a test is executed. * * @covers Kunstmaan\NodeBundle\Helper\Menu\ActionsMenuBuilder::__construct */ protected function setUp() { /* @var UrlGeneratorInterface $urlGenerator */ $urlGenerator = $this->getMock('Symfony\\Component\\Routing\\Generator\\UrlGeneratorInterface'); $routingExtension = new RoutingExtension($urlGenerator); $factory = new MenuFactory(); $factory->addExtension($routingExtension); $em = $this->getMockedEntityManager(); /* @var EventDispatcherInterface $dispatcher */ $dispatcher = $this->getMock('Symfony\\Component\\EventDispatcher\\EventDispatcherInterface'); /* @var RouterInterface $router */ $router = $this->getMock('Symfony\\Component\\Routing\\RouterInterface'); $authorizationChecker = $this->getMock('Symfony\\Component\\Security\\Core\\Authorization\\AuthorizationCheckerInterface'); $authorizationChecker->expects($this->any())->method('isGranted')->will($this->returnValue(true)); $this->builder = new ActionsMenuBuilder($factory, $em, $router, $dispatcher, $authorizationChecker, new PagesConfiguration([])); }
/** * Get menu factory * * @return MenuFactory */ protected function getMenuFactory() { $menuFactory = new MenuFactory(); $menuFactory->addExtension(new CoreExtension(), -11); return $menuFactory; }