Code Duplication    Length = 21-31 lines in 7 locations

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

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

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

@@ 1197-1227 (lines=31) @@
1194
     * @see \eZ\Publish\API\Repository\ObjectStateService::setPriorityOfObjectState()
1195
     * @depends testLoadObjectState
1196
     */
1197
    public function testSetPriorityOfObjectState()
1198
    {
1199
        $repository = $this->getRepository();
1200
1201
        $objectStateId = $this->generateId('objectstate', 1);
1202
        /* BEGIN: Use Case */
1203
        // $objectStateId contains the ID of the "not_locked" state
1204
        $objectStateService = $repository->getObjectStateService();
1205
1206
        $initiallyLoadedObjectState = $objectStateService->loadObjectState(
1207
            $objectStateId
1208
        );
1209
1210
        // Sets the given priority on $initiallyLoadedObjectState
1211
        $objectStateService->setPriorityOfObjectState(
1212
            $initiallyLoadedObjectState,
1213
            23
1214
        );
1215
        // $loadObjectState now has the priority 1, since object state
1216
        // priorities are always made sequential
1217
        $loadedObjectState = $objectStateService->loadObjectState(
1218
            $objectStateId
1219
        );
1220
        /* END: Use Case */
1221
1222
        $this->assertInstanceOf(
1223
            'eZ\\Publish\\API\\Repository\\Values\\ObjectState\\ObjectState',
1224
            $loadedObjectState
1225
        );
1226
        $this->assertEquals(1, $loadedObjectState->priority);
1227
    }
1228
1229
    /**
1230
     * Test for the getContentState() method.
@@ 1453-1477 (lines=25) @@
1450
     * @see \eZ\Publish\API\Repository\ObjectStateService::deleteObjectState()
1451
     * @depends testLoadObjectState
1452
     */
1453
    public function testDeleteObjectState()
1454
    {
1455
        $repository = $this->getRepository();
1456
1457
        $notLockedObjectStateId = $this->generateId('objectstate', 1);
1458
        $lockedObjectStateId = $this->generateId('objectstate', 2);
1459
        /* BEGIN: Use Case */
1460
        // $notLockedObjectStateId is the ID of the state "not_locked"
1461
        $objectStateService = $repository->getObjectStateService();
1462
1463
        $notLockedObjectState = $objectStateService->loadObjectState($notLockedObjectStateId);
1464
1465
        // Deletes the object state and sets all objects, which where in that
1466
        // state, to the first state of the same object state group
1467
        $objectStateService->deleteObjectState($notLockedObjectState);
1468
        /* END: Use Case */
1469
1470
        $lockedObjectState = $objectStateService->loadObjectState($lockedObjectStateId);
1471
1472
        // All objects transferred
1473
        $this->assertEquals(
1474
            18,
1475
            $objectStateService->getContentCount($lockedObjectState)
1476
        );
1477
    }
1478
1479
    /**
1480
     * Test for the deleteObjectStateGroup() method.