/** * @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()); }
public function testRemoveFieldFromFormGroup() { $formGroups = array('foobar' => array('fields' => array('foo' => 'foo', 'bar' => 'bar'))); $admin = new PostAdmin('sonata.post.admin.post', 'Application\\Sonata\\NewsBundle\\Entity\\Post', 'SonataNewsBundle:PostAdmin'); $admin->setFormGroups($formGroups); $admin->removeFieldFromFormGroup('foo'); $this->assertEquals($admin->getFormGroups(), array('foobar' => array('fields' => array('bar' => 'bar')))); $admin->removeFieldFromFormGroup('bar'); $this->assertEquals($admin->getFormGroups(), array()); }
/** * @covers Sonata\AdminBundle\Admin\Admin::configureActionButtons */ public function testGetActionButtonsList() { $expected = array('create' => array('template' => 'SonataAdminBundle:Button:create_button.html.twig')); $admin = new PostAdmin('sonata.post.admin.post', 'NewsBundle\\Entity\\Post', 'SonataNewsBundle:PostAdmin'); $this->assertSame($expected, $admin->getActionButtons('list', null)); }
public function testGetSubject() { $entity = new Post(); $modelManager = $this->getMock('Sonata\\AdminBundle\\Model\\ModelManagerInterface'); $modelManager->expects($this->any())->method('find')->will($this->returnValue($entity)); $admin = new PostAdmin('sonata.post.admin.post', 'NewsBundle\\Entity\\Post', 'SonataNewsBundle:PostAdmin'); $admin->setModelManager($modelManager); $admin->setRequest(new Request(array('id' => 'azerty'))); $this->assertFalse($admin->getSubject()); $admin->setSubject(null); $admin->setRequest(new Request(array('id' => 42))); $this->assertEquals($entity, $admin->getSubject()); $admin->setSubject(null); $admin->setRequest(new Request(array('id' => '4f69bbb5f14a13347f000092'))); $this->assertEquals($entity, $admin->getSubject()); $admin->setSubject(null); $admin->setRequest(new Request(array('id' => '0779ca8d-e2be-11e4-ac58-0242ac11000b'))); $this->assertEquals($entity, $admin->getSubject()); }