Code Duplication    Length = 21-31 lines in 7 locations

eZ/Publish/API/Repository/Tests/ObjectStateServiceAuthorizationTest.php 1 location

@@ 247-274 (lines=28) @@
244
     * @expectedException \eZ\Publish\API\Repository\Exceptions\UnauthorizedException
245
     * @depends eZ\Publish\API\Repository\Tests\ObjectStateServiceTest::testSetPriorityOfObjectState
246
     */
247
    public function testSetPriorityOfObjectStateThrowsUnauthorizedException()
248
    {
249
        $repository = $this->getRepository();
250
251
        $objectStateId = $this->generateId('objectstate', 2);
252
        $anonymousUserId = $this->generateId('user', 10);
253
        /* BEGIN: Use Case */
254
        // $anonymousUserId is the ID of the "Anonymous" user in a eZ
255
        // Publish demo installation.
256
        // Set anonymous user
257
        $userService = $repository->getUserService();
258
        $repository->setCurrentUser($userService->loadUser($anonymousUserId));
259
260
        // $objectStateId contains the ID of the "locked" state
261
        $objectStateService = $repository->getObjectStateService();
262
263
        $initiallyLoadedObjectState = $objectStateService->loadObjectState(
264
            $objectStateId
265
        );
266
267
        // Throws unauthorized exception, since the anonymous user must not
268
        // set priorities for object states
269
        $objectStateService->setPriorityOfObjectState(
270
            $initiallyLoadedObjectState,
271
            23
272
        );
273
        /* END: Use Case */
274
    }
275
276
    /**
277
     * Test for the deleteObjectState() method.

eZ/Publish/API/Repository/Tests/ObjectStateServiceTest.php 2 locations

@@ 1404-1434 (lines=31) @@
1401
     * @see \eZ\Publish\API\Repository\ObjectStateService::setPriorityOfObjectState()
1402
     * @depends testLoadObjectState
1403
     */
1404
    public function testSetPriorityOfObjectState()
1405
    {
1406
        $repository = $this->getRepository();
1407
1408
        $objectStateId = $this->generateId('objectstate', 1);
1409
        /* BEGIN: Use Case */
1410
        // $objectStateId contains the ID of the "not_locked" state
1411
        $objectStateService = $repository->getObjectStateService();
1412
1413
        $initiallyLoadedObjectState = $objectStateService->loadObjectState(
1414
            $objectStateId
1415
        );
1416
1417
        // Sets the given priority on $initiallyLoadedObjectState
1418
        $objectStateService->setPriorityOfObjectState(
1419
            $initiallyLoadedObjectState,
1420
            23
1421
        );
1422
        // $loadObjectState now has the priority 1, since object state
1423
        // priorities are always made sequential
1424
        $loadedObjectState = $objectStateService->loadObjectState(
1425
            $objectStateId
1426
        );
1427
        /* END: Use Case */
1428
1429
        $this->assertInstanceOf(
1430
            'eZ\\Publish\\API\\Repository\\Values\\ObjectState\\ObjectState',
1431
            $loadedObjectState
1432
        );
1433
        $this->assertEquals(1, $loadedObjectState->priority);
1434
    }
1435
1436
    /**
1437
     * Test for the getContentState() method.
@@ 1660-1684 (lines=25) @@
1657
     * @see \eZ\Publish\API\Repository\ObjectStateService::deleteObjectState()
1658
     * @depends testLoadObjectState
1659
     */
1660
    public function testDeleteObjectState()
1661
    {
1662
        $repository = $this->getRepository();
1663
1664
        $notLockedObjectStateId = $this->generateId('objectstate', 1);
1665
        $lockedObjectStateId = $this->generateId('objectstate', 2);
1666
        /* BEGIN: Use Case */
1667
        // $notLockedObjectStateId is the ID of the state "not_locked"
1668
        $objectStateService = $repository->getObjectStateService();
1669
1670
        $notLockedObjectState = $objectStateService->loadObjectState($notLockedObjectStateId);
1671
1672
        // Deletes the object state and sets all objects, which where in that
1673
        // state, to the first state of the same object state group
1674
        $objectStateService->deleteObjectState($notLockedObjectState);
1675
        /* END: Use Case */
1676
1677
        $lockedObjectState = $objectStateService->loadObjectState($lockedObjectStateId);
1678
1679
        // All objects transferred
1680
        $this->assertEquals(
1681
            18,
1682
            $objectStateService->getContentCount($lockedObjectState)
1683
        );
1684
    }
1685
1686
    /**
1687
     * Test for the deleteObjectStateGroup() method.

eZ/Publish/API/Repository/Tests/PermissionResolverTest.php 4 locations

@@ 102-124 (lines=23) @@
99
     * @see \eZ\Publish\API\Repository\PermissionResolver::hasAccess()
100
     * @depends eZ\Publish\API\Repository\Tests\RepositoryTest::testGetUserService
101
     */
102
    public function testHasAccessWithAnonymousUserNo()
103
    {
104
        $repository = $this->getRepository();
105
106
        $anonymousUserId = $this->generateId('user', 10);
107
108
        /* BEGIN: Use Case */
109
        // $anonymousUserId is the ID of the "Anonymous" user in a eZ
110
        // Publish demo installation.
111
112
        $userService = $repository->getUserService();
113
        $permissionResolver = $repository->getPermissionResolver();
114
115
        // Load anonymous user
116
        $anonymousUser = $userService->loadUser($anonymousUserId);
117
118
        // This call will return false because anonymous user does not have access
119
        // to content removal
120
        $hasAccess = $permissionResolver->hasAccess('content', 'remove', $anonymousUser);
121
        /* END: Use Case */
122
123
        $this->assertFalse($hasAccess);
124
    }
125
126
    /**
127
     * Test for the hasAccess() method.
@@ 133-158 (lines=26) @@
130
     * @depends eZ\Publish\API\Repository\Tests\RepositoryTest::testGetUserService
131
     * @depends eZ\Publish\API\Repository\Tests\PermissionResolverTest::testHasAccessWithAnonymousUserNo
132
     */
133
    public function testHasAccessForCurrentUserNo()
134
    {
135
        $repository = $this->getRepository();
136
137
        $anonymousUserId = $this->generateId('user', 10);
138
139
        /* BEGIN: Use Case */
140
        // $anonymousUserId is the ID of the "Anonymous" user in a eZ
141
        // Publish demo installation.
142
143
        $userService = $repository->getUserService();
144
        $permissionResolver = $repository->getPermissionResolver();
145
146
        // Load anonymous user
147
        $anonymousUser = $userService->loadUser($anonymousUserId);
148
149
        // Set anonymous user as current user reference
150
        $permissionResolver->setCurrentUserReference($anonymousUser);
151
152
        // This call will return false because anonymous user does not have access
153
        // to content removal
154
        $hasAccess = $permissionResolver->hasAccess('content', 'remove');
155
        /* END: Use Case */
156
157
        $this->assertFalse($hasAccess);
158
    }
159
160
    /**
161
     * Test for the hasAccess() method.
@@ 166-186 (lines=21) @@
163
     * @see \eZ\Publish\API\Repository\PermissionResolver::hasAccess()
164
     * @depends eZ\Publish\API\Repository\Tests\RepositoryTest::testGetUserService
165
     */
166
    public function testHasAccessWithAdministratorUser()
167
    {
168
        $repository = $this->getRepository();
169
170
        $administratorUserId = $this->generateId('user', 14);
171
172
        /* BEGIN: Use Case */
173
        // $administratorUserId contains the ID of the administrator user
174
175
        $userService = $repository->getUserService();
176
        $permissionResolver = $repository->getPermissionResolver();
177
178
        // Load administrator user
179
        $administratorUser = $userService->loadUser($administratorUserId);
180
181
        // This call will return true
182
        $hasAccess = $permissionResolver->hasAccess('content', 'read', $administratorUser);
183
        /* END: Use Case */
184
185
        $this->assertTrue($hasAccess);
186
    }
187
188
    /**
189
     * Test for the hasAccess() method.
@@ 196-219 (lines=24) @@
193
     * @depends eZ\Publish\API\Repository\Tests\PermissionResolverTest::testSetCurrentUserReference
194
     * @depends eZ\Publish\API\Repository\Tests\PermissionResolverTest::testHasAccessWithAdministratorUser
195
     */
196
    public function testHasAccessForCurrentUserYes()
197
    {
198
        $repository = $this->getRepository();
199
200
        $administratorUserId = $this->generateId('user', 14);
201
202
        /* BEGIN: Use Case */
203
        // $administratorUserId contains the ID of the administrator user
204
205
        $userService = $repository->getUserService();
206
        $permissionResolver = $repository->getPermissionResolver();
207
208
        // Load administrator user
209
        $administratorUser = $userService->loadUser($administratorUserId);
210
211
        // Set administrator user as current user reference
212
        $permissionResolver->setCurrentUserReference($administratorUser);
213
214
        // This call will return true
215
        $hasAccess = $permissionResolver->hasAccess('content', 'read');
216
        /* END: Use Case */
217
218
        $this->assertTrue($hasAccess);
219
    }
220
221
    /**
222
     * Test for the hasAccess() method.