/** * @covers Sonata\AdminBundle\Admin\Admin::getDashboardActions * @dataProvider provideGetBaseRouteName */ public function testDefaultDashboardActionsArePresent($objFqn, $expected) { $pathInfo = new \Sonata\AdminBundle\Route\PathInfoBuilder($this->getMock('Sonata\\AdminBundle\\Model\\AuditManagerInterface')); $routeGenerator = new DefaultRouteGenerator($this->getMock('Symfony\\Component\\Routing\\RouterInterface'), new RoutesCache($this->cacheTempFolder, true)); $admin = new PostAdmin('sonata.post.admin.post', $objFqn, 'SonataNewsBundle:PostAdmin'); $admin->setRouteBuilder($pathInfo); $admin->setRouteGenerator($routeGenerator); $admin->initialize(); $securityHandler = $this->getMock('Sonata\\AdminBundle\\Security\\Handler\\SecurityHandlerInterface'); $securityHandler->expects($this->any())->method('isGranted')->will($this->returnCallback(function (AdminInterface $adminIn, $attributes, $object = null) use($admin) { if ($admin == $adminIn && ($attributes == 'CREATE' || $attributes == 'LIST')) { return true; } return false; })); $admin->setSecurityHandler($securityHandler); $this->assertArrayHasKey('list', $admin->getDashboardActions()); $this->assertArrayHasKey('create', $admin->getDashboardActions()); }
/** * @dataProvider provideGetBaseRouteName */ public function testGetBaseRouteNameWithChildAdmin($objFqn, $expected) { $routeGenerator = new DefaultRouteGenerator($this->getMock('Symfony\\Component\\Routing\\RouterInterface'), new RoutesCache($this->cacheTempFolder, true)); $pathInfo = new \Sonata\AdminBundle\Route\PathInfoBuilder($this->getMock('Sonata\\AdminBundle\\Model\\AuditManagerInterface')); $postAdmin = new PostAdmin('sonata.post.admin.post', $objFqn, 'SonataNewsBundle:PostAdmin'); $postAdmin->setRouteBuilder($pathInfo); $postAdmin->setRouteGenerator($routeGenerator); $postAdmin->initialize(); $commentAdmin = new CommentAdmin('sonata.post.admin.comment', 'Application\\Sonata\\NewsBundle\\Entity\\Comment', 'SonataNewsBundle:CommentAdmin'); $commentAdmin->setRouteBuilder($pathInfo); $commentAdmin->setRouteGenerator($routeGenerator); $commentAdmin->initialize(); $postAdmin->addChild($commentAdmin); $this->assertSame($expected . '_comment', $commentAdmin->getBaseRouteName()); $this->assertTrue($postAdmin->hasRoute('show')); $this->assertTrue($postAdmin->hasRoute('sonata.post.admin.post.show')); $this->assertTrue($postAdmin->hasRoute('sonata.post.admin.post|sonata.post.admin.comment.show')); $this->assertTrue($postAdmin->hasRoute('sonata.post.admin.comment.list')); $this->assertFalse($postAdmin->hasRoute('sonata.post.admin.post|sonata.post.admin.comment.edit')); $this->assertFalse($commentAdmin->hasRoute('edit')); }