diff --git a/tests/acceptance/bootstrap/SpacesTUSContext.php b/tests/acceptance/bootstrap/SpacesTUSContext.php index 283c383c569..35f93baad3d 100644 --- a/tests/acceptance/bootstrap/SpacesTUSContext.php +++ b/tests/acceptance/bootstrap/SpacesTUSContext.php @@ -89,11 +89,10 @@ public function userUploadsAFileViaTusInsideOfTheSpaceUsingTheWebdavApi( } /** - * @Given user :user has created a new TUS resource for the space :spaceName with content :content using the WebDAV API with these headers: + * @Given user :user has created a new TUS resource in the space :spaceName with the following headers: * * @param string $user * @param string $spaceName - * @param string $content * @param TableNode $headers * * @return void @@ -104,11 +103,10 @@ public function userUploadsAFileViaTusInsideOfTheSpaceUsingTheWebdavApi( public function userHasCreatedANewTusResourceForTheSpaceUsingTheWebdavApiWithTheseHeaders( string $user, string $spaceName, - string $content, TableNode $headers ): void { $spaceId = $this->spacesContext->getSpaceIdByName($user, $spaceName); - $response = $this->tusContext->createNewTUSResourceWithHeaders($user, $headers, $content, $spaceId); + $response = $this->tusContext->createNewTUSResourceWithHeaders($user, $headers, '', $spaceId); $this->featureContext->theHTTPStatusCodeShouldBe(201, "Expected response status code should be 201", $response); } @@ -330,11 +328,10 @@ public function userSendsAChunkToTheLastCreatedTusLocationWithOffsetAndDataWithC } /** - * @When /^user "([^"]*)" sends a chunk to the last created TUS Location with data "([^"]*)" inside of the space "([^"]*)" with headers:$/ + * @When /^user "([^"]*)" sends a chunk to the last created TUS Location with data "([^"]*)" with the following headers:$/ * * @param string $user * @param string $data - * @param string $spaceName * @param TableNode $headers * * @return void @@ -343,7 +340,6 @@ public function userSendsAChunkToTheLastCreatedTusLocationWithOffsetAndDataWithC public function userSendsAChunkToTheLastCreatedTusLocationWithDataInsideOfTheSpaceWithHeaders( string $user, string $data, - string $spaceName, TableNode $headers ): void { $rows = $headers->getRowsHash(); diff --git a/tests/acceptance/config/behat.yml b/tests/acceptance/config/behat.yml index e0462a5abc5..b791b36b2c2 100644 --- a/tests/acceptance/config/behat.yml +++ b/tests/acceptance/config/behat.yml @@ -394,6 +394,7 @@ default: - OcisConfigContext: - NotificationContext: - SettingsContext: + - SpacesTUSContext: apiActivities: paths: diff --git a/tests/acceptance/features/apiCors/cors.feature b/tests/acceptance/features/apiCors/cors.feature index 6fcce1fd9e6..a728701835c 100644 --- a/tests/acceptance/features/apiCors/cors.feature +++ b/tests/acceptance/features/apiCors/cors.feature @@ -105,13 +105,13 @@ Feature: CORS headers @issue-8380 Scenario: CORS headers should be returned when uploading file using Tus and when CORS domain sending origin header in the Webdav api - Given user "Alice" has created a new TUS resource for the space "Personal" with content "" using the WebDAV API with these headers: + Given user "Alice" has created a new TUS resource in the space "Personal" with the following headers: | Upload-Length | 5 | # dGV4dEZpbGUudHh0 is the base64 encode of textFile.txt | Upload-Metadata | filename dGV4dEZpbGUudHh0 | | Tus-Resumable | 1.0.0 | | Origin | https://aphno.badal | - When user "Alice" sends a chunk to the last created TUS Location with data "01234" inside of the space "Personal" with headers: + When user "Alice" sends a chunk to the last created TUS Location with data "01234" with the following headers: | Origin | https://aphno.badal | | Upload-Checksum | MD5 4100c4d44da9177247e44a5fc1546778 | | Upload-Offset | 0 | @@ -123,13 +123,13 @@ Feature: CORS headers @issue-8380 Scenario: uploading file using Tus using different CORS headers - Given user "Alice" has created a new TUS resource for the space "Personal" with content "" using the WebDAV API with these headers: + Given user "Alice" has created a new TUS resource in the space "Personal" with the following headers: | Upload-Length | 5 | # dGV4dEZpbGUudHh0 is the base64 encode of textFile.txt | Upload-Metadata | filename dGV4dEZpbGUudHh0 | | Tus-Resumable | 1.0.0 | | Origin | https://something.else | - When user "Alice" sends a chunk to the last created TUS Location with data "01234" inside of the space "Personal" with headers: + When user "Alice" sends a chunk to the last created TUS Location with data "01234" with the following headers: | Origin | https://something.else | | Upload-Checksum | MD5 4100c4d44da9177247e44a5fc1546778 | | Upload-Offset | 0 | @@ -139,7 +139,7 @@ Feature: CORS headers # The Access-Control-Request-Headers need to be in lower-case and alphabetically order to comply with the rs/cors # package see: https://github.com/rs/cors/commit/4c32059b2756926619f6bf70281b91be7b5dddb2#diff-bf80d8fbedf172fab9ba2604da7f7be972e48b2f78a8d0cd21619d5f93665895R367 Scenario Outline: CORS headers should be returned when an preflight request is sent to Tus upload - Given user "Alice" has created a new TUS resource for the space "Personal" with content "" using the WebDAV API with these headers: + Given user "Alice" has created a new TUS resource in the space "Personal" with the following headers: | Upload-Length | 5 | # dGV4dEZpbGUudHh0 is the base64 encode of textFile.txt | Upload-Metadata | filename dGV4dEZpbGUudHh0 | diff --git a/tests/acceptance/features/apiOcm/share.feature b/tests/acceptance/features/apiOcm/share.feature index f43c7cc2e7d..aa861396a02 100755 --- a/tests/acceptance/features/apiOcm/share.feature +++ b/tests/acceptance/features/apiOcm/share.feature @@ -618,3 +618,31 @@ Feature: an user shares resources using ScienceMesh application } } """ + + @issue-10285 + Scenario: federated user upload file to a shared folder via TUS + Given using server "LOCAL" + And "Alice" has created the federation share invitation + And using server "REMOTE" + And "Brian" has accepted invitation + And using server "LOCAL" + And user "Alice" has created a folder "FOLDER" in space "Personal" + And user "Alice" has sent the following resource share invitation to federated user: + | resource | FOLDER | + | space | Personal | + | sharee | Brian | + | shareType | user | + | permissionsRole | Viewer | + | federatedServer | @federation-ocis-server:10200 | + And using server "REMOTE" + And user "Brian" has created a new TUS resource in the space "Shares" with the following headers: + | Upload-Length | 5 | + # L0ZPTERFUi90ZXh0RmlsZS50eHQ= is the base64 encode of /FOLDER/textFile.txt + | Upload-Metadata | filename L0ZPTERFUi90ZXh0RmlsZS50eHQ= | + | Tus-Resumable | 1.0.0 | + | Origin | https://something.else | + When user "Brian" sends a chunk to the last created TUS Location with data "01234" with the following headers: + | Origin | https://something.else | + | Upload-Checksum | MD5 4100c4d44da9177247e44a5fc1546778 | + | Upload-Offset | 0 | + Then the HTTP status code should be "403" diff --git a/tests/acceptance/features/apiSpacesShares/shareUploadTUS.feature b/tests/acceptance/features/apiSpacesShares/shareUploadTUS.feature index fa8628ba3ec..b353b9504fb 100644 --- a/tests/acceptance/features/apiSpacesShares/shareUploadTUS.feature +++ b/tests/acceptance/features/apiSpacesShares/shareUploadTUS.feature @@ -193,7 +193,7 @@ Feature: upload resources on share using TUS protocol | shareType | user | | permissionsRole | Editor | And user "Brian" has a share "FOLDER" synced - And user "Alice" has created a new TUS resource for the space "Personal" with content "" using the WebDAV API with these headers: + And user "Alice" has created a new TUS resource in the space "Personal" with the following headers: | Upload-Length | 5 | # L0ZPTERFUi90ZXh0RmlsZS50eHQ= is the base64 encode of /FOLDER/textFile.txt | Upload-Metadata | filename L0ZPTERFUi90ZXh0RmlsZS50eHQ= | @@ -213,7 +213,7 @@ Feature: upload resources on share using TUS protocol | shareType | user | | permissionsRole | Editor | And user "Brian" has a share "FOLDER" synced - And user "Alice" has created a new TUS resource for the space "Personal" with content "" using the WebDAV API with these headers: + And user "Alice" has created a new TUS resource in the space "Personal" with the following headers: | Upload-Length | 5 | # L0ZPTERFUi90ZXh0RmlsZS50eHQ= is the base64 encode of /FOLDER/textFile.txt | Upload-Metadata | filename L0ZPTERFUi90ZXh0RmlsZS50eHQ= | @@ -224,7 +224,7 @@ Feature: upload resources on share using TUS protocol Scenario: sharer shares a file with correct checksum should return the checksum in the propfind for sharee - Given user "Alice" has created a new TUS resource for the space "Personal" with content "" using the WebDAV API with these headers: + Given user "Alice" has created a new TUS resource in the space "Personal" with the following headers: | Upload-Length | 5 | # dGV4dEZpbGUudHh0 is the base64 encode of textFile.txt | Upload-Metadata | filename dGV4dEZpbGUudHh0 | @@ -243,7 +243,7 @@ Feature: upload resources on share using TUS protocol Scenario: sharer shares a file with correct checksum should return the checksum in the download header for sharee - Given user "Alice" has created a new TUS resource for the space "Personal" with content "" using the WebDAV API with these headers: + Given user "Alice" has created a new TUS resource in the space "Personal" with the following headers: | Upload-Length | 5 | # dGV4dEZpbGUudHh0 is the base64 encode of textFile.txt | Upload-Metadata | filename dGV4dEZpbGUudHh0 | @@ -309,7 +309,7 @@ Feature: upload resources on share using TUS protocol | shareType | user | | permissionsRole | Editor | And user "Brian" has a share "FOLDER" synced - And user "Alice" has created a new TUS resource for the space "Personal" with content "" using the WebDAV API with these headers: + And user "Alice" has created a new TUS resource in the space "Personal" with the following headers: | Upload-Length | 16 | # L0ZPTERFUi90ZXh0RmlsZS50eHQ= is the base64 encode of /FOLDER/textFile.txt | Upload-Metadata | filename L0ZPTERFUi90ZXh0RmlsZS50eHQ= | @@ -323,7 +323,7 @@ Feature: upload resources on share using TUS protocol Scenario: sharer uploads a chunked file with correct checksum and share it with sharee should work - Given user "Alice" has created a new TUS resource for the space "Personal" with content "" using the WebDAV API with these headers: + Given user "Alice" has created a new TUS resource in the space "Personal" with the following headers: | Upload-Length | 10 | # dGV4dEZpbGUudHh0 is the base64 encode of textFile.txt | Upload-Metadata | filename dGV4dEZpbGUudHh0 | @@ -345,7 +345,7 @@ Feature: upload resources on share using TUS protocol | shareType | user | | permissionsRole | Editor | And user "Brian" has a share "FOLDER" synced - And user "Brian" has created a new TUS resource for the space "Shares" with content "" using the WebDAV API with these headers: + And user "Brian" has created a new TUS resource in the space "Shares" with the following headers: | Upload-Length | 10 | # L0ZPTERFUi90ZXh0RmlsZS50eHQ= is the base64 encode of /FOLDER/textFile.txt | Upload-Metadata | filename L0ZPTERFUi90ZXh0RmlsZS50eHQ= | @@ -359,7 +359,7 @@ Feature: upload resources on share using TUS protocol Scenario: sharer uploads a file with checksum and as a sharee overwrites the shared file with new data and correct checksum - Given user "Alice" has created a new TUS resource for the space "Personal" with content "" using the WebDAV API with these headers: + Given user "Alice" has created a new TUS resource in the space "Personal" with the following headers: | Upload-Length | 16 | # dGV4dEZpbGUudHh0 is the base64 encode of textFile.txt | Upload-Metadata | filename dGV4dEZpbGUudHh0 | @@ -382,7 +382,7 @@ Feature: upload resources on share using TUS protocol @issue-1755 Scenario: sharer uploads a file with checksum and as a sharee overwrites the shared file with new data and invalid checksum - Given user "Alice" has created a new TUS resource for the space "Personal" with content "" using the WebDAV API with these headers: + Given user "Alice" has created a new TUS resource in the space "Personal" with the following headers: | Upload-Length | 16 | # dGV4dEZpbGUudHh0 is the base64 encode of textFile.txt | Upload-Metadata | filename dGV4dEZpbGUudHh0 | diff --git a/tests/acceptance/features/cliCommands/uploadSessions.feature b/tests/acceptance/features/cliCommands/uploadSessions.feature index 8190a2346f9..9262c954ce7 100644 --- a/tests/acceptance/features/cliCommands/uploadSessions.feature +++ b/tests/acceptance/features/cliCommands/uploadSessions.feature @@ -135,7 +135,7 @@ Feature: List upload sessions via CLI command | POSTPROCESSING_DELAY | 10s | And user "Alice" has uploaded file "filesForUpload/filesWithVirus/eicar.com" to "/virusFile.txt" And user "Alice" has uploaded file with content "upload content" to "/file1.txt" - And user "Alice" has created a new TUS resource for the space "Personal" with content "" using the WebDAV API with these headers: + And user "Alice" has created a new TUS resource in the space "Personal" with the following headers: | Upload-Length | 10 | # dGV4dEZpbGUudHh0 is the base64 encode of textFile.txt | Upload-Metadata | filename dGV4dEZpbGUudHh0 |