コード例 #1
0
ファイル: AdminTest.php プロジェクト: drmjo/SonataAdminBundle
 /**
  * @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());
 }
コード例 #2
0
 /**
  * @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'));
 }