| @@ 21-27 (lines=7) @@ | ||
| 18 | parent::setUp(); |
|
| 19 | } |
|
| 20 | ||
| 21 | public function testCreateSessionBadCredentials() |
|
| 22 | { |
|
| 23 | $request = $this->createHttpRequest('POST', '/api/ezp/v2/user/sessions', 'SessionInput+json', 'Session+json'); |
|
| 24 | $this->setSessionInput($request, 'badpassword'); |
|
| 25 | $response = $this->sendHttpRequest($request); |
|
| 26 | self::assertHttpResponseCodeEquals($response, 401); |
|
| 27 | } |
|
| 28 | ||
| 29 | /** |
|
| 30 | * @return \stdClass The login request's response |
|
| @@ 645-657 (lines=13) @@ | ||
| 642 | * Covers PUBLISH /user/roles/{roleId}/draft. |
|
| 643 | * @depends testCreateRoleDraft |
|
| 644 | */ |
|
| 645 | public function testPublishRoleDraft($roleDraftHref) |
|
| 646 | { |
|
| 647 | $response = $this->sendHttpRequest( |
|
| 648 | $this->createHttpRequest('PUBLISH', $roleDraftHref) |
|
| 649 | ); |
|
| 650 | ||
| 651 | self::assertHttpResponseCodeEquals($response, 204); |
|
| 652 | self::assertHttpResponseHasHeader( |
|
| 653 | $response, |
|
| 654 | 'Location', |
|
| 655 | '/api/ezp/v2/user/roles/' . preg_replace('/.*roles\/(\d+).*/', '$1', $roleDraftHref) |
|
| 656 | ); |
|
| 657 | } |
|
| 658 | ||
| 659 | /** |
|
| 660 | * Covers DELETE /user/roles/{roleId}/draft. |
|
| @@ 133-143 (lines=11) @@ | ||
| 130 | * |
|
| 131 | * @return string ContentVersion REST ID |
|
| 132 | */ |
|
| 133 | public function testCreateDraftFromVersion($restContentHref) |
|
| 134 | { |
|
| 135 | $response = $this->sendHttpRequest( |
|
| 136 | $this->createHttpRequest('COPY', "{$restContentHref}/versions/1") |
|
| 137 | ); |
|
| 138 | ||
| 139 | self::assertHttpResponseCodeEquals($response, 201); |
|
| 140 | self::assertEquals($response->getHeader('Location'), "{$restContentHref}/versions/2"); |
|
| 141 | ||
| 142 | return $response->getHeader('Location'); |
|
| 143 | } |
|
| 144 | ||
| 145 | /** |
|
| 146 | * @depends testPublishContent |
|
| @@ 236-246 (lines=11) @@ | ||
| 233 | * |
|
| 234 | * @return string the ID of the created version (/content/objects/<contentId>/versions/<versionNumber> |
|
| 235 | */ |
|
| 236 | public function testCreateDraftFromCurrentVersion($restContentHref) |
|
| 237 | { |
|
| 238 | $response = $this->sendHttpRequest( |
|
| 239 | $this->createHttpRequest('COPY', "$restContentHref/currentversion") |
|
| 240 | ); |
|
| 241 | ||
| 242 | self::assertHttpResponseCodeEquals($response, 201); |
|
| 243 | self::assertHttpResponseHasHeader($response, 'Location'); |
|
| 244 | ||
| 245 | return $response->getHeader('Location'); |
|
| 246 | } |
|
| 247 | ||
| 248 | /** |
|
| 249 | * @depends testCreateDraftFromCurrentVersion |
|
| @@ 749-760 (lines=12) @@ | ||
| 746 | * |
|
| 747 | * @return string Content Version Draft REST resource link |
|
| 748 | */ |
|
| 749 | private function createDraftFromVersion($restContentVersionHref) |
|
| 750 | { |
|
| 751 | $response = $this->sendHttpRequest( |
|
| 752 | $this->createHttpRequest('COPY', "{$restContentVersionHref}") |
|
| 753 | ); |
|
| 754 | self::assertHttpResponseCodeEquals($response, 201); |
|
| 755 | ||
| 756 | $href = $response->getHeader('Location'); |
|
| 757 | self::assertNotEmpty($href); |
|
| 758 | ||
| 759 | return $href; |
|
| 760 | } |
|
| 761 | ||
| 762 | /** |
|
| 763 | * Publish Content Version Draft given by REST resource link. |
|
| @@ 297-306 (lines=10) @@ | ||
| 294 | * |
|
| 295 | * @return array |
|
| 296 | */ |
|
| 297 | protected function getContentLocations($contentHref) |
|
| 298 | { |
|
| 299 | $response = $this->sendHttpRequest( |
|
| 300 | $this->createHttpRequest('GET', "$contentHref/locations", '', 'LocationList+json') |
|
| 301 | ); |
|
| 302 | self::assertHttpResponseCodeEquals($response, 200); |
|
| 303 | $folderLocations = json_decode($response->getContent(), true); |
|
| 304 | ||
| 305 | return $folderLocations; |
|
| 306 | } |
|
| 307 | ||
| 308 | protected function addTestSuffix($string) |
|
| 309 | { |
|
| @@ 322-330 (lines=9) @@ | ||
| 319 | * |
|
| 320 | * @return \stdClass an object with the name, identifier, csrftoken properties. |
|
| 321 | */ |
|
| 322 | protected function login() |
|
| 323 | { |
|
| 324 | $request = $this->createHttpRequest('POST', '/api/ezp/v2/user/sessions', 'SessionInput+json', 'Session+json'); |
|
| 325 | $this->setSessionInput($request); |
|
| 326 | $response = $this->sendHttpRequest($request); |
|
| 327 | self::assertHttpResponseCodeEquals($response, 201); |
|
| 328 | ||
| 329 | return json_decode($response->getContent())->Session; |
|
| 330 | } |
|
| 331 | ||
| 332 | /** |
|
| 333 | * Sets the request's content to a JSON session creation payload. |
|
| @@ 83-94 (lines=12) @@ | ||
| 80 | * @depends testCreateLocation |
|
| 81 | * Covers GET /content/locations?urlAlias=<Path/To-Content> |
|
| 82 | */ |
|
| 83 | public function testRedirectLocationByURLAlias($locationHref) |
|
| 84 | { |
|
| 85 | $testUrlAlias = 'firstPart/secondPart/testUrlAlias'; |
|
| 86 | $this->createUrlAlias($locationHref, $testUrlAlias); |
|
| 87 | ||
| 88 | $response = $this->sendHttpRequest( |
|
| 89 | $this->createHttpRequest('GET', "/api/ezp/v2/content/locations?urlAlias={$testUrlAlias}") |
|
| 90 | ); |
|
| 91 | ||
| 92 | self::assertHttpResponseCodeEquals($response, 307); |
|
| 93 | self::assertHttpResponseHasHeader($response, 'Location', $locationHref); |
|
| 94 | } |
|
| 95 | ||
| 96 | /** |
|
| 97 | * @depends testCreateLocation |
|
| @@ 131-139 (lines=9) @@ | ||
| 128 | * Covers MOVE /content/locations/{locationPath}. |
|
| 129 | * @depends testCopySubtree |
|
| 130 | */ |
|
| 131 | public function testMoveSubtree($locationHref) |
|
| 132 | { |
|
| 133 | $request = $this->createHttpRequest('MOVE', $locationHref); |
|
| 134 | $request->addHeader('Destination: /api/ezp/v2/content/locations/1/5'); |
|
| 135 | $response = $this->sendHttpRequest($request); |
|
| 136 | ||
| 137 | self::assertHttpResponseCodeEquals($response, 201); |
|
| 138 | self::assertHttpResponseHasHeader($response, 'Location'); |
|
| 139 | } |
|
| 140 | ||
| 141 | /** |
|
| 142 | * @depends testCreateLocation |
|