| @@ 264-294 (lines=31) @@ | ||
| 261 | * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testRemovePolicy |
|
| 262 | * @depends eZ\Publish\API\Repository\Tests\UserServiceTest::testCreateUser |
|
| 263 | */ |
|
| 264 | public function testRemovePolicyThrowsUnauthorizedException() |
|
| 265 | { |
|
| 266 | $repository = $this->getRepository(); |
|
| 267 | $roleService = $repository->getRoleService(); |
|
| 268 | ||
| 269 | /* BEGIN: Use Case */ |
|
| 270 | $user = $this->createUserVersion1(); |
|
| 271 | ||
| 272 | $roleCreate = $roleService->newRoleCreateStruct('newRole'); |
|
| 273 | ||
| 274 | // @todo uncomment when support for multilingual names and descriptions is added EZP-24776 |
|
| 275 | // $roleCreate->mainLanguageCode = 'eng-US'; |
|
| 276 | ||
| 277 | // Create a new role with two policies |
|
| 278 | $roleDraft = $roleService->createRole($roleCreate); |
|
| 279 | $roleService->addPolicyByRoleDraft( |
|
| 280 | $roleDraft, |
|
| 281 | $roleService->newPolicyCreateStruct('content', 'create') |
|
| 282 | ); |
|
| 283 | $roleDraft = $roleService->addPolicyByRoleDraft( |
|
| 284 | $roleDraft, |
|
| 285 | $roleService->newPolicyCreateStruct('content', 'delete') |
|
| 286 | ); |
|
| 287 | ||
| 288 | // Set "Editor" user as current user. |
|
| 289 | $repository->setCurrentUser($user); |
|
| 290 | ||
| 291 | // This call will fail with an "UnauthorizedException" |
|
| 292 | $roleService->removePolicyByRoleDraft($roleDraft, $roleDraft->getPolicies()[0]); |
|
| 293 | /* END: Use Case */ |
|
| 294 | } |
|
| 295 | ||
| 296 | /** |
|
| 297 | * Test for the deletePolicy() method. |
|
| @@ 1708-1739 (lines=32) @@ | ||
| 1705 | * @see \eZ\Publish\API\Repository\RoleService::removePolicyByRoleDraft() |
|
| 1706 | * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testAddPolicyByRoleDraft |
|
| 1707 | */ |
|
| 1708 | public function testRemovePolicyByRoleDraft() |
|
| 1709 | { |
|
| 1710 | $repository = $this->getRepository(); |
|
| 1711 | ||
| 1712 | /* BEGIN: Use Case */ |
|
| 1713 | $roleService = $repository->getRoleService(); |
|
| 1714 | ||
| 1715 | // Instantiate a new role create |
|
| 1716 | $roleCreate = $roleService->newRoleCreateStruct('newRole'); |
|
| 1717 | ||
| 1718 | // @todo uncomment when support for multilingual names and descriptions is added EZP-24776 |
|
| 1719 | // $roleCreate->mainLanguageCode = 'eng-US'; |
|
| 1720 | ||
| 1721 | // Create a new role with two policies |
|
| 1722 | $roleDraft = $roleService->createRole($roleCreate); |
|
| 1723 | $roleService->addPolicyByRoleDraft( |
|
| 1724 | $roleDraft, |
|
| 1725 | $roleService->newPolicyCreateStruct('content', 'create') |
|
| 1726 | ); |
|
| 1727 | $roleService->addPolicyByRoleDraft( |
|
| 1728 | $roleDraft, |
|
| 1729 | $roleService->newPolicyCreateStruct('content', 'delete') |
|
| 1730 | ); |
|
| 1731 | ||
| 1732 | // Delete all policies from the new role |
|
| 1733 | foreach ($roleDraft->getPolicies() as $policy) { |
|
| 1734 | $roleDraft = $roleService->removePolicyByRoleDraft($roleDraft, $policy); |
|
| 1735 | } |
|
| 1736 | /* END: Use Case */ |
|
| 1737 | ||
| 1738 | $this->assertSame(array(), $roleDraft->getPolicies()); |
|
| 1739 | } |
|
| 1740 | ||
| 1741 | /** |
|
| 1742 | * Test for the deletePolicy() method. |
|
| @@ 2847-2876 (lines=30) @@ | ||
| 2844 | * @see \eZ\Publish\API\Repository\RoleService::publishRoleDraft() |
|
| 2845 | * @depends eZ\Publish\API\Repository\Tests\RoleServiceTest::testCreateRoleDraft |
|
| 2846 | */ |
|
| 2847 | public function testPublishRoleDraft() |
|
| 2848 | { |
|
| 2849 | $repository = $this->getRepository(); |
|
| 2850 | ||
| 2851 | /* BEGIN: Use Case */ |
|
| 2852 | $roleService = $repository->getRoleService(); |
|
| 2853 | $roleCreate = $roleService->newRoleCreateStruct('newRole'); |
|
| 2854 | ||
| 2855 | // @todo uncomment when support for multilingual names and descriptions is added EZP-24776 |
|
| 2856 | // $roleCreate->mainLanguageCode = 'eng-US'; |
|
| 2857 | ||
| 2858 | $roleDraft = $roleService->createRole($roleCreate); |
|
| 2859 | ||
| 2860 | $roleDraft = $roleService->addPolicyByRoleDraft( |
|
| 2861 | $roleDraft, |
|
| 2862 | $roleService->newPolicyCreateStruct('content', 'delete') |
|
| 2863 | ); |
|
| 2864 | $roleDraft = $roleService->addPolicyByRoleDraft( |
|
| 2865 | $roleDraft, |
|
| 2866 | $roleService->newPolicyCreateStruct('content', 'create') |
|
| 2867 | ); |
|
| 2868 | ||
| 2869 | $roleService->publishRoleDraft($roleDraft); |
|
| 2870 | /* END: Use Case */ |
|
| 2871 | ||
| 2872 | $this->assertInstanceOf( |
|
| 2873 | '\\eZ\\Publish\\API\\Repository\\Values\\User\\Role', |
|
| 2874 | $roleService->loadRoleByIdentifier($roleCreate->identifier) |
|
| 2875 | ); |
|
| 2876 | } |
|
| 2877 | ||
| 2878 | /** |
|
| 2879 | * Test for the publishRoleDraft() method. |
|