Code Duplication    Length = 14-27 lines in 17 locations

eZ/Bundle/EzPublishRestBundle/Tests/Functional/ContentTypeTest.php 3 locations

@@ 45-61 (lines=17) @@
42
     *
43
     * @return string the updated content type href
44
     */
45
    public function testUpdateContentTypeGroup($contentTypeGroupHref)
46
    {
47
        $body = <<< XML
48
<?xml version="1.0" encoding="UTF-8"?>
49
<ContentTypeGroupInput>
50
  <identifier>testUpdateContentTypeGroup</identifier>
51
</ContentTypeGroupInput>
52
XML;
53
54
        $request = $this->createHttpRequest('PATCH', $contentTypeGroupHref, 'ContentTypeGroupInput+xml', 'ContentTypeGroup+json');
55
        $request->setContent($body);
56
        $response = $this->sendHttpRequest($request);
57
58
        self::assertHttpResponseCodeEquals($response, 200);
59
60
        return $contentTypeGroupHref;
61
    }
62
63
    /**
64
     * @depends testCreateContentTypeGroup
@@ 336-354 (lines=19) @@
333
     * @depends testCreateContentTypeDraft
334
     * Covers PATCH /content/types/<contentTypeId>/draft
335
     */
336
    public function testUpdateContentTypeDraft($contentTypeDraftHref)
337
    {
338
        $content = <<< XML
339
<?xml version="1.0" encoding="UTF-8"?>
340
<ContentTypeUpdate>
341
  <names>
342
    <value languageCode="eng-GB">testUpdateContentTypeDraft</value>
343
  </names>
344
</ContentTypeUpdate>
345
XML;
346
347
        $request = $this->createHttpRequest('PATCH', $contentTypeDraftHref, 'ContentTypeUpdate+xml', 'ContentTypeInfo+json');
348
        $request->setContent($content);
349
        $response = $this->sendHttpRequest(
350
            $request
351
        );
352
353
        self::assertHttpResponseCodeEquals($response, 200);
354
    }
355
356
    /**
357
     * Covers POST /content/types/<contentTypeId>/draft/fielddefinitions.
@@ 435-458 (lines=24) @@
432
     *
433
     * @todo the spec says PUT...
434
     */
435
    public function testUpdateContentTypeDraftFieldDefinition($fieldDefinitionHref)
436
    {
437
        $body = <<< XML
438
<?xml version="1.0" encoding="UTF-8"?>
439
<FieldDefinitionUpdate>
440
  <identifier>updated_secondtext</identifier>
441
  <names>
442
    <value languageCode="eng-GB">Updated second text</value>
443
  </names>
444
  <defaultValue>Updated default value</defaultValue>
445
</FieldDefinitionUpdate>
446
XML;
447
448
        $request = $this->createHttpRequest(
449
            'PATCH',
450
            $fieldDefinitionHref,
451
            'FieldDefinitionUpdate+xml',
452
            'FieldDefinition+json'
453
        );
454
        $request->setContent($body);
455
456
        $response = $this->sendHttpRequest($request);
457
        self::assertHttpResponseCodeEquals($response, 200);
458
    }
459
460
    /**
461
     * Covers DELETE /content/types/<contentTypeId>/draft/fieldDefinitions/<fieldDefinitionId>.

eZ/Bundle/EzPublishRestBundle/Tests/Functional/LocationTest.php 1 location

@@ 167-183 (lines=17) @@
164
     * Covers PATCH /content/locations/{locationPath}.
165
     * @depends testCreateLocation
166
     */
167
    public function testUpdateLocation($locationHref)
168
    {
169
        $body = <<< XML
170
<LocationUpdate>
171
  <priority>3</priority>
172
  <sortField>PATH</sortField>
173
  <sortOrder>ASC</sortOrder>
174
</LocationUpdate>
175
XML;
176
177
        $request = $this->createHttpRequest('PATCH', $locationHref, 'LocationUpdate+xml', 'Location+json');
178
        $request->setContent($body);
179
180
        $response = $this->sendHttpRequest($request);
181
182
        self::assertHttpResponseCodeEquals($response, 200);
183
    }
184
185
    /**
186
     * @depends testCreateLocation

eZ/Bundle/EzPublishRestBundle/Tests/Functional/ObjectStateTest.php 2 locations

@@ 192-213 (lines=22) @@
189
     * Covers PATCH /content/objectstategroups/{objectStateGroupId}/objectstates/{objectStateId}.
190
     * @depends testCreateObjectState
191
     */
192
    public function testUpdateObjectState($objectStateHref)
193
    {
194
        $body = <<< XML
195
<?xml version="1.0" encoding="UTF-8"?>
196
<ObjectStateUpdate>
197
  <identifier>testUpdateObjectState</identifier>
198
  <defaultLanguageCode>eng-GB</defaultLanguageCode>
199
  <names>
200
    <value languageCode="eng-GB">testUpdateObjectState</value>
201
  </names>
202
  <descriptions>
203
    <value languageCode="eng-GB">testUpdateObjectState description</value>
204
  </descriptions>
205
</ObjectStateUpdate>
206
XML;
207
        $request = $this->createHttpRequest('PATCH', $objectStateHref, 'ObjectStateUpdate+xml', 'ObjectState+json');
208
        $request->setContent($body);
209
210
        $response = $this->sendHttpRequest($request);
211
212
        self::assertHttpResponseCodeEquals($response, 200);
213
    }
214
215
    /**
216
     * Covers PATCH /content/objectstategroups/{objectStateGroupId}.
@@ 219-240 (lines=22) @@
216
     * Covers PATCH /content/objectstategroups/{objectStateGroupId}.
217
     * @depends testCreateObjectStateGroup
218
     */
219
    public function testUpdateObjectStateGroup($objectStateGroupHref)
220
    {
221
        $body = <<< XML
222
<?xml version="1.0" encoding="UTF-8"?>
223
<ObjectStateGroupUpdate>
224
  <identifier>testUpdateObjectStateGroup</identifier>
225
  <defaultLanguageCode>eng-GB</defaultLanguageCode>
226
  <names>
227
    <value languageCode="eng-GB">testUpdateObjectStateGroup</value>
228
  </names>
229
  <descriptions>
230
    <value languageCode="eng-GB">testUpdateObjectStateGroup description</value>
231
  </descriptions>
232
</ObjectStateGroupUpdate>
233
XML;
234
        $request = $this->createHttpRequest('PATCH', $objectStateGroupHref, 'ObjectStateGroupUpdate+xml', 'ObjectStateGroup+json');
235
        $request->setContent($body);
236
237
        $response = $this->sendHttpRequest($request);
238
239
        self::assertHttpResponseCodeEquals($response, 200);
240
    }
241
242
    /**
243
     * Covers DELETE.

eZ/Bundle/EzPublishRestBundle/Tests/Functional/RoleTest.php 4 locations

@@ 172-194 (lines=23) @@
169
     * @depends testCreateRole
170
     * Covers PATCH /user/roles/{roleId}
171
     */
172
    public function testUpdateRole($roleHref)
173
    {
174
        $xml = <<< XML
175
<?xml version="1.0" encoding="UTF-8"?>
176
<RoleInput>
177
  <identifier>testUpdateRole</identifier>
178
  <mainLanguageCode>eng-GB</mainLanguageCode>
179
  <names>
180
    <value languageCode="eng-GB">testUpdateRole</value>
181
  </names>
182
  <descriptions>
183
    <value languageCode="eng-GB">testUpdateRole description</value>
184
  </descriptions>
185
</RoleInput>
186
XML;
187
188
        $request = $this->createHttpRequest('PATCH', $roleHref, 'RoleInput+xml', 'Role+json');
189
        $request->setContent($xml);
190
        $response = $this->sendHttpRequest($request);
191
192
        // @todo Fix failure Notice: Trying to get property of non-object in \/home\/bertrand\/www\/ezpublish-kernel\/eZ\/Publish\/Core\/Persistence\/Cache\/UserHandler.php line 174
193
        self::assertHttpResponseCodeEquals($response, 200);
194
    }
195
196
    /**
197
     * @depends testCreateRoleDraft
@@ 200-221 (lines=22) @@
197
     * @depends testCreateRoleDraft
198
     * Covers PATCH /user/roles/{roleId}/draft
199
     */
200
    public function testUpdateRoleDraft($roleDraftHref)
201
    {
202
        $xml = <<< XML
203
<?xml version="1.0" encoding="UTF-8"?>
204
<RoleInput>
205
  <identifier>testUpdateRoleDraft</identifier>
206
  <mainLanguageCode>eng-GB</mainLanguageCode>
207
  <names>
208
    <value languageCode="eng-GB">testUpdateRoleDraft</value>
209
  </names>
210
  <descriptions>
211
    <value languageCode="eng-GB">testUpdateRoleDraft description</value>
212
  </descriptions>
213
</RoleInput>
214
XML;
215
216
        $request = $this->createHttpRequest('PATCH', $roleDraftHref, 'RoleInput+xml', 'RoleDraft+json');
217
        $request->setContent($xml);
218
        $response = $this->sendHttpRequest($request);
219
220
        self::assertHttpResponseCodeEquals($response, 200);
221
    }
222
223
    /**
224
     * Covers POST /user/roles/{roleId}/policies.
@@ 329-349 (lines=21) @@
326
     * Covers PATCH /user/roles/{roleId}/policies/{policyId}.
327
     * @depends testAddPolicy
328
     */
329
    public function testUpdatePolicy($policyHref)
330
    {
331
        $xml = <<< XML
332
<?xml version="1.0" encoding="UTF-8"?>
333
<PolicyUpdate>
334
  <limitations>
335
    <limitation identifier="Class">
336
      <values>
337
        <ref href="1"/>
338
      </values>
339
    </limitation>
340
  </limitations>
341
</PolicyUpdate>
342
XML;
343
344
        $request = $this->createHttpRequest('PATCH', $policyHref, 'PolicyUpdate+xml', 'Policy+json');
345
        $request->setContent($xml);
346
        $response = $this->sendHttpRequest($request);
347
348
        self::assertHttpResponseCodeEquals($response, 200);
349
    }
350
351
    /**
352
     * Covers PATCH /user/roles/{roleId}/policies/{policyId}.
@@ 355-375 (lines=21) @@
352
     * Covers PATCH /user/roles/{roleId}/policies/{policyId}.
353
     * @depends testAddPolicyByRoleDraft
354
     */
355
    public function testUpdatePolicyByRoleDraft($policyHref)
356
    {
357
        $xml = <<< XML
358
<?xml version="1.0" encoding="UTF-8"?>
359
<PolicyUpdate>
360
  <limitations>
361
    <limitation identifier="Class">
362
      <values>
363
        <ref href="1"/>
364
      </values>
365
    </limitation>
366
  </limitations>
367
</PolicyUpdate>
368
XML;
369
370
        $request = $this->createHttpRequest('PATCH', $policyHref, 'PolicyUpdate+xml', 'Policy+json');
371
        $request->setContent($xml);
372
        $response = $this->sendHttpRequest($request);
373
374
        self::assertHttpResponseCodeEquals($response, 200);
375
    }
376
377
    /**
378
     * @depends testCreateRole

eZ/Bundle/EzPublishRestBundle/Tests/Functional/SectionTest.php 1 location

@@ 58-71 (lines=14) @@
55
     * @depends testCreateSection
56
     * Covers PATCH /content/sections/{sectionId}
57
     */
58
    public function testUpdateSection($sectionHref)
59
    {
60
        $xml = <<< XML
61
<SectionInput>
62
  <identifier>testUpdateSection</identifier>
63
  <name>testUpdateSection</name>
64
</SectionInput>
65
XML;
66
        $request = $this->createHttpRequest('PATCH', $sectionHref, 'SectionInput+xml', 'Section+json');
67
        $request->setContent($xml);
68
        $response = $this->sendHttpRequest($request);
69
70
        self::assertHttpResponseCodeEquals($response, 200);
71
    }
72
73
    /**
74
     * Covers GET /content/sections/{sectionId}.

eZ/Bundle/EzPublishRestBundle/Tests/Functional/UserTest.php 2 locations

@@ 90-116 (lines=27) @@
87
     * Covers PATCH /user/groups/{groupPath}.
88
     * @depends testCreateUserGroup
89
     */
90
    public function testUpdateUserGroup($groupHref)
91
    {
92
        $text = $this->addTestSuffix(__FUNCTION__);
93
        $xml = <<< XML
94
<?xml version="1.0" encoding="UTF-8"?>
95
<UserGroupUpdate>
96
  <fields>
97
    <field>
98
      <fieldDefinitionIdentifier>description</fieldDefinitionIdentifier>
99
      <languageCode>eng-GB</languageCode>
100
      <fieldValue>{$text}</fieldValue>
101
    </field>
102
  </fields>
103
</UserGroupUpdate>
104
XML;
105
        $request = $this->createHttpRequest(
106
            'PATCH',
107
            $groupHref,
108
            'UserGroupUpdate+xml',
109
            'UserGroup+json'
110
        );
111
        $request->setContent($xml);
112
113
        $response = $this->sendHttpRequest($request);
114
115
        self::assertHttpResponseCodeEquals($response, 200);
116
    }
117
118
    /**
119
     * @depends testCreateUserGroup
@@ 185-211 (lines=27) @@
182
     * @depends testCreateUser
183
     * Covers PATCH /user/users/{userId}
184
     */
185
    public function testUpdateUser($userHref)
186
    {
187
        $text = $this->addTestSuffix(__FUNCTION__);
188
        $xml = <<< XML
189
<?xml version="1.0" encoding="UTF-8"?>
190
<UserUpdate>
191
  <fields>
192
    <field>
193
      <fieldDefinitionIdentifier>first_name</fieldDefinitionIdentifier>
194
      <languageCode>eng-GB</languageCode>
195
      <fieldValue>john john</fieldValue>
196
    </field>
197
  </fields>
198
</UserUpdate>
199
XML;
200
        $request = $this->createHttpRequest(
201
            'PATCH',
202
            $userHref,
203
            'UserUpdate+xml',
204
            'User+json'
205
        );
206
        $request->setContent($xml);
207
208
        $response = $this->sendHttpRequest($request);
209
210
        self::assertHttpResponseCodeEquals($response, 200);
211
    }
212
213
    /**
214
     * Covers GET /user/users.

eZ/Bundle/EzPublishRestBundle/Tests/Functional/ContentTest.php 4 locations

@@ 110-126 (lines=17) @@
107
    /**
108
     * @depends testPublishContent
109
     */
110
    public function testUpdateContentMetadata($restContentHref)
111
    {
112
        $string = $this->addTestSuffix(__FUNCTION__);
113
        $content = <<< XML
114
<?xml version="1.0" encoding="UTF-8"?>
115
<ContentUpdate>
116
  <Owner href="/api/ezp/v2/user/users/10"/>
117
  <remoteId>{$string}</remoteId>
118
</ContentUpdate>
119
XML;
120
        $request = $this->createHttpRequest('PATCH', $restContentHref, 'ContentUpdate+xml', 'ContentInfo+json');
121
        $request->setContent($content);
122
        $response = $this->sendHttpRequest($request);
123
        self::assertHttpResponseCodeEquals($response, 200);
124
125
        // @todo test data
126
    }
127
128
    /**
129
     * @depends testPublishContent
@@ 269-290 (lines=22) @@
266
     *
267
     * @param string $restContentVersionHref /content/objects/<contentId>/versions>/<versionNumber>
268
     */
269
    public function testUpdateVersion($restContentVersionHref)
270
    {
271
        $xml = <<< XML
272
<VersionUpdate>
273
    <fields>
274
        <field>
275
            <fieldDefinitionIdentifier>name</fieldDefinitionIdentifier>
276
            <languageCode>eng-GB</languageCode>
277
            <fieldValue>testUpdateVersion</fieldValue>
278
        </field>
279
    </fields>
280
</VersionUpdate>
281
XML;
282
283
        $request = $this->createHttpRequest('PATCH', $restContentVersionHref, 'VersionUpdate+xml', 'Version+json');
284
        $request->setContent($xml);
285
        $response = $this->sendHttpRequest(
286
            $request
287
        );
288
289
        self::assertHttpResponseCodeEquals($response, 200);
290
    }
291
292
    /**
293
     * @depends testPublishContent
@@ 393-417 (lines=25) @@
390
        return $array['Content'];
391
    }
392
393
    public function testCreateView()
394
    {
395
        $body = <<< XML
396
<?xml version="1.0" encoding="UTF-8"?>
397
<ViewInput>
398
  <identifier>testCreateView</identifier>
399
  <Query>
400
    <Criteria>
401
      <ContentTypeIdentifierCriterion>folder</ContentTypeIdentifierCriterion>
402
    </Criteria>
403
    <limit>10</limit>
404
    <offset>0</offset>
405
  </Query>
406
</ViewInput>
407
XML;
408
        $request = $this->createHttpRequest('POST', '/api/ezp/v2/content/views', 'ViewInput+xml', 'View+json');
409
        $request->setContent($body);
410
        $response = $this->sendHttpRequest(
411
            $request
412
        );
413
414
        // Returns 301 since 6.0 (deprecated in favour of /views)
415
        self::assertHttpResponseCodeEquals($response, 301);
416
        self::assertHttpResponseHasHeader($response, 'Location');
417
    }
418
419
    /**
420
     * Covers DELETE /content/objects/<contentId>/versions/<versionNo>/translations/<languageCode>.
@@ 515-538 (lines=24) @@
512
     *
513
     * @return string
514
     */
515
    private function createVersionTranslation($restContentVersionHref, $languageCode, $languageName)
516
    {
517
        $this->ensureLanguageExists($languageCode, $languageName);
518
519
        $xml = <<< XML
520
<VersionUpdate>
521
    <fields>
522
        <field>
523
            <fieldDefinitionIdentifier>name</fieldDefinitionIdentifier>
524
            <languageCode>{$languageCode}</languageCode>
525
            <fieldValue>{$languageName} translated name</fieldValue>
526
        </field>
527
    </fields>
528
</VersionUpdate>
529
XML;
530
531
        $request = $this->createHttpRequest('PATCH', $restContentVersionHref, 'VersionUpdate+xml', 'Version+json');
532
        $request->setContent($xml);
533
        $response = $this->sendHttpRequest(
534
            $request
535
        );
536
537
        self::assertHttpResponseCodeEquals($response, 200);
538
    }
539
540
    /**
541
     * Make REST API calls to check if the given Language exists and create it if it doesn't.