public function testAclActionSuccessfulUpdate() { $this->request->query->set('id', 123); $this->request->request->set(AdminObjectAclManipulator::ACL_ROLES_FORM_NAME, array()); $this->admin->expects($this->once())->method('isAclEnabled')->will($this->returnValue(true)); $object = new \stdClass(); $this->admin->expects($this->once())->method('getObject')->will($this->returnValue($object)); $this->admin->expects($this->any())->method('isGranted')->will($this->returnValue(true)); $this->admin->expects($this->any())->method('getSecurityInformation')->will($this->returnValue(array())); $this->adminObjectAclManipulator->expects($this->once())->method('getMaskBuilderClass')->will($this->returnValue('\\Sonata\\AdminBundle\\Security\\Acl\\Permission\\AdminPermissionMap')); $aclUsersForm = $this->getMockBuilder('Symfony\\Component\\Form\\Form')->disableOriginalConstructor()->getMock(); $aclUsersForm->expects($this->any())->method('createView')->will($this->returnValue($this->getMock('Symfony\\Component\\Form\\FormView'))); $aclRolesForm = $this->getMockBuilder('Symfony\\Component\\Form\\Form')->disableOriginalConstructor()->getMock(); $aclRolesForm->expects($this->any())->method('createView')->will($this->returnValue($this->getMock('Symfony\\Component\\Form\\FormView'))); $aclRolesForm->expects($this->once())->method('isValid')->will($this->returnValue(true)); $this->adminObjectAclManipulator->expects($this->once())->method('createAclUsersForm')->with($this->isInstanceOf('Sonata\\AdminBundle\\Util\\AdminObjectAclData'))->will($this->returnValue($aclUsersForm)); $this->adminObjectAclManipulator->expects($this->once())->method('createAclRolesForm')->with($this->isInstanceOf('Sonata\\AdminBundle\\Util\\AdminObjectAclData'))->will($this->returnValue($aclRolesForm)); $aclSecurityHandler = $this->getMockBuilder('Sonata\\AdminBundle\\Security\\Handler\\AclSecurityHandler')->disableOriginalConstructor()->getMock(); $aclSecurityHandler->expects($this->any())->method('getObjectPermissions')->will($this->returnValue(array())); $this->admin->expects($this->any())->method('getSecurityHandler')->will($this->returnValue($aclSecurityHandler)); $this->request->setMethod('POST'); $response = $this->controller->aclAction(null, $this->request); $this->assertInstanceOf('Symfony\\Component\\HttpFoundation\\RedirectResponse', $response); $this->assertSame(array('flash_acl_edit_success'), $this->session->getFlashBag()->get('sonata_flash_success')); $this->assertEquals('stdClass_acl', $response->getTargetUrl()); }