Code Duplication    Length = 21-31 lines in 7 locations

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

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

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

@@ 1049-1079 (lines=31) @@
1046
     * @see \eZ\Publish\API\Repository\ObjectStateService::setPriorityOfObjectState()
1047
     * @depends testLoadObjectState
1048
     */
1049
    public function testSetPriorityOfObjectState()
1050
    {
1051
        $repository = $this->getRepository();
1052
1053
        $objectStateId = $this->generateId('objectstate', 1);
1054
        /* BEGIN: Use Case */
1055
        // $objectStateId contains the ID of the "not_locked" state
1056
        $objectStateService = $repository->getObjectStateService();
1057
1058
        $initiallyLoadedObjectState = $objectStateService->loadObjectState(
1059
            $objectStateId
1060
        );
1061
1062
        // Sets the given priority on $initiallyLoadedObjectState
1063
        $objectStateService->setPriorityOfObjectState(
1064
            $initiallyLoadedObjectState,
1065
            23
1066
        );
1067
        // $loadObjectState now has the priority 1, since object state
1068
        // priorities are always made sequential
1069
        $loadedObjectState = $objectStateService->loadObjectState(
1070
            $objectStateId
1071
        );
1072
        /* END: Use Case */
1073
1074
        $this->assertInstanceOf(
1075
            'eZ\\Publish\\API\\Repository\\Values\\ObjectState\\ObjectState',
1076
            $loadedObjectState
1077
        );
1078
        $this->assertEquals(1, $loadedObjectState->priority);
1079
    }
1080
1081
    /**
1082
     * Test for the getContentState() method.
@@ 1306-1330 (lines=25) @@
1303
     * @see \eZ\Publish\API\Repository\ObjectStateService::deleteObjectState()
1304
     * @depends testLoadObjectState
1305
     */
1306
    public function testDeleteObjectState()
1307
    {
1308
        $repository = $this->getRepository();
1309
1310
        $notLockedObjectStateId = $this->generateId('objectstate', 1);
1311
        $lockedObjectStateId = $this->generateId('objectstate', 2);
1312
        /* BEGIN: Use Case */
1313
        // $notLockedObjectStateId is the ID of the state "not_locked"
1314
        $objectStateService = $repository->getObjectStateService();
1315
1316
        $notLockedObjectState = $objectStateService->loadObjectState($notLockedObjectStateId);
1317
1318
        // Deletes the object state and sets all objects, which where in that
1319
        // state, to the first state of the same object state group
1320
        $objectStateService->deleteObjectState($notLockedObjectState);
1321
        /* END: Use Case */
1322
1323
        $lockedObjectState = $objectStateService->loadObjectState($lockedObjectStateId);
1324
1325
        // All objects transferred
1326
        $this->assertEquals(
1327
            18,
1328
            $objectStateService->getContentCount($lockedObjectState)
1329
        );
1330
    }
1331
1332
    /**
1333
     * Test for the deleteObjectStateGroup() method.

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.