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);
 }
示例#3
0
 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;
         }));
     }
 }
示例#5
0
 /**
  * {@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([]));
 }
示例#9
0
 /**
  * Get menu factory
  *
  * @return MenuFactory
  */
 protected function getMenuFactory()
 {
     $menuFactory = new MenuFactory();
     $menuFactory->addExtension(new CoreExtension(), -11);
     return $menuFactory;
 }