diff --git a/tests/acceptance/features/bootstrap/ChecksumContext.php b/tests/acceptance/features/bootstrap/ChecksumContext.php index 17f8496b07..fd7f08768e 100644 --- a/tests/acceptance/features/bootstrap/ChecksumContext.php +++ b/tests/acceptance/features/bootstrap/ChecksumContext.php @@ -23,6 +23,7 @@ use Behat\Behat\Context\Context; use Behat\Behat\Hook\Scope\BeforeScenarioScope; use PHPUnit\Framework\Assert; use TestHelpers\WebDavHelper; +use Psr\Http\Message\ResponseInterface; require_once 'bootstrap.php'; @@ -32,6 +33,32 @@ require_once 'bootstrap.php'; class ChecksumContext implements Context { private FeatureContext $featureContext; + /** + * @param string $user + * @param string $source + * @param string $destination + * @param string $checksum + * + * @return ResponseInterface + */ + public function uploadFileToWithChecksumUsingTheAPI( + string $user, + string $source, + string $destination, + string $checksum + ):ResponseInterface { + $file = \file_get_contents( + $this->featureContext->acceptanceTestsDirLocation() . $source + ); + return $this->featureContext->makeDavRequest( + $user, + 'PUT', + $destination, + ['OC-Checksum' => $checksum], + $file + ); + } + /** * @When user :user uploads file :source to :destination with checksum :checksum using the WebDAV API * @@ -48,17 +75,7 @@ class ChecksumContext implements Context { string $destination, string $checksum ):void { - $file = \file_get_contents( - $this->featureContext->acceptanceTestsDirLocation() . $source - ); - $response = $this->featureContext->makeDavRequest( - $user, - 'PUT', - $destination, - ['OC-Checksum' => $checksum], - $file - ); - $this->featureContext->setResponse($response); + $this->featureContext->setResponse($this->uploadFileToWithChecksumUsingTheAPI($user, $source, $destination, $checksum)); } /** @@ -78,13 +95,36 @@ class ChecksumContext implements Context { string $checksum ):void { $user = $this->featureContext->getActualUsername($user); - $this->userUploadsFileToWithChecksumUsingTheAPI( + $response = $this->uploadFileToWithChecksumUsingTheAPI( $user, $source, $destination, $checksum ); - $this->featureContext->theHTTPStatusCodeShouldBeSuccess(); + $this->featureContext->theHTTPStatusCodeShouldBe([201,204], '', $response); + } + + /** + * @param string $user + * @param string $content + * @param string $checksum + * @param string $destination + * + * @return ResponseInterface + */ + public function uploadFileWithContentAndChecksumToUsingTheAPI( + string $user, + string $content, + string $checksum, + string $destination + ):ResponseInterface { + return $this->featureContext->makeDavRequest( + $user, + 'PUT', + $destination, + ['OC-Checksum' => $checksum], + $content + ); } /** @@ -103,14 +143,7 @@ class ChecksumContext implements Context { string $checksum, string $destination ):void { - $response = $this->featureContext->makeDavRequest( - $user, - 'PUT', - $destination, - ['OC-Checksum' => $checksum], - $content - ); - $this->featureContext->setResponse($response); + $this->featureContext->setResponse($this->uploadFileWithContentAndChecksumToUsingTheAPI($user, $content, $checksum, $destination)); } /** @@ -130,13 +163,8 @@ class ChecksumContext implements Context { string $destination ):void { $user = $this->featureContext->getActualUsername($user); - $this->userUploadsFileWithContentAndChecksumToUsingTheAPI( - $user, - $content, - $checksum, - $destination - ); - $this->featureContext->theHTTPStatusCodeShouldBeSuccess(); + $response = $this->uploadFileWithContentAndChecksumToUsingTheAPI($user, $content, $checksum, $destination); + $this->featureContext->theHTTPStatusCodeShouldBe(201, '', $response); } /** @@ -374,6 +402,36 @@ class ChecksumContext implements Context { ); } + /** + * @param string $user + * @param int $num + * @param int $total + * @param string $data + * @param string $destination + * @param string $expectedChecksum + * + * @return ResponseInterface + */ + public function uploadChunkFileOfWithToWithChecksum( + string $user, + int $num, + int $total, + string $data, + string $destination, + string $expectedChecksum + ):ResponseInterface { + $user = $this->featureContext->getActualUsername($user); + $num -= 1; + $file = "$destination-chunking-42-$total-$num"; + return $this->featureContext->makeDavRequest( + $user, + 'PUT', + $file, + ['OC-Checksum' => $expectedChecksum, 'OC-Chunked' => '1'], + $data + ); + } + /** * @When user :user uploads chunk file :num of :total with :data to :destination with checksum :expectedChecksum using the WebDAV API * @@ -394,16 +452,7 @@ class ChecksumContext implements Context { string $destination, string $expectedChecksum ):void { - $user = $this->featureContext->getActualUsername($user); - $num -= 1; - $file = "$destination-chunking-42-$total-$num"; - $response = $this->featureContext->makeDavRequest( - $user, - 'PUT', - $file, - ['OC-Checksum' => $expectedChecksum, 'OC-Chunked' => '1'], - $data - ); + $response = $this->uploadChunkFileOfWithToWithChecksum($user, $num, $total, $data, $destination, $expectedChecksum); $this->featureContext->setResponse($response); } @@ -427,15 +476,12 @@ class ChecksumContext implements Context { string $destination, string $expectedChecksum ):void { - $this->userUploadsChunkFileOfWithToWithChecksum( - $user, - $num, - $total, - $data, - $destination, - $expectedChecksum + $response = $this->uploadChunkFileOfWithToWithChecksum($user, $num, $total, $data, $destination, $expectedChecksum); + $this->featureContext->theHTTPStatusCodeShouldBe( + [201, 206], + '', + $response ); - $this->featureContext->theHTTPStatusCodeShouldBeOr(201, 206); } /** diff --git a/tests/acceptance/features/bootstrap/FavoritesContext.php b/tests/acceptance/features/bootstrap/FavoritesContext.php index 80eeb7b061..7eaad10567 100644 --- a/tests/acceptance/features/bootstrap/FavoritesContext.php +++ b/tests/acceptance/features/bootstrap/FavoritesContext.php @@ -39,15 +39,14 @@ class FavoritesContext implements Context { * @param string$user * @param string $path * - * @return void + * @return ResponseInterface */ - public function userFavoritesElement(string $user, string $path):void { - $response = $this->changeFavStateOfAnElement( + public function userFavoritesElement(string $user, string $path):ResponseInterface { + return $this->changeFavStateOfAnElement( $user, $path, 1 ); - $this->featureContext->setResponse($response); } /** @@ -59,7 +58,7 @@ class FavoritesContext implements Context { * @return void */ public function userFavoritesElementUsingWebDavApi(string $user, string $path):void { - $this->userFavoritesElement($user, $path); + $this->featureContext->setResponse($this->userFavoritesElement($user, $path)); } /** @@ -71,8 +70,7 @@ class FavoritesContext implements Context { * @return void */ public function userHasFavoritedElementUsingWebDavApi(string $user, string $path):void { - $this->userFavoritesElement($user, $path); - $this->featureContext->theHTTPStatusCodeShouldBeSuccess(); + $this->featureContext->theHTTPStatusCodeShouldBe(207, '', $this->userFavoritesElement($user, $path)); } /** @@ -83,10 +81,11 @@ class FavoritesContext implements Context { * @return void */ public function theUserFavoritesElement(string $path):void { - $this->userFavoritesElement( + $response = $this->userFavoritesElement( $this->featureContext->getCurrentUser(), $path ); + $this->featureContext->setResponse($response); } /** @@ -97,13 +96,14 @@ class FavoritesContext implements Context { * @return void */ public function theUserHasFavoritedElement(string $path):void { - $this->userFavoritesElement( + $response = $this->userFavoritesElement( $this->featureContext->getCurrentUser(), $path ); $this->featureContext->theHTTPStatusCodeShouldBe( 207, - "Expected response status code to be 207 (Multi-status), but not found! " + "Expected response status code to be 207 (Multi-status), but not found! ", + $response ); } @@ -111,15 +111,14 @@ class FavoritesContext implements Context { * @param string $user * @param string $path * - * @return void + * @return ResponseInterface */ - public function userUnfavoritesElement(string $user, string $path):void { - $response = $this->changeFavStateOfAnElement( + public function userUnfavoritesElement(string $user, string $path):ResponseInterface { + return $this->changeFavStateOfAnElement( $user, $path, 0 ); - $this->featureContext->setResponse($response); } /** @@ -131,7 +130,7 @@ class FavoritesContext implements Context { * @return void */ public function userUnfavoritesElementUsingWebDavApi(string $user, string $path):void { - $this->userUnfavoritesElement($user, $path); + $this->featureContext->setResponse($this->userUnfavoritesElement($user, $path)); } /** @@ -143,8 +142,7 @@ class FavoritesContext implements Context { * @return void */ public function userHasUnfavoritedElementUsingWebDavApi(string $user, string $path):void { - $this->userUnfavoritesElement($user, $path); - $this->featureContext->theHTTPStatusCodeShouldBeSuccess(); + $this->featureContext->theHTTPStatusCodeShouldBe(207, '', $this->userUnfavoritesElement($user, $path)); } /** @@ -212,10 +210,10 @@ class FavoritesContext implements Context { /** * @param string $path * - * @return void + * @return ResponseInterface */ - public function theUserUnfavoritesElement(string $path):void { - $this->userUnfavoritesElement( + public function theUserUnfavoritesElement(string $path):ResponseInterface { + return $this->userUnfavoritesElement( $this->featureContext->getCurrentUser(), $path ); @@ -229,7 +227,7 @@ class FavoritesContext implements Context { * @return void */ public function theUserUnfavoritesElementUsingWebDavApi(string $path):void { - $this->theUserUnfavoritesElement($path); + $this->featureContext->setResponse($this->theUserUnfavoritesElement($path)); } /** @@ -240,8 +238,7 @@ class FavoritesContext implements Context { * @return void */ public function theUserHasUnfavoritedElementUsingWebDavApi(string $path):void { - $this->theUserUnfavoritesElement($path); - $this->featureContext->theHTTPStatusCodeShouldBeSuccess(); + $this->featureContext->theHTTPStatusCodeShouldBe(207, '', $this->theUserUnfavoritesElement($path)); } /** diff --git a/tests/acceptance/features/bootstrap/SpacesContext.php b/tests/acceptance/features/bootstrap/SpacesContext.php index bed6ba6539..87f21cf459 100644 --- a/tests/acceptance/features/bootstrap/SpacesContext.php +++ b/tests/acceptance/features/bootstrap/SpacesContext.php @@ -3038,7 +3038,7 @@ class SpacesContext implements Context { */ public function userFavoritesElementInSpaceUsingTheWebdavApi(string $user, string $path, string $spaceName): void { $this->setSpaceIDByName($user, $spaceName); - $this->favoritesContext->userFavoritesElement($user, $path); + $this->featureContext->setResponse($this->favoritesContext->userFavoritesElement($user, $path)); } /**