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