コード例 #1
0
ファイル: AdminTest.php プロジェクト: drmjo/SonataAdminBundle
 public function testIsGranted()
 {
     $admin = new PostAdmin('sonata.post.admin.post', 'Acme\\NewsBundle\\Entity\\Post', 'SonataNewsBundle:PostAdmin');
     $entity = new \stdClass();
     $securityHandler = $this->getMock('Sonata\\AdminBundle\\Security\\Handler\\AclSecurityHandlerInterface');
     $securityHandler->expects($this->any())->method('isGranted')->will($this->returnCallback(function (AdminInterface $adminIn, $attributes, $object = null) use($admin, $entity) {
         if ($admin == $adminIn && $attributes == 'FOO') {
             if ($object == $admin || $object == $entity) {
                 return true;
             }
         }
         return false;
     }));
     $admin->setSecurityHandler($securityHandler);
     $this->assertTrue($admin->isGranted('FOO'));
     $this->assertTrue($admin->isGranted('FOO', $entity));
     $this->assertFalse($admin->isGranted('BAR'));
     $this->assertFalse($admin->isGranted('BAR', $entity));
 }