From 33a99d6de3288804fe4aad0a6f9ebcaa0d61e5bf Mon Sep 17 00:00:00 2001 From: Prajwol Amatya Date: Thu, 7 Nov 2024 14:12:16 +0545 Subject: [PATCH 1/4] extend webdav tests for old, new and spaces path --- tests/acceptance/bootstrap/WebDav.php | 53 +-- .../expected-failures-API-on-OCIS-storage.md | 77 ++-- .../expected-failures-without-remotephp.md | 2 + .../uploadFile.feature | 2 + .../webDavPUTAuthInvalid.feature | 4 +- .../features/apiAntivirus/antivirus.feature | 7 + .../features/apiContract/sharesReport.feature | 3 + .../apiContract/spacesSharesReport.feature | 31 +- .../acceptance/features/apiCors/cors.feature | 9 +- .../apiDepthInfinity/propfind.feature | 13 +- .../enforcePasswordPublicLink.feature | 2 +- .../features/apiGraph/unassignRole.feature | 21 +- .../apiSharingNg1/listPermissions.feature | 32 +- .../coreApiAuth/webDavMOVEAuth.feature | 1 - .../favoritesSharingToShares.feature | 5 + .../features/coreApiMain/checksums.feature | 23 +- .../createShareToSharesFolder.feature | 9 +- .../deleteShareFromShares.feature | 60 ++- .../acceptShares.feature | 29 +- .../mergeShare.feature | 20 +- .../moveReceivedShare.feature | 139 +++++-- .../moveShareInsideAnotherShare.feature | 36 +- .../changingFilesShare.feature | 2 + .../getWebDAVSharePermissions.feature | 59 +-- .../uploadToShare.feature | 25 +- .../accessToPublicLinkShare.feature | 7 +- .../updateShare.feature | 11 +- .../coreApiTrashbin/trashbinDelete.feature | 12 + .../trashbinFilesFolders.feature | 22 + .../trashbinSharingToShares.feature | 10 + .../trashbinRestore.feature | 5 + .../disableFileVersioning.feature | 47 ++- .../coreApiVersions/fileVersionAuthor.feature | 1 - .../coreApiVersions/fileVersions.feature | 383 ++++++++++++++---- .../coreApiWebdavDelete/deleteFile.feature | 10 +- .../createFolder.feature | 7 +- .../restoreVersion.feature | 11 +- .../moveShareOnOcis.feature | 30 ++ .../downloadFile.feature | 20 +- .../coreApiWebdavPreviews/previews.feature | 1 + .../previewsAutoAdustedSizing.feature | 25 +- .../coreApiWebdavProperties/copyFile.feature | 24 ++ .../uploadFileUsingOldChunking.feature | 9 +- .../coreApiWebdavUploadTUS/uploadFile.feature | 1 + .../uploadFileMtimeShares.feature | 2 + .../uploadToNonExistingFolder.feature | 3 + .../uploadToShare.feature | 6 + 47 files changed, 956 insertions(+), 355 deletions(-) diff --git a/tests/acceptance/bootstrap/WebDav.php b/tests/acceptance/bootstrap/WebDav.php index b8ac7e5cdc0..5631fbfd19e 100644 --- a/tests/acceptance/bootstrap/WebDav.php +++ b/tests/acceptance/bootstrap/WebDav.php @@ -1734,7 +1734,6 @@ public function uploadFileWithHeaders( * @param string $source * @param string $destination * @param integer $noOfChunks - * @param string|null $chunkingVersion * @param boolean $async * @param array|null $headers * @@ -1745,7 +1744,6 @@ public function userUploadsAFileInChunk( string $source, string $destination, int $noOfChunks = 2, - ?string $chunkingVersion = null, bool $async = false, ?array $headers = [] ):void { @@ -1755,22 +1753,9 @@ public function userUploadsAFileInChunk( $noOfChunks, "What does it mean to have $noOfChunks chunks?" ); - // use the chunking version that works with the set DAV version - if ($chunkingVersion === null) { - if (\in_array($this->currentDAVPath, [WebDavHelper::DAV_VERSION_OLD, WebDavHelper::DAV_VERSION_SPACES])) { - $chunkingVersion = "v1"; - } else { - $chunkingVersion = "v2"; - } - } - $this->useSpecificChunking($chunkingVersion); - Assert::assertTrue( - WebDavHelper::isValidDavChunkingCombination( - $this->getDavPathVersion(), - $this->chunkingToUse - ), - "invalid chunking/webdav version combination" - ); + + // use chunking version 1 as default, since version 2 uses "remote.php/dav/uploads" endpoint and it doesn't exist in oCIS + $this->chunkingToUse = 1; if ($async === true) { $headers['OC-LazyOps'] = 'true'; @@ -1785,27 +1770,6 @@ public function userUploadsAFileInChunk( $this->pushToLastStatusCodesArrays(); } - /** - * sets the chunking version from human-readable format - * - * @param string $version (no|v1|v2|new|old) - * - * @return void - */ - public function useSpecificChunking(string $version):void { - if ($version === "v1" || $version === "old") { - $this->chunkingToUse = 1; - } elseif ($version === "v2" || $version === "new") { - $this->chunkingToUse = 2; - } elseif ($version === "no") { - $this->chunkingToUse = null; - } else { - throw new InvalidArgumentException( - "cannot set chunking version to $version" - ); - } - } - /** * Uploading with old/new DAV and chunked/non-chunked. * Except do not do the new-DAV-new-chunking combination. That is not being @@ -1839,13 +1803,12 @@ public function userUploadsAFileToWithAllMechanismsExceptNewChunking( } /** - * @When /^user "([^"]*)" uploads file "([^"]*)" to "([^"]*)" in (\d+) chunks (?:with (new|old|v1|v2) chunking and)?\s?using the WebDAV API$/ + * @When /^user "([^"]*)" uploads file "([^"]*)" to "([^"]*)" in (\d+) chunks using the WebDAV API$/ * * @param string $user * @param string $source * @param string $destination * @param int $noOfChunks - * @param string|null $chunkingVersion old|v1|new|v2 null for autodetect * * @return void * @throws Exception @@ -1854,10 +1817,9 @@ public function userUploadsAFileToWithChunks( string $user, string $source, string $destination, - int $noOfChunks = 2, - ?string $chunkingVersion = null + int $noOfChunks = 2 ):void { - $this->userUploadsAFileInChunk($user, $source, $destination, $noOfChunks, $chunkingVersion); + $this->userUploadsAFileInChunk($user, $source, $destination, $noOfChunks); } /** @@ -3059,7 +3021,7 @@ public function userUploadChunkedFile( ['OC-Chunked' => '1'], $data, null, - "uploads", + "files", null, false, null, @@ -4430,7 +4392,6 @@ public function theLastPublicDavResponseShouldNotContainTheseNodes(TableNode $ta */ public function thePublicListsTheResourcesInTheLastCreatedPublicLinkWithDepthUsingTheWebdavApi(string $depth):void { $token = ($this->isUsingSharingNG()) ? $this->shareNgGetLastCreatedLinkShareToken() : $this->getLastCreatedPublicShareToken(); - // https://drone.owncloud.com/owncloud/ocis/39693/29/6 $response = $this->listFolder( $token, '/', diff --git a/tests/acceptance/expected-failures-API-on-OCIS-storage.md b/tests/acceptance/expected-failures-API-on-OCIS-storage.md index ef187261826..c508636675b 100644 --- a/tests/acceptance/expected-failures-API-on-OCIS-storage.md +++ b/tests/acceptance/expected-failures-API-on-OCIS-storage.md @@ -16,17 +16,17 @@ _ocdav: double-check the webdav property parsing when custom namespaces are used #### [file versions do not report the version author](https://github.com/owncloud/ocis/issues/2914) -- [coreApiVersions/fileVersionAuthor.feature:15](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature#L15) -- [coreApiVersions/fileVersionAuthor.feature:61](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature#L61) -- [coreApiVersions/fileVersionAuthor.feature:93](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature#L93) -- [coreApiVersions/fileVersionAuthor.feature:124](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature#L124) -- [coreApiVersions/fileVersionAuthor.feature:162](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature#L162) -- [coreApiVersions/fileVersionAuthor.feature:194](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature#L194) -- [coreApiVersions/fileVersionAuthor.feature:230](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature#L230) -- [coreApiVersions/fileVersionAuthor.feature:275](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature#L275) -- [coreApiVersions/fileVersionAuthor.feature:357](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature#L357) -- [coreApiVersions/fileVersionAuthor.feature:436](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature#L436) -- [coreApiVersions/fileVersionAuthor.feature:467](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature#L467) +- [coreApiVersions/fileVersionAuthor.feature:14](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature#L14) +- [coreApiVersions/fileVersionAuthor.feature:60](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature#L60) +- [coreApiVersions/fileVersionAuthor.feature:92](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature#L92) +- [coreApiVersions/fileVersionAuthor.feature:123](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature#L123) +- [coreApiVersions/fileVersionAuthor.feature:161](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature#L161) +- [coreApiVersions/fileVersionAuthor.feature:193](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature#L193) +- [coreApiVersions/fileVersionAuthor.feature:229](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature#L229) +- [coreApiVersions/fileVersionAuthor.feature:274](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature#L274) +- [coreApiVersions/fileVersionAuthor.feature:356](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature#L356) +- [coreApiVersions/fileVersionAuthor.feature:435](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature#L435) +- [coreApiVersions/fileVersionAuthor.feature:466](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature#L466) ### Sync @@ -34,8 +34,9 @@ Synchronization features like etag propagation, setting mtime and locking files #### [Uploading an old method chunked file with checksum should fail using new DAV path](https://github.com/owncloud/ocis/issues/2323) -- [coreApiMain/checksums.feature:219](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/checksums.feature#L219) -- [coreApiMain/checksums.feature:220](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/checksums.feature#L220) +- [coreApiMain/checksums.feature:233](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/checksums.feature#L233) +- [coreApiMain/checksums.feature:234](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/checksums.feature#L234) +- [coreApiMain/checksums.feature:235](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/checksums.feature#L235) ### Share @@ -50,14 +51,18 @@ Synchronization features like etag propagation, setting mtime and locking files #### [deleting a file inside a received shared folder is moved to the trash-bin of the sharer not the receiver](https://github.com/owncloud/ocis/issues/1124) -- [coreApiTrashbin/trashbinSharingToShares.feature:53](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L53) - [coreApiTrashbin/trashbinSharingToShares.feature:54](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L54) -- [coreApiTrashbin/trashbinSharingToShares.feature:81](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L81) -- [coreApiTrashbin/trashbinSharingToShares.feature:82](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L82) -- [coreApiTrashbin/trashbinSharingToShares.feature:138](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L138) -- [coreApiTrashbin/trashbinSharingToShares.feature:139](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L139) -- [coreApiTrashbin/trashbinSharingToShares.feature:196](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L196) -- [coreApiTrashbin/trashbinSharingToShares.feature:197](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L197) +- [coreApiTrashbin/trashbinSharingToShares.feature:55](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L55) +- [coreApiTrashbin/trashbinSharingToShares.feature:56](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L56) +- [coreApiTrashbin/trashbinSharingToShares.feature:83](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L83) +- [coreApiTrashbin/trashbinSharingToShares.feature:84](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L84) +- [coreApiTrashbin/trashbinSharingToShares.feature:85](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L85) +- [coreApiTrashbin/trashbinSharingToShares.feature:142](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L142) +- [coreApiTrashbin/trashbinSharingToShares.feature:143](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L143) +- [coreApiTrashbin/trashbinSharingToShares.feature:144](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L144) +- [coreApiTrashbin/trashbinSharingToShares.feature:202](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L202) +- [coreApiTrashbin/trashbinSharingToShares.feature:203](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L203) +- [coreApiTrashbin/trashbinSharingToShares.feature:204](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L204) ### Other @@ -101,8 +106,9 @@ _ocdav: api compatibility, return correct status code_ - [coreApiFavorites/favorites.feature:174](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L174) - [coreApiFavorites/favorites.feature:175](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L175) - [coreApiFavorites/favorites.feature:176](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L176) -- [coreApiFavorites/favoritesSharingToShares.feature:88](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L88) -- [coreApiFavorites/favoritesSharingToShares.feature:89](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L89) +- [coreApiFavorites/favoritesSharingToShares.feature:91](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L91) +- [coreApiFavorites/favoritesSharingToShares.feature:92](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L92) +- [coreApiFavorites/favoritesSharingToShares.feature:93](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L93) #### [WWW-Authenticate header for unauthenticated requests is not clear](https://github.com/owncloud/ocis/issues/2285) @@ -132,12 +138,12 @@ _ocdav: api compatibility, return correct status code_ - [coreApiWebdavUploadTUS/checksums.feature:243](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/checksums.feature#L243) - [coreApiWebdavUploadTUS/checksums.feature:244](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/checksums.feature#L244) - [coreApiWebdavUploadTUS/checksums.feature:245](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/checksums.feature#L245) -- [coreApiWebdavUploadTUS/uploadToShare.feature:250](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L250) -- [coreApiWebdavUploadTUS/uploadToShare.feature:251](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L251) -- [coreApiWebdavUploadTUS/uploadToShare.feature:274](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L274) -- [coreApiWebdavUploadTUS/uploadToShare.feature:275](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L275) -- [coreApiWebdavUploadTUS/uploadToShare.feature:369](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L369) -- [coreApiWebdavUploadTUS/uploadToShare.feature:370](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L370) +- [coreApiWebdavUploadTUS/uploadToShare.feature:255](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L255) +- [coreApiWebdavUploadTUS/uploadToShare.feature:256](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L256) +- [coreApiWebdavUploadTUS/uploadToShare.feature:279](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L279) +- [coreApiWebdavUploadTUS/uploadToShare.feature:280](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L280) +- [coreApiWebdavUploadTUS/uploadToShare.feature:375](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L375) +- [coreApiWebdavUploadTUS/uploadToShare.feature:376](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L376) #### [Renaming resource to banned name is allowed in spaces webdav](https://github.com/owncloud/ocis/issues/3099) @@ -148,7 +154,7 @@ _ocdav: api compatibility, return correct status code_ #### [Trying to delete other user's trashbin item returns 409 for spaces path instead of 404](https://github.com/owncloud/ocis/issues/9791) -- [coreApiTrashbin/trashbinDelete.feature:92](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinDelete.feature#L92) +- [coreApiTrashbin/trashbinDelete.feature:97](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinDelete.feature#L97) #### [MOVE a file into same folder with same name returns 404 instead of 403](https://github.com/owncloud/ocis/issues/1976) @@ -158,15 +164,16 @@ _ocdav: api compatibility, return correct status code_ - [coreApiWebdavMove1/moveFolder.feature:217](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove1/moveFolder.feature#L217) - [coreApiWebdavMove1/moveFolder.feature:218](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove1/moveFolder.feature#L218) - [coreApiWebdavMove1/moveFolder.feature:219](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove1/moveFolder.feature#L219) -- [coreApiWebdavMove2/moveShareOnOcis.feature:307](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature#L307) -- [coreApiWebdavMove2/moveShareOnOcis.feature:310](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature#L310) +- [coreApiWebdavMove2/moveShareOnOcis.feature:334](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature#L334) +- [coreApiWebdavMove2/moveShareOnOcis.feature:337](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature#L337) +- [coreApiWebdavMove2/moveShareOnOcis.feature:340](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature#L340) #### [COPY file/folder to same name is possible (but 500 code error for folder with spaces path)](https://github.com/owncloud/ocis/issues/8711) - [coreApiSharePublicLink2/copyFromPublicLink.feature:198](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink2/copyFromPublicLink.feature#L198) -- [coreApiWebdavProperties/copyFile.feature:1070](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L1070) -- [coreApiWebdavProperties/copyFile.feature:1071](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L1071) -- [coreApiWebdavProperties/copyFile.feature:1072](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L1072) +- [coreApiWebdavProperties/copyFile.feature:1094](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L1094) +- [coreApiWebdavProperties/copyFile.feature:1095](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L1095) +- [coreApiWebdavProperties/copyFile.feature:1096](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L1096) #### [same href in REPORT request for all dav-path-version](https://github.com/owncloud/ocis/issues/7060) @@ -187,7 +194,7 @@ _ocdav: api compatibility, return correct status code_ #### [Trying to restore personal file to file of share received folder returns 403 but the share file is deleted (new dav path)](https://github.com/owncloud/ocis/issues/10356) -- [coreApiTrashbin/trashbinSharingToShares.feature:271](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L271) +- [coreApiTrashbin/trashbinSharingToShares.feature:281](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L281) ### Won't fix diff --git a/tests/acceptance/expected-failures-without-remotephp.md b/tests/acceptance/expected-failures-without-remotephp.md index 1cae79f62fd..aba44ec693d 100644 --- a/tests/acceptance/expected-failures-without-remotephp.md +++ b/tests/acceptance/expected-failures-without-remotephp.md @@ -8,6 +8,8 @@ - [apiContract/spacesReport.feature:34](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiContract/spacesReport.feature#L34) - [apiContract/spacesReport.feature:53](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiContract/spacesReport.feature#L53) - [apiContract/spacesReport.feature:71](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiContract/spacesReport.feature#L71) +- [apiContract/spacesSharesReport.feature:48](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiContract/spacesSharesReport.feature#L48) +- [apiContract/spacesSharesReport.feature:78](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiContract/spacesSharesReport.feature#L78) - [apiSearch1/dateSearch.feature:19](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSearch1/dateSearch.feature#L19) - [apiSearch1/dateSearch.feature:39](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSearch1/dateSearch.feature#L39) - [apiSearch1/dateSearch.feature:40](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSearch1/dateSearch.feature#L40) diff --git a/tests/acceptance/features/apiAccountsHashDifficulty/uploadFile.feature b/tests/acceptance/features/apiAccountsHashDifficulty/uploadFile.feature index 04232a2bea2..71c5d580e91 100644 --- a/tests/acceptance/features/apiAccountsHashDifficulty/uploadFile.feature +++ b/tests/acceptance/features/apiAccountsHashDifficulty/uploadFile.feature @@ -18,5 +18,7 @@ Feature: upload file | ocs-api-version | dav-path-version | | 1 | old | | 1 | new | + | 1 | spaces | | 2 | old | | 2 | new | + | 2 | spaces | diff --git a/tests/acceptance/features/apiAccountsHashDifficulty/webDavPUTAuthInvalid.feature b/tests/acceptance/features/apiAccountsHashDifficulty/webDavPUTAuthInvalid.feature index d7c2afe672d..53b9d341177 100644 --- a/tests/acceptance/features/apiAccountsHashDifficulty/webDavPUTAuthInvalid.feature +++ b/tests/acceptance/features/apiAccountsHashDifficulty/webDavPUTAuthInvalid.feature @@ -14,7 +14,7 @@ Feature: attempt to PUT files with invalid password Scenario: send PUT requests to webDav endpoints as normal user with wrong password When user "Alice" requests these endpoints with "PUT" including body "doesnotmatter" using password "invalid" about user "Alice" - | endpoint | + | endpoint | | /webdav/textfile0.txt | | /dav/files/%username%/textfile0.txt | | /webdav/PARENT | @@ -25,7 +25,7 @@ Feature: attempt to PUT files with invalid password Scenario: send PUT requests to webDav endpoints as normal user with no password When user "Alice" requests these endpoints with "PUT" including body "doesnotmatter" using password "" about user "Alice" - | endpoint | + | endpoint | | /webdav/textfile0.txt | | /dav/files/%username%/textfile0.txt | | /webdav/PARENT | diff --git a/tests/acceptance/features/apiAntivirus/antivirus.feature b/tests/acceptance/features/apiAntivirus/antivirus.feature index 0080827abe7..d6a552b2597 100644 --- a/tests/acceptance/features/apiAntivirus/antivirus.feature +++ b/tests/acceptance/features/apiAntivirus/antivirus.feature @@ -89,6 +89,7 @@ Feature: antivirus Examples: | dav-path-version | | old | + | new | | spaces | @issue-10331 @@ -168,6 +169,8 @@ Feature: antivirus | old | eicar_com.zip | virusFile2.zip | | new | eicar.com | virusFile1.txt | | new | eicar_com.zip | virusFile2.zip | + | spaces | eicar.com | virusFile1.txt | + | spaces | eicar_com.zip | virusFile2.zip | Scenario Outline: upload a file with virus to a user share using spaces dav endpoint @@ -220,6 +223,8 @@ Feature: antivirus | old | eicar_com.zip | virusFile2.zip | | new | eicar.com | virusFile1.txt | | new | eicar_com.zip | virusFile2.zip | + | spaces | eicar.com | virusFile1.txt | + | spaces | eicar_com.zip | virusFile2.zip | Scenario Outline: upload a file with virus to a group share using spaces dav endpoint @@ -428,6 +433,7 @@ Feature: antivirus | dav-path-version | | old | | new | + | spaces | Scenario: try to overwrite a file with the virus content in group share using spaces dav endpoint @@ -491,6 +497,7 @@ Feature: antivirus | dav-path-version | | old | | new | + | spaces | Scenario: try to overwrite a file with the virus content in user share using spaces dav endpoint diff --git a/tests/acceptance/features/apiContract/sharesReport.feature b/tests/acceptance/features/apiContract/sharesReport.feature index 043de121f45..5ed3af9d9fd 100644 --- a/tests/acceptance/features/apiContract/sharesReport.feature +++ b/tests/acceptance/features/apiContract/sharesReport.feature @@ -39,6 +39,7 @@ Feature: REPORT request to Shares space | dav-path-version | | old | | new | + | spaces | Scenario Outline: check the REPORT response of the found file @@ -62,6 +63,7 @@ Feature: REPORT request to Shares space | dav-path-version | | old | | new | + | spaces | Scenario Outline: search for the shared folder when share is not accepted @@ -83,6 +85,7 @@ Feature: REPORT request to Shares space | dav-path-version | | old | | new | + | spaces | @issue-9607 @issue-10329 @env-config Scenario Outline: check the REPORT response of a folder shared with secure viewer role diff --git a/tests/acceptance/features/apiContract/spacesSharesReport.feature b/tests/acceptance/features/apiContract/spacesSharesReport.feature index fc05b63e216..fe60376c46e 100644 --- a/tests/acceptance/features/apiContract/spacesSharesReport.feature +++ b/tests/acceptance/features/apiContract/spacesSharesReport.feature @@ -16,11 +16,11 @@ Feature: Report test And user "Alice" has created a space "find data" with the default quota using the Graph API And user "Alice" has created a folder "folderMain/SubFolder1/subFOLDER2" in space "find data" And user "Alice" has uploaded a file inside space "find data" with content "some content" to "folderMain/SubFolder1/subFOLDER2/insideTheFolder.txt" - And using new DAV path - Scenario: check the response of the found folder - Given user "Alice" has sent the following resource share invitation: + Scenario Outline: check the response of the found folder + Given using DAV path + And user "Alice" has sent the following resource share invitation: | resource | folderMain | | space | find data | | sharee | Brian | @@ -41,10 +41,16 @@ Feature: Report test | oc:permissions | S | | oc:size | 12 | | oc:remote-item-id | %file_id_pattern% | + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: check the response of the found file - Given user "Alice" has sent the following resource share invitation: + Scenario Outline: check the response of the found file + Given using DAV path + And user "Alice" has sent the following resource share invitation: | resource | folderMain | | space | find data | | sharee | Brian | @@ -65,10 +71,16 @@ Feature: Report test | oc:permissions | SD | | d:getcontentlength | 12 | | oc:remote-item-id | %file_id_pattern% | + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: search for the shared folder when the share is not accepted - Given user "Brian" has disabled auto-accepting + Scenario Outline: search for the shared folder when the share is not accepted + Given using DAV path + And user "Brian" has disabled auto-accepting And user "Alice" has sent the following resource share invitation: | resource | folderMain | | space | find data | @@ -80,3 +92,8 @@ Feature: Report test And the following headers should match these regular expressions | X-Request-Id | %request_id_pattern% | And the search result should contain "0" entries + Examples: + | dav-path-version | + | old | + | new | + | spaces | diff --git a/tests/acceptance/features/apiCors/cors.feature b/tests/acceptance/features/apiCors/cors.feature index 6fcce1fd9e6..eb63930da3b 100644 --- a/tests/acceptance/features/apiCors/cors.feature +++ b/tests/acceptance/features/apiCors/cors.feature @@ -83,8 +83,8 @@ Feature: CORS headers | Access-Control-Allow-Origin | https://aphno.badal | @issue-8231 - Scenario: CORS headers should be returned when setting CORS domain sending origin header in the Webdav api - Given using spaces DAV path + Scenario Outline: CORS headers should be returned when setting CORS domain sending origin header in the Webdav api + Given using DAV path When user "Alice" sends PROPFIND request to space "Alice Hansen" with headers using the WebDAV API | header | value | | Origin | https://aphno.badal | @@ -92,6 +92,11 @@ Feature: CORS headers And the following headers should be set | header | value | | Access-Control-Allow-Origin | https://aphno.badal | + Examples: + | dav-path-version | + | old | + | new | + | spaces | Scenario: CORS headers should be returned when setting CORS domain sending origin header in the settings api diff --git a/tests/acceptance/features/apiDepthInfinity/propfind.feature b/tests/acceptance/features/apiDepthInfinity/propfind.feature index 5d4901a25a9..3ffd5828a15 100644 --- a/tests/acceptance/features/apiDepthInfinity/propfind.feature +++ b/tests/acceptance/features/apiDepthInfinity/propfind.feature @@ -72,8 +72,7 @@ Feature: PROPFIND with depth:infinity @issue-10331 Scenario: get the list of resources in a folder shared through public link with depth infinity - Given using new DAV path - And using SharingNG + Given using SharingNG And the following configs have been set: | config | value | | OCDAV_ALLOW_PROPFIND_DEPTH_INFINITY | true | @@ -118,16 +117,17 @@ Feature: PROPFIND with depth:infinity | simple-folder/simple-folder1/simple-folder2/welcome.txt | Examples: | dav-path-version | + | old | | new | | spaces | @issue-10331 - Scenario: get the list of resources in a folder shared through public link with depth infinity when depth infinity is not allowed + Scenario Outline: get the list of resources in a folder shared through public link with depth infinity when depth infinity is not allowed Given the following configs have been set: | config | value | | OCDAV_ALLOW_PROPFIND_DEPTH_INFINITY | false | | OCIS_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD | false | - And using new DAV path + And using DAV path And using SharingNG And user "Alice" has created the following resource link share: | resource | simple-folder | @@ -135,6 +135,10 @@ Feature: PROPFIND with depth:infinity | permissionsRole | view | When the public lists the resources in the last created public link with depth "infinity" using the WebDAV API Then the HTTP status code should be "400" + Examples: + | dav-path-version | + | new | + | spaces | Scenario Outline: get the list of files in the trashbin with depth infinity when depth infinity is not allowed @@ -149,5 +153,6 @@ Feature: PROPFIND with depth:infinity Then the HTTP status code should be "400" Examples: | dav-path-version | + | old | | new | | spaces | diff --git a/tests/acceptance/features/apiGraph/enforcePasswordPublicLink.feature b/tests/acceptance/features/apiGraph/enforcePasswordPublicLink.feature index c26841fbfb0..fc1a13d61f0 100644 --- a/tests/acceptance/features/apiGraph/enforcePasswordPublicLink.feature +++ b/tests/acceptance/features/apiGraph/enforcePasswordPublicLink.feature @@ -5,7 +5,7 @@ Feature: enforce password on public link So that the password is required to access the contents of the link Password requirements. set by default: - | OCIS_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD | true | + | OCIS_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD | true | | OCIS_PASSWORD_POLICY_MIN_CHARACTERS | 8 | | OCIS_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS | 1 | | OCIS_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS | 1 | diff --git a/tests/acceptance/features/apiGraph/unassignRole.feature b/tests/acceptance/features/apiGraph/unassignRole.feature index ef4187ec99e..7d9cf013f5b 100644 --- a/tests/acceptance/features/apiGraph/unassignRole.feature +++ b/tests/acceptance/features/apiGraph/unassignRole.feature @@ -8,7 +8,8 @@ Feature: unassign user role Scenario Outline: admin user unassigns the role of another user - Given user "Brian" has been created with default attributes and without skeleton files + Given using DAV path + And user "Brian" has been created with default attributes and without skeleton files And the administrator has assigned the role "Admin" to user "Alice" using the Graph API And the administrator has assigned the role "" to user "Brian" using the Graph API When user "Alice" unassigns the role of user "Brian" using the Graph API @@ -17,11 +18,19 @@ Feature: unassign user role When user "Brian" uploads file with content "this step will assign the role to default" to "assign-to-default.txt" using the WebDAV API And user "Brian" should have the role "User" assigned Examples: - | user-role | - | Admin | - | Space Admin | - | User | - | User Light | + | user-role | dav-path-version | + | Admin | old | + | Space Admin | old | + | User | old | + | User Light | old | + | Admin | new | + | Space Admin | new | + | User | new | + | User Light | new | + | Admin | spaces | + | Space Admin | spaces | + | User | spaces | + | User Light | spaces | @issue-6035 Scenario: admin user tries to unassign his/her own role diff --git a/tests/acceptance/features/apiSharingNg1/listPermissions.feature b/tests/acceptance/features/apiSharingNg1/listPermissions.feature index 26846211230..a1ecc27edc1 100644 --- a/tests/acceptance/features/apiSharingNg1/listPermissions.feature +++ b/tests/acceptance/features/apiSharingNg1/listPermissions.feature @@ -167,8 +167,7 @@ Feature: List a sharing permissions Scenario: user lists permissions of a project space - Given using spaces DAV path - And user "Brian" has been created with default attributes and without skeleton files + Given user "Brian" has been created with default attributes and without skeleton files And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And user "Alice" has created a space "new-space" with the default quota using the Graph API When user "Alice" lists the permissions of space "new-space" using permissions endpoint of the Graph API @@ -290,8 +289,7 @@ Feature: List a sharing permissions @issues-8352 Scenario Outline: sharer lists permissions of a shared project space - Given using spaces DAV path - And user "Brian" has been created with default attributes and without skeleton files + Given user "Brian" has been created with default attributes and without skeleton files And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And user "Alice" has created a space "new-space" with the default quota using the Graph API And user "Alice" has sent the following space share invitation: @@ -1042,8 +1040,7 @@ Feature: List a sharing permissions Scenario: try to lists the permissions of a Personal drive using root endpoint - Given using spaces DAV path - And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API + Given the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And user "Alice" has created a space "new-space" with the default quota using the Graph API When user "Alice" tries to list the permissions of space "Personal" using root endpoint of the Graph API Then the HTTP status code should be "200" @@ -1164,8 +1161,7 @@ Feature: List a sharing permissions Scenario: try to lists the permissions of a Shares drive using root endpoint - Given using spaces DAV path - And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API + Given the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And user "Alice" has created a space "new-space" with the default quota using the Graph API When user "Alice" tries to list the permissions of space "Shares" using root endpoint of the Graph API Then the HTTP status code should be "200" @@ -1188,8 +1184,7 @@ Feature: List a sharing permissions Scenario: space admin invites to a project space with all allowed roles - Given using spaces DAV path - And the administrator has assigned the role "Admin" to user "Alice" using the Graph API + Given the administrator has assigned the role "Admin" to user "Alice" using the Graph API And user "Alice" has created a space "new-space" with the default quota using the Graph API And user "Brian" has been created with default attributes and without skeleton files When user "Alice" lists the permissions of space "new-space" using permissions endpoint of the Graph API @@ -1216,8 +1211,7 @@ Feature: List a sharing permissions Scenario: non-member user tries to list the permissions of a project space using permissions endpoint - Given using spaces DAV path - And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API + Given the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And user "Brian" has been created with default attributes and without skeleton files And user "Alice" has created a space "new-space" with the default quota using the Graph API When user "Brian" tries to list the permissions of space "new-space" owned by "Alice" using permissions endpoint of the Graph API @@ -1273,8 +1267,7 @@ Feature: List a sharing permissions Scenario: try to list the permissions of other user's personal space - Given using spaces DAV path - And user "Brian" has been created with default attributes and without skeleton files + Given user "Brian" has been created with default attributes and without skeleton files When user "Brian" tries to list the permissions of space "Personal" owned by "Alice" using permissions endpoint of the Graph API Then the HTTP status code should be "404" And the JSON data of the response should match @@ -1313,8 +1306,7 @@ Feature: List a sharing permissions Scenario Outline: sharer lists permissions of a shared project space using root endpoint - Given using spaces DAV path - And user "Brian" has been created with default attributes and without skeleton files + Given user "Brian" has been created with default attributes and without skeleton files And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And user "Alice" has created a space "new-space" with the default quota using the Graph API And user "Alice" has sent the following space share invitation: @@ -1590,8 +1582,7 @@ Feature: List a sharing permissions Scenario: user sends share invitation with all allowed roles for a project space using root endpoint - Given using spaces DAV path - And the administrator has assigned the role "Admin" to user "Alice" using the Graph API + Given the administrator has assigned the role "Admin" to user "Alice" using the Graph API And user "Alice" has created a space "new-space" with the default quota using the Graph API And user "Brian" has been created with default attributes and without skeleton files When user "Alice" lists the permissions of space "new-space" using root endpoint of the Graph API @@ -1603,8 +1594,7 @@ Feature: List a sharing permissions @issue-9151 Scenario: non-member user tries to list the permissions of a project space using root endpoint - Given using spaces DAV path - And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API + Given the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And user "Brian" has been created with default attributes and without skeleton files And user "Alice" has created a space "new-space" with the default quota using the Graph API When user "Brian" tries to list the permissions of space "new-space" owned by "Alice" using root endpoint of the Graph API @@ -2391,4 +2381,4 @@ Feature: List a sharing permissions } } } - """ \ No newline at end of file + """ diff --git a/tests/acceptance/features/coreApiAuth/webDavMOVEAuth.feature b/tests/acceptance/features/coreApiAuth/webDavMOVEAuth.feature index 9f57b14fa5a..3ea9120aaf3 100644 --- a/tests/acceptance/features/coreApiAuth/webDavMOVEAuth.feature +++ b/tests/acceptance/features/coreApiAuth/webDavMOVEAuth.feature @@ -12,7 +12,6 @@ Feature: MOVE file/folder And user "Alice" has created folder "/PARENT" And user "Alice" has created folder "/FOLDER" And user "Alice" has uploaded file with content "some data" to "/PARENT/parent.txt" - And using new DAV path @smokeTest Scenario: send MOVE requests to webDav endpoints as normal user with wrong password diff --git a/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature b/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature index 8e64893be3b..88e0bc70a23 100644 --- a/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature +++ b/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature @@ -27,6 +27,7 @@ Feature: favorite | dav-path-version | | old | | new | + | spaces | Scenario Outline: favorite a folder inside of a received share @@ -47,6 +48,7 @@ Feature: favorite | dav-path-version | | old | | new | + | spaces | Scenario Outline: favorite a received share itself @@ -66,6 +68,7 @@ Feature: favorite | dav-path-version | | old | | new | + | spaces | @issue-1228 Scenario Outline: moving a favorite file out of a share keeps favorite state @@ -87,6 +90,7 @@ Feature: favorite | dav-path-version | | old | | new | + | spaces | Scenario Outline: sharee file favorite state should not change the favorite state of sharer @@ -107,3 +111,4 @@ Feature: favorite | dav-path-version | | old | | new | + | spaces | diff --git a/tests/acceptance/features/coreApiMain/checksums.feature b/tests/acceptance/features/coreApiMain/checksums.feature index 7d07a5a6dba..0fff86fe0c4 100644 --- a/tests/acceptance/features/coreApiMain/checksums.feature +++ b/tests/acceptance/features/coreApiMain/checksums.feature @@ -81,6 +81,7 @@ Feature: checksums Examples: | dav-path-version | | old | + | new | | spaces | @issue-1343 @@ -95,6 +96,7 @@ Feature: checksums Examples: | dav-path-version | | old | + | new | | spaces | @@ -120,6 +122,7 @@ Feature: checksums And as user "Alice" the webdav checksum of "/myChecksumFileCopy.txt" via propfind should match "SHA1:3ee962b839762adb0ad8ba6023a4690be478de6f MD5:d70b40f177b14b470d1756a3c12b963a ADLER32:8ae90960" Examples: | dav-path-version | + | old | | new | | spaces | @@ -132,12 +135,13 @@ Feature: checksums And the header checksum when user "Alice" downloads file "/myChecksumFileCopy.txt" using the WebDAV API should match "SHA1:3ee962b839762adb0ad8ba6023a4690be478de6f" Examples: | dav-path-version | + | old | | new | | spaces | @issue-1291 @skipOnReva - Scenario: sharing a file with checksum should return the checksum in the propfind using new DAV path - Given using new DAV path + Scenario Outline: sharing a file with checksum should return the checksum in the propfind using new DAV path + Given using DAV path And user "Brian" has been created with default attributes and without skeleton files And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "/myChecksumFile.txt" with checksum "MD5:d70b40f177b14b470d1756a3c12b963a" And user "Alice" has sent the following resource share invitation: @@ -150,10 +154,15 @@ Feature: checksums When user "Brian" requests the checksum of "/Shares/myChecksumFile.txt" via propfind Then the HTTP status code should be "207" And the webdav checksum should match "SHA1:3ee962b839762adb0ad8ba6023a4690be478de6f MD5:d70b40f177b14b470d1756a3c12b963a ADLER32:8ae90960" + Examples: + | dav-path-version | + | old | + | new | + | spaces | @issue-1291 @skipOnReva - Scenario: modifying a shared file should return correct checksum in the propfind using new DAV path - Given using new DAV path + Scenario Outline: modifying a shared file should return correct checksum in the propfind using new DAV path + Given using DAV path And user "Brian" has been created with default attributes and without skeleton files And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "/myChecksumFile.txt" with checksum "MD5:d70b40f177b14b470d1756a3c12b963a" And user "Alice" has sent the following resource share invitation: @@ -166,6 +175,11 @@ Feature: checksums When user "Brian" uploads file with checksum "SHA1:ce5582148c6f0c1282335b87df5ed4be4b781399" and content "Some Text" to "/Shares/myChecksumFile.txt" using the WebDAV API Then the HTTP status code should be "204" And as user "Alice" the webdav checksum of "/myChecksumFile.txt" via propfind should match "SHA1:ce5582148c6f0c1282335b87df5ed4be4b781399 MD5:56e57920c3c8c727bfe7a5288cdf61c4 ADLER32:1048035a" + Examples: + | dav-path-version | + | old | + | new | + | spaces | @issue-1315 Scenario Outline: upload a file where checksum does not match @@ -216,6 +230,7 @@ Feature: checksums | /myChecksumFile.txt | Examples: | dav-path-version | + | old | | new | | spaces | diff --git a/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature b/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature index 14befaef59e..64e7f083c39 100644 --- a/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature +++ b/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature @@ -505,8 +505,9 @@ Feature: sharing | 2 | 200 | @issue-764 @issue-7555 - Scenario: share a file by multiple channels and download from sub-folder and direct file share - Given these users have been created with default attributes and without skeleton files: + Scenario Outline: share a file by multiple channels and download from sub-folder and direct file share + Given using DAV path + And these users have been created with default attributes and without skeleton files: | username | | Brian | | Carol | @@ -542,6 +543,10 @@ Feature: sharing | /Shares/textfile0.txt | And the content of file "/Shares/common/sub/textfile0.txt" for user "Brian" should be "BLABLABLA" plus end-of-line And the content of file "/common/sub/textfile0.txt" for user "Alice" should be "BLABLABLA" plus end-of-line + Examples: + | dav-path-version | + | old | + | new | @smokeTest Scenario Outline: creating a share of a renamed file diff --git a/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature b/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature index ee1d113c143..3e941db2c6f 100644 --- a/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature +++ b/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature @@ -56,8 +56,9 @@ Feature: sharing | 2 | 200 | - Scenario: orphaned shares - Given using OCS API version "1" + Scenario Outline: orphaned shares + Given using DAV path + And using OCS API version "1" And user "Alice" has created folder "/common" And user "Alice" has created folder "/common/sub" And user "Alice" has sent the following resource share invitation: @@ -70,10 +71,16 @@ Feature: sharing Then the HTTP status code should be "204" And as "Brian" folder "/Shares/sub" should not exist And as "Brian" folder "/sub" should not exist + Examples: + | dav-path-version | + | old | + | new | + | spaces | @smokeTest - Scenario: deleting a file out of a share as recipient creates a backup for the owner - Given using OCS API version "1" + Scenario Outline: deleting a file out of a share as recipient creates a backup for the owner + Given using DAV path + And using OCS API version "1" And user "Alice" has created folder "/shared" And user "Alice" has moved file "/textfile0.txt" to "/shared/shared_file.txt" And user "Alice" has sent the following resource share invitation: @@ -88,10 +95,16 @@ Feature: sharing And as "Alice" file "/shared/shared_file.txt" should not exist And as "Alice" file "/shared_file.txt" should exist in the trashbin And as "Brian" the file with original path "/shared_file.txt" should not exist in the trashbin + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: deleting a folder out of a share as recipient creates a backup for the owner - Given using OCS API version "1" + Scenario Outline: deleting a folder out of a share as recipient creates a backup for the owner + Given using DAV path + And using OCS API version "1" And user "Alice" has created folder "/shared" And user "Alice" has created folder "/shared/sub" And user "Alice" has moved file "/textfile0.txt" to "/shared/sub/shared_file.txt" @@ -109,6 +122,11 @@ Feature: sharing And as "Alice" file "/sub/shared_file.txt" should exist in the trashbin And as "Brian" the folder with original path "/sub" should not exist in the trashbin And as "Brian" the file with original path "/sub/shared_file.txt" should not exist in the trashbin + Examples: + | dav-path-version | + | old | + | new | + | spaces | @smokeTest Scenario: unshare from self @@ -136,8 +154,9 @@ Feature: sharing And the etag of element "/PARENT" of user "Carol" should not have changed - Scenario: sharee of a read-only share folder tries to delete the shared folder - Given using OCS API version "1" + Scenario Outline: sharee of a read-only share folder tries to delete the shared folder + Given using DAV path + And using OCS API version "1" And user "Alice" has created folder "/shared" And user "Alice" has moved file "/textfile0.txt" to "/shared/shared_file.txt" And user "Alice" has sent the following resource share invitation: @@ -150,10 +169,16 @@ Feature: sharing Then the HTTP status code should be "403" And as "Alice" file "/shared/shared_file.txt" should exist And as "Brian" file "/Shares/shared/shared_file.txt" should exist + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: sharee of a upload-only shared folder tries to delete a file in the shared folder - Given using OCS API version "1" + Scenario Outline: sharee of a upload-only shared folder tries to delete a file in the shared folder + Given using DAV path + And using OCS API version "1" And user "Alice" has created folder "/shared" And user "Alice" has moved file "/textfile0.txt" to "/shared/shared_file.txt" And user "Alice" has sent the following resource share invitation: @@ -166,10 +191,16 @@ Feature: sharing Then the HTTP status code should be "403" And as "Alice" file "/shared/shared_file.txt" should exist And as "Brian" file "/Shares/shared/shared_file.txt" should exist + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: sharee of an upload-only shared folder tries to delete their file in the folder - Given using OCS API version "1" + Scenario Outline: sharee of an upload-only shared folder tries to delete their file in the folder + Given using DAV path + And using OCS API version "1" And user "Alice" has created folder "/shared" And user "Alice" has sent the following resource share invitation: | resource | shared | @@ -182,6 +213,11 @@ Feature: sharing Then the HTTP status code should be "403" And as "Alice" file "/shared/textfile.txt" should exist And as "Brian" file "/Shares/shared/textfile.txt" should exist + Examples: + | dav-path-version | + | old | + | new | + | spaces | Scenario Outline: group share recipient tries to delete the share diff --git a/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature b/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature index 0778d8877be..c7be05996c7 100644 --- a/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature +++ b/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature @@ -213,8 +213,9 @@ Feature: accept/decline shares coming from internal users | /textfile0.txt | - Scenario: deleting shares in pending state - Given user "Brian" has disabled auto-accepting + Scenario Outline: deleting shares in pending state + Given using DAV path + And user "Brian" has disabled auto-accepting And user "Alice" has sent the following resource share invitation: | resource | PARENT | | space | Personal | @@ -231,6 +232,11 @@ Feature: accept/decline shares coming from internal users And user "Alice" deletes file "/textfile0.txt" using the WebDAV API Then the HTTP status code of responses on all endpoints should be "204" And the sharing API should report that no shares are shared with user "Brian" + Examples: + | dav-path-version | + | old | + | new | + | spaces | @issue-2540 Scenario: only one user in a group accepts a share @@ -533,8 +539,9 @@ Feature: accept/decline shares coming from internal users And the content of file "/Shares/PARENT/abc.txt" for user "David" should be "uploaded content" @issue-1123 @issue-2540 - Scenario: deleting a share accepted file and folder - Given user "Brian" has disabled auto-accepting + Scenario Outline: deleting a share accepted file and folder + Given using DAV path + And user "Brian" has disabled auto-accepting And user "Alice" has sent the following resource share invitation: | resource | PARENT | | space | Personal | @@ -547,10 +554,15 @@ Feature: accept/decline shares coming from internal users And the sharing API should report to user "Brian" that these shares are in the declined state | path | | /PARENT | + Examples: + | dav-path-version | + | old | + | new | @issue-765 @issue-2131 - Scenario: shares exist after restoring already shared file to a previous version - Given user "Brian" has disabled auto-accepting + Scenario Outline: shares exist after restoring already shared file to a previous version + Given using DAV path + And user "Brian" has disabled auto-accepting And user "Alice" has uploaded file with content "Test Content." to "/toShareFile.txt" And user "Alice" has uploaded file with content "Content Test Updated." to "/toShareFile.txt" And user "Alice" has sent the following resource share invitation: @@ -564,6 +576,11 @@ Feature: accept/decline shares coming from internal users Then the HTTP status code should be "204" And the content of file "/toShareFile.txt" for user "Alice" should be "Test Content." And the content of file "/Shares/toShareFile.txt" for user "Brian" should be "Test Content." + Examples: + | dav-path-version | + | old | + | new | + | spaces | @issue-2131 Scenario: user receives multiple group shares for matching file and folder name diff --git a/tests/acceptance/features/coreApiShareManagementToShares/mergeShare.feature b/tests/acceptance/features/coreApiShareManagementToShares/mergeShare.feature index ad06b065c84..513d6f9616a 100644 --- a/tests/acceptance/features/coreApiShareManagementToShares/mergeShare.feature +++ b/tests/acceptance/features/coreApiShareManagementToShares/mergeShare.feature @@ -109,8 +109,9 @@ Feature: sharing And as "Brian" folder "/Shares/merge-test-inside-twogroups-perms (2)" should not exist - Scenario: merging shares for recipient when shared from outside with group then user and recipient renames in between - Given user "Alice" has created folder "/merge-test-outside-groups-renamebeforesecondshare" + Scenario Outline: merging shares for recipient when shared from outside with group then user and recipient renames in between + Given using DAV path + And user "Alice" has created folder "/merge-test-outside-groups-renamebeforesecondshare" # Section 1: Brian receives and accepts the group share from Alice and moves and renames it out of the "Shares" folder When user "Alice" shares folder "/merge-test-outside-groups-renamebeforesecondshare" with group "grp1" using the sharing API And user "Brian" accepts share "/merge-test-outside-groups-renamebeforesecondshare" offered by user "Alice" using the sharing API @@ -126,10 +127,16 @@ Feature: sharing And the HTTP status code of responses on all endpoints should be "200" And as "Brian" folder "/Shares/merge-test-outside-groups-renamebeforesecondshare" should exist But as "Brian" folder "/merge-test-outside-groups-renamebeforesecondshare-renamed" should not exist + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: merging shares for recipient when shared from outside with user then group and recipient renames in between - Given user "Alice" has created folder "/merge-test-outside-groups-renamebeforesecondshare" + Scenario Outline: merging shares for recipient when shared from outside with user then group and recipient renames in between + Given using DAV path + And user "Alice" has created folder "/merge-test-outside-groups-renamebeforesecondshare" # Section 1: Brian receives and accepts the user share from Alice and moves and renames it out of the "Shares" folder When user "Alice" shares folder "/merge-test-outside-groups-renamebeforesecondshare" with user "Brian" using the sharing API And user "Brian" accepts share "/merge-test-outside-groups-renamebeforesecondshare" offered by user "Alice" using the sharing API @@ -146,3 +153,8 @@ Feature: sharing And the HTTP status code of responses on all endpoints should be "200" And as "Brian" folder "/Shares/merge-test-outside-groups-renamebeforesecondshare" should exist But as "Brian" folder "/merge-test-outside-groups-renamebeforesecondshare-renamed" should not exist + Examples: + | dav-path-version | + | old | + | new | + | spaces | diff --git a/tests/acceptance/features/coreApiShareManagementToShares/moveReceivedShare.feature b/tests/acceptance/features/coreApiShareManagementToShares/moveReceivedShare.feature index fb608c57244..b303d27cd31 100644 --- a/tests/acceptance/features/coreApiShareManagementToShares/moveReceivedShare.feature +++ b/tests/acceptance/features/coreApiShareManagementToShares/moveReceivedShare.feature @@ -173,8 +173,9 @@ Feature: sharing | /dav/spaces/%shares_drive_id% | /dav/spaces/%spaceid% | Secure Viewer | - Scenario: keep group share when the one user renames the share and the user is deleted - Given group "grp1" has been created + Scenario Outline: keep group share when the one user renames the share and the user is deleted + Given using DAV path + And group "grp1" has been created And user "Brian" has been added to group "grp1" And user "Carol" has been added to group "grp1" And user "Alice" has created folder "/TMP" @@ -189,10 +190,16 @@ Feature: sharing And the administrator deletes user "Carol" using the provisioning API Then the HTTP status code of responses on each endpoint should be "201, 204" respectively And as "Alice" file "Shares/TMP" should not exist + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: receiver renames a received share with read, change permissions inside the Shares folder - Given user "Alice" has created folder "folderToShare" + Scenario Outline: receiver renames a received share with read, change permissions inside the Shares folder + Given using DAV path + And user "Alice" has created folder "folderToShare" And user "Alice" has uploaded file with content "thisIsAFileInsideTheSharedFolder" to "/folderToShare/fileInside" And user "Alice" has sent the following resource share invitation: | resource | folderToShare | @@ -210,10 +217,16 @@ Feature: sharing And as "Brian" file "/Shares/myFolder/renamedFile" should exist And as "Alice" file "/folderToShare/renamedFile" should exist But as "Alice" file "/folderToShare/fileInside" should not exist + Examples: + | dav-path-version | + | old | + | new | + | spaces | @env-config Scenario Outline: receiver tries to rename a received share with read permissions inside the Shares folder - Given user "Alice" has created folder "folderToShare" + Given using DAV path + And user "Alice" has created folder "folderToShare" And the administrator has enabled the permissions role "Secure Viewer" And user "Alice" has created folder "folderToShare/folderInside" And user "Alice" has uploaded file with content "thisIsAFileInsideTheSharedFolder" to "/folderToShare/fileInside" @@ -237,13 +250,18 @@ Feature: sharing And as "Brian" folder "/Shares/myFolder/renamedFolder" should not exist But as "Brian" folder "Shares/myFolder/folderInside" should exist Examples: - | permissions-role | - | Viewer | - | Secure Viewer | + | permissions-role | dav-path-version | + | Viewer | old | + | Secure Viewer | old | + | Viewer | new | + | Secure Viewer | new | + | Viewer | spaces | + | Secure Viewer | spaces | - Scenario: receiver renames a received folder share to a different name on the same folder - Given user "Alice" has created folder "PARENT" + Scenario Outline: receiver renames a received folder share to a different name on the same folder + Given using DAV path + And user "Alice" has created folder "PARENT" And user "Alice" has sent the following resource share invitation: | resource | PARENT | | space | Personal | @@ -255,10 +273,16 @@ Feature: sharing Then the HTTP status code should be "201" And as "Brian" folder "/Shares/myFolder" should exist But as "Alice" folder "myFolder" should not exist + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: receiver renames a received file share to different name on the same folder - Given user "Alice" has uploaded file "filesForUpload/textfile.txt" to "fileToShare.txt" + Scenario Outline: receiver renames a received file share to different name on the same folder + Given using DAV path + And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "fileToShare.txt" And user "Alice" has sent the following resource share invitation: | resource | fileToShare.txt | | space | Personal | @@ -270,10 +294,16 @@ Feature: sharing Then the HTTP status code should be "201" And as "Brian" file "/Shares/newFile.txt" should exist But as "Alice" file "newFile.txt" should not exist + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: receiver renames a received file share to different name on the same folder for group sharing - Given group "grp1" has been created + Scenario Outline: receiver renames a received file share to different name on the same folder for group sharing + Given using DAV path + And group "grp1" has been created And user "Brian" has been added to group "grp1" And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "fileToShare.txt" And user "Alice" has sent the following resource share invitation: @@ -287,10 +317,16 @@ Feature: sharing Then the HTTP status code should be "201" And as "Brian" file "/Shares/newFile.txt" should exist But as "Alice" file "newFile.txt" should not exist + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: receiver renames a received folder share to different name on the same folder for group sharing - Given group "grp1" has been created + Scenario Outline: receiver renames a received folder share to different name on the same folder for group sharing + Given using DAV path + And group "grp1" has been created And user "Alice" has created folder "PARENT" And user "Brian" has been added to group "grp1" And user "Alice" has sent the following resource share invitation: @@ -304,10 +340,16 @@ Feature: sharing Then the HTTP status code should be "201" And as "Brian" folder "/Shares/myFolder" should exist But as "Alice" folder "myFolder" should not exist + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: receiver renames a received file share with read,update permissions inside the Shares folder in group sharing - Given group "grp1" has been created + Scenario Outline: receiver renames a received file share with read,update permissions inside the Shares folder in group sharing + Given using DAV path + And group "grp1" has been created And user "Brian" has been added to group "grp1" And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "fileToShare.txt" And user "Alice" has sent the following resource share invitation: @@ -321,10 +363,16 @@ Feature: sharing Then the HTTP status code should be "201" And as "Brian" file "/Shares/newFile.txt" should exist But as "Alice" file "/Shares/newFile.txt" should not exist + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: receiver renames a received folder share with read, change permissions inside the Shares folder in group sharing - Given group "grp1" has been created + Scenario Outline: receiver renames a received folder share with read, change permissions inside the Shares folder in group sharing + Given using DAV path + And group "grp1" has been created And user "Alice" has created folder "PARENT" And user "Brian" has been added to group "grp1" And user "Alice" has sent the following resource share invitation: @@ -338,10 +386,16 @@ Feature: sharing Then the HTTP status code should be "201" And as "Brian" folder "/Shares/myFolder" should exist But as "Alice" folder "/Shares/myFolder" should not exist + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: receiver renames a received file share with share, read permissions inside the Shares folder in group sharing) - Given group "grp1" has been created + Scenario Outline: receiver renames a received file share with share, read permissions inside the Shares folder in group sharing) + Given using DAV path + And group "grp1" has been created And user "Brian" has been added to group "grp1" And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "fileToShare.txt" And user "Alice" has sent the following resource share invitation: @@ -355,10 +409,16 @@ Feature: sharing Then the HTTP status code should be "201" And as "Brian" file "/Shares/newFile.txt" should exist But as "Alice" file "/Shares/newFile.txt" should not exist + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: receiver renames a received folder share with read permissions inside the Shares folder in group sharing - Given group "grp1" has been created + Scenario Outline: receiver renames a received folder share with read permissions inside the Shares folder in group sharing + Given using DAV path + And group "grp1" has been created And user "Alice" has created folder "PARENT" And user "Brian" has been added to group "grp1" And user "Alice" has sent the following resource share invitation: @@ -372,10 +432,16 @@ Feature: sharing Then the HTTP status code should be "201" And as "Brian" folder "/Shares/myFolder" should exist But as "Alice" folder "/Shares/myFolder" should not exist + Examples: + | dav-path-version | + | old | + | new | + | spaces | @issue-2141 Scenario Outline: receiver renames a received folder share to name with special characters in group sharing - Given group "grp1" has been created + Given using DAV path + And group "grp1" has been created And user "Carol" has been added to group "grp1" And user "Alice" has created folder "" And user "Alice" has created folder "" @@ -396,13 +462,18 @@ Feature: sharing And as "Alice" folder "" should not exist But as "Carol" folder "/Shares/" should exist Examples: - | sharer-folder | group-folder | receiver-folder | - | ?abc=oc # | ?abc=oc g%rp# | # oc?test=oc&a | - | @a#8a=b?c=d | @a#8a=b?c=d grp | ?a#8 a=b?c=d | + | sharer-folder | group-folder | receiver-folder | dav-path-version | + | ?abc=oc # | ?abc=oc g%rp# | # oc?test=oc&a | old | + | @a#8a=b?c=d | @a#8a=b?c=d grp | ?a#8 a=b?c=d | old | + | ?abc=oc # | ?abc=oc g%rp# | # oc?test=oc&a | new | + | @a#8a=b?c=d | @a#8a=b?c=d grp | ?a#8 a=b?c=d | new | + | ?abc=oc # | ?abc=oc g%rp# | # oc?test=oc&a | spaces | + | @a#8a=b?c=d | @a#8a=b?c=d grp | ?a#8 a=b?c=d | spaces | @issue-2141 Scenario Outline: receiver renames a received file share to name with special characters with read, change permissions in group sharing - Given group "grp1" has been created + Given using DAV path + And group "grp1" has been created And user "Carol" has been added to group "grp1" And user "Alice" has created folder "" And user "Alice" has created folder "" @@ -425,6 +496,10 @@ Feature: sharing And as "Alice" file "/" should exist And as "Carol" file "/Shares//" should exist Examples: - | sharer-folder | group-folder | receiver_file | - | ?abc=oc # | ?abc=oc g%rp# | # oc?test=oc&a | - | @a#8a=b?c=d | @a#8a=b?c=d grp | ?a#8 a=b?c=d | + | sharer-folder | group-folder | receiver_file | dav-path-version | + | ?abc=oc # | ?abc=oc g%rp# | # oc?test=oc&a | old | + | @a#8a=b?c=d | @a#8a=b?c=d grp | ?a#8 a=b?c=d | old | + | ?abc=oc # | ?abc=oc g%rp# | # oc?test=oc&a | new | + | @a#8a=b?c=d | @a#8a=b?c=d grp | ?a#8 a=b?c=d | new | + | ?abc=oc # | ?abc=oc g%rp# | # oc?test=oc&a | spaces | + | @a#8a=b?c=d | @a#8a=b?c=d grp | ?a#8 a=b?c=d | spaces | diff --git a/tests/acceptance/features/coreApiShareManagementToShares/moveShareInsideAnotherShare.feature b/tests/acceptance/features/coreApiShareManagementToShares/moveShareInsideAnotherShare.feature index 2d7366ebfb7..0ecad3812e9 100644 --- a/tests/acceptance/features/coreApiShareManagementToShares/moveShareInsideAnotherShare.feature +++ b/tests/acceptance/features/coreApiShareManagementToShares/moveShareInsideAnotherShare.feature @@ -30,16 +30,23 @@ Feature: moving a share inside another share And user "Brian" has a share "folderB" synced - Scenario: share receiver cannot move a whole share inside another share + Scenario Outline: share receiver cannot move a whole share inside another share + Given using DAV path When user "Brian" moves folder "Shares/folderB" to "Shares/folderA/folderB" using the WebDAV API Then the HTTP status code should be "502" And as "Alice" folder "/folderB" should exist And as "Brian" folder "/Shares/folderB" should exist And as "Alice" file "/folderB/fileB.txt" should exist And as "Brian" file "/Shares/folderB/fileB.txt" should exist + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: share owner moves a whole share inside another share + Scenario Outline: share owner moves a whole share inside another share + Given using DAV path When user "Alice" moves folder "folderB" to "folderA/folderB" using the WebDAV API Then the HTTP status code should be "201" And as "Alice" folder "/folderB" should not exist @@ -48,10 +55,16 @@ Feature: moving a share inside another share And as "Alice" file "/folderA/folderB/fileB.txt" should exist And as "Brian" file "/Shares/folderA/folderB/fileB.txt" should exist And as "Brian" file "/Shares/folderB/fileB.txt" should exist + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: share receiver moves a local folder inside a received share (local folder does not have a share in it) - Given user "Brian" has created folder "localFolder" + Scenario Outline: share receiver moves a local folder inside a received share (local folder does not have a share in it) + Given using DAV path + And user "Brian" has created folder "localFolder" And user "Brian" has created folder "localFolder/subFolder" And user "Brian" has uploaded file with content "local text" to "/localFolder/localFile.txt" When user "Brian" moves folder "localFolder" to "Shares/folderA/localFolder" using the WebDAV API @@ -59,12 +72,23 @@ Feature: moving a share inside another share And as "Brian" folder "/Shares/folderA/localFolder" should not exist And as "Alice" folder "/folderA/localFolder" should not exist And as "Brian" folder "/localFolder" should exist + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: share receiver tries to move a whole share inside a local folder - Given user "Brian" has created folder "localFolder" + Scenario Outline: share receiver tries to move a whole share inside a local folder + Given using DAV path + And user "Brian" has created folder "localFolder" And user "Brian" has uploaded file with content "local text" to "/localFolder/localFile.txt" When user "Brian" moves folder "Shares/folderB" to "localFolder/folderB" using the WebDAV API Then the HTTP status code should be "502" And as "Alice" file "/folderB/fileB.txt" should exist And as "Brian" file "/Shares/folderB/fileB.txt" should exist + Examples: + | dav-path-version | + | old | + | new | + | spaces | diff --git a/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature b/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature index b1092983dab..e447c28ed19 100644 --- a/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature +++ b/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature @@ -41,6 +41,7 @@ Feature: sharing | dav-path-version | | old | | new | + | spaces | Scenario Outline: overwrite a received file share @@ -62,4 +63,5 @@ Feature: sharing | dav-path-version | | old | | new | + | spaces | diff --git a/tests/acceptance/features/coreApiShareOperationsToShares2/getWebDAVSharePermissions.feature b/tests/acceptance/features/coreApiShareOperationsToShares2/getWebDAVSharePermissions.feature index 8d19b33ba1f..bd733457b5c 100644 --- a/tests/acceptance/features/coreApiShareOperationsToShares2/getWebDAVSharePermissions.feature +++ b/tests/acceptance/features/coreApiShareOperationsToShares2/getWebDAVSharePermissions.feature @@ -46,6 +46,7 @@ Feature: sharing | dav-path-version | | old | | new | + | spaces | Scenario Outline: check webdav share-permissions for received group shared file with edit @@ -69,6 +70,7 @@ Feature: sharing | dav-path-version | | old | | new | + | spaces | @skipOnReva @issue-2213 Scenario Outline: check webdav share-permissions for received file without edit permissions @@ -90,6 +92,7 @@ Feature: sharing | dav-path-version | | old | | new | + | spaces | Scenario Outline: check webdav share-permissions for owned folder @@ -126,6 +129,7 @@ Feature: sharing | dav-path-version | | old | | new | + | spaces | Scenario Outline: check webdav share-permissions for received group shared folder with all permissions @@ -149,11 +153,11 @@ Feature: sharing | dav-path-version | | old | | new | + | spaces | @skipOnReva @issue-2213 - Scenario Outline: check webdav share-permissions for received folder with all permissions but edit - Given using DAV path - And user "Alice" has created folder "/tmp" + Scenario: check webdav share-permissions for received folder with all permissions but edit + Given user "Alice" has created folder "/tmp" And user "Alice" has sent the following resource share invitation: | resource | tmp | | space | Personal | @@ -166,15 +170,10 @@ Feature: sharing | permissions | delete,create,read | Then the HTTP status code should be "200" And as user "Brian" folder "/Shares/tmp" should contain a property "ocs:share-permissions" with value "13" - Examples: - | dav-path-version | - | old | - | new | - Scenario Outline: check webdav share-permissions for received group shared folder with all permissions but edit - Given using DAV path - And group "grp1" has been created + Scenario: check webdav share-permissions for received group shared folder with all permissions but edit + Given group "grp1" has been created And user "Brian" has been added to group "grp1" And user "Alice" has created folder "/tmp" And using SharingNG @@ -189,15 +188,10 @@ Feature: sharing | permissions | delete,create,read | Then the HTTP status code should be "200" And as user "Brian" folder "/Shares/tmp" should contain a property "ocs:share-permissions" with value "13" - Examples: - | dav-path-version | - | old | - | new | @skipOnReva - Scenario Outline: check webdav share-permissions for received folder with all permissions but create - Given using DAV path - And user "Alice" has created folder "/tmp" + Scenario: check webdav share-permissions for received folder with all permissions but create + Given user "Alice" has created folder "/tmp" And user "Alice" has sent the following resource share invitation: | resource | tmp | | space | Personal | @@ -210,15 +204,10 @@ Feature: sharing | permissions | delete,update,read | Then the HTTP status code should be "200" And as user "Brian" folder "/Shares/tmp" should contain a property "ocs:share-permissions" with value "11" - Examples: - | dav-path-version | - | old | - | new | - Scenario Outline: check webdav share-permissions for received group shared folder with all permissions but create - Given using DAV path - And group "grp1" has been created + Scenario: check webdav share-permissions for received group shared folder with all permissions but create + Given group "grp1" has been created And user "Brian" has been added to group "grp1" And user "Alice" has created folder "/tmp" And using SharingNG @@ -233,15 +222,10 @@ Feature: sharing | permissions | delete,update,read | Then the HTTP status code should be "200" And as user "Brian" folder "/Shares/tmp" should contain a property "ocs:share-permissions" with value "11" - Examples: - | dav-path-version | - | old | - | new | @skipOnReva - Scenario Outline: check webdav share-permissions for received folder with all permissions but delete - Given using DAV path - And user "Alice" has created folder "/tmp" + Scenario: check webdav share-permissions for received folder with all permissions but delete + Given user "Alice" has created folder "/tmp" And user "Alice" has sent the following resource share invitation: | resource | tmp | | space | Personal | @@ -254,15 +238,10 @@ Feature: sharing | permissions | create,update,read | Then the HTTP status code should be "200" And as user "Brian" folder "/Shares/tmp" should contain a property "ocs:share-permissions" with value "7" - Examples: - | dav-path-version | - | old | - | new | - Scenario Outline: check webdav share-permissions for received group shared folder with all permissions but delete - Given using DAV path - And group "grp1" has been created + Scenario: check webdav share-permissions for received group shared folder with all permissions but delete + Given group "grp1" has been created And user "Brian" has been added to group "grp1" And user "Alice" has created folder "/tmp" And using SharingNG @@ -277,7 +256,3 @@ Feature: sharing | permissions | create,update,read | Then the HTTP status code should be "200" And as user "Brian" folder "/Shares/tmp" should contain a property "ocs:share-permissions" with value "7" - Examples: - | dav-path-version | - | old | - | new | diff --git a/tests/acceptance/features/coreApiShareOperationsToShares2/uploadToShare.feature b/tests/acceptance/features/coreApiShareOperationsToShares2/uploadToShare.feature index 4cb90fcf465..c4b99eeb518 100644 --- a/tests/acceptance/features/coreApiShareOperationsToShares2/uploadToShare.feature +++ b/tests/acceptance/features/coreApiShareOperationsToShares2/uploadToShare.feature @@ -8,8 +8,9 @@ Feature: sharing Given user "Alice" has been created with default attributes and without skeleton files - Scenario: uploading file to a user read-only share folder does not work - Given user "Brian" has been created with default attributes and without skeleton files + Scenario Outline: uploading file to a user read-only share folder does not work + Given using DAV path + And user "Brian" has been created with default attributes and without skeleton files And user "Alice" has created folder "FOLDER" And user "Alice" has sent the following resource share invitation: | resource | FOLDER | @@ -20,6 +21,11 @@ Feature: sharing When user "Brian" uploads file "filesForUpload/textfile.txt" to "/Shares/FOLDER/textfile.txt" using the WebDAV API Then the HTTP status code should be "403" And as "Alice" file "/FOLDER/textfile.txt" should not exist + Examples: + | dav-path-version | + | old | + | new | + | spaces | Scenario Outline: uploading file to a group read-only share folder does not work @@ -43,6 +49,7 @@ Feature: sharing | dav-path-version | | old | | new | + | spaces | Scenario Outline: uploading file to a user upload-only share folder works @@ -70,6 +77,7 @@ Feature: sharing | dav-path-version | | old | | new | + | spaces | Scenario Outline: uploading file to a group upload-only share folder works @@ -99,6 +107,7 @@ Feature: sharing | dav-path-version | | old | | new | + | spaces | @smokeTest Scenario Outline: uploading file to a user read/write share folder works @@ -124,6 +133,7 @@ Feature: sharing | dav-path-version | | old | | new | + | spaces | Scenario Outline: uploading file to a group read/write share folder works @@ -151,6 +161,7 @@ Feature: sharing | dav-path-version | | old | | new | + | spaces | @smokeTest Scenario Outline: check quota of owners parent directory of a shared file @@ -179,6 +190,7 @@ Feature: sharing | dav-path-version | | old | | new | + | spaces | Scenario Outline: uploading to a user shared folder with read/write permission when the sharer has insufficient quota does not work @@ -200,6 +212,7 @@ Feature: sharing | dav-path-version | | old | | new | + | spaces | Scenario Outline: uploading to a group shared folder with read/write permission when the sharer has insufficient quota does not work @@ -223,6 +236,7 @@ Feature: sharing | dav-path-version | | old | | new | + | spaces | Scenario Outline: uploading to a user shared folder with upload-only permission when the sharer has insufficient quota does not work @@ -244,6 +258,7 @@ Feature: sharing | dav-path-version | | old | | new | + | spaces | Scenario Outline: uploading to a group shared folder with upload-only permission when the sharer has insufficient quota does not work @@ -267,6 +282,7 @@ Feature: sharing | dav-path-version | | old | | new | + | spaces | Scenario Outline: sharer can download file uploaded with different permission by sharee to a shared folder @@ -287,7 +303,11 @@ Feature: sharing Examples: | dav-path-version | permissions-role | | old | Editor | + | old | Uploader | + | new | Editor | | new | Uploader | + | spaces | Editor | + | spaces | Uploader | Scenario Outline: upload an empty file (size zero byte) to a shared folder @@ -309,3 +329,4 @@ Feature: sharing | dav-path-version | | old | | new | + | spaces | diff --git a/tests/acceptance/features/coreApiSharePublicLink1/accessToPublicLinkShare.feature b/tests/acceptance/features/coreApiSharePublicLink1/accessToPublicLinkShare.feature index 0a71d0f1e96..23219c86ae6 100644 --- a/tests/acceptance/features/coreApiSharePublicLink1/accessToPublicLinkShare.feature +++ b/tests/acceptance/features/coreApiSharePublicLink1/accessToPublicLinkShare.feature @@ -68,7 +68,8 @@ Feature: accessing a public link share Then the HTTP status code of responses on all endpoints should be "200" @issue-web-10473 - Scenario: user tries to download public link file using own basic auth + Scenario Outline: user tries to download public link file using own basic auth + Given using DAV path And user "Alice" has created folder "FOLDER" And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "FOLDER/textfile.txt" And using SharingNG @@ -79,3 +80,7 @@ Feature: accessing a public link share | password | %public% | When user "Alice" tries to download file "textfile.txt" from the last public link using own basic auth and new public WebDAV API Then the HTTP status code should be "401" + Examples: + | dav-path-version | + | new | + | spaces | diff --git a/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature b/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature index 800e37cd508..a1b463d678f 100644 --- a/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature +++ b/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature @@ -127,8 +127,9 @@ Feature: sharing | 2 | 400 | create,delete | @issue-2442 - Scenario: share ownership change after moving a shared file to another share - Given these users have been created with default attributes and without skeleton files: + Scenario Outline: share ownership change after moving a shared file to another share + Given using DAV path + And these users have been created with default attributes and without skeleton files: | username | | Brian | | Carol | @@ -151,6 +152,11 @@ Feature: sharing And user "Brian" has a share "Carol-folder" synced When user "Brian" moves folder "/Shares/Alice-folder/folder2" to "/Shares/Carol-folder/folder2" using the WebDAV API Then the HTTP status code should be "502" + Examples: + | dav-path-version | + | old | + | new | + | spaces | @issue-1253 @issue-1224 @issue-1225 Scenario Outline: change the permission of the share and check the API response @@ -252,3 +258,4 @@ Feature: sharing | dav-path-version | | old | | new | + | spaces | diff --git a/tests/acceptance/features/coreApiTrashbin/trashbinDelete.feature b/tests/acceptance/features/coreApiTrashbin/trashbinDelete.feature index cec76781bb4..9dac3729c06 100644 --- a/tests/acceptance/features/coreApiTrashbin/trashbinDelete.feature +++ b/tests/acceptance/features/coreApiTrashbin/trashbinDelete.feature @@ -26,6 +26,8 @@ Feature: files and folders can be deleted from the trashbin And as "Alice" the file with original path "" should not exist in the trashbin Examples: | dav-path-version | file-name | file-name-2 | + | old | textfile0.txt | textfile1.txt | + | old | sample,0.txt | sample,1.txt | | new | textfile0.txt | textfile1.txt | | new | sample,0.txt | sample,1.txt | | spaces | textfile0.txt | textfile1.txt | @@ -46,6 +48,7 @@ Feature: files and folders can be deleted from the trashbin And as "Alice" the file with original path "/PARENT/CHILD/child.txt" should exist in the trashbin Examples: | dav-path-version | + | old | | new | | spaces | @@ -69,6 +72,7 @@ Feature: files and folders can be deleted from the trashbin And as "Alice" the file with original path "/PARENT/child.txt" should exist in the trashbin Examples: | dav-path-version | + | old | | new | | spaces | @@ -88,6 +92,7 @@ Feature: files and folders can be deleted from the trashbin And as "Alice" the file with original path "/PARENT/CHILD/child.txt" should exist in the trashbin Examples: | dav-path-version | + | old | | new | | spaces | @@ -107,6 +112,7 @@ Feature: files and folders can be deleted from the trashbin And as "Alice" the file with original path "/PARENT/CHILD/child.txt" should exist in the trashbin Examples: | dav-path-version | + | old | | new | | spaces | @@ -126,6 +132,7 @@ Feature: files and folders can be deleted from the trashbin And as "Alice" the file with original path "/PARENT/CHILD/child.txt" should exist in the trashbin Examples: | dav-path-version | + | old | | new | | spaces | @@ -147,6 +154,7 @@ Feature: files and folders can be deleted from the trashbin And as "Alice" the file with original path "/FOLDER/CHILD/child.txt" should exist in the trashbin Examples: | dav-path-version | + | old | | new | | spaces | @@ -168,6 +176,7 @@ Feature: files and folders can be deleted from the trashbin And as "Alice" the file with original path "/FOLDER/CHILD/child.txt" should exist in the trashbin Examples: | dav-path-version | + | old | | new | | spaces | @@ -201,6 +210,7 @@ Feature: files and folders can be deleted from the trashbin | # %ab ab?=ed.txt | Examples: | dav-path-version | + | old | | new | | spaces | @@ -234,6 +244,7 @@ Feature: files and folders can be deleted from the trashbin | # %ab ab?=ed | Examples: | dav-path-version | + | old | | new | | spaces | @@ -279,5 +290,6 @@ Feature: files and folders can be deleted from the trashbin | /fo.exe | Examples: | dav-path-version | + | old | | new | | spaces | diff --git a/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature b/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature index 2b357545b96..8b2af1abf00 100644 --- a/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature +++ b/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature @@ -17,6 +17,7 @@ Feature: files and folders exist in the trashbin after being deleted But as "Alice" file "/textfile0.txt" should not exist Examples: | dav-path-version | + | old | | new | | spaces | @@ -29,6 +30,7 @@ Feature: files and folders exist in the trashbin after being deleted And as "Alice" folder "/tmp" should exist in the trashbin Examples: | dav-path-version | + | old | | new | | spaces | @@ -44,6 +46,7 @@ Feature: files and folders exist in the trashbin after being deleted But as "Alice" file "/new-folder/new-file.txt" should not exist Examples: | dav-path-version | + | old | | new | | spaces | @@ -67,6 +70,7 @@ Feature: files and folders exist in the trashbin after being deleted But as "Alice" file "/shared/shared_file.txt" should not exist Examples: | dav-path-version | + | old | | new | | spaces | @@ -88,6 +92,7 @@ Feature: files and folders exist in the trashbin after being deleted And as "Alice" the folder with original path "/shared" should exist in the trashbin Examples: | dav-path-version | + | old | | new | | spaces | @@ -119,6 +124,7 @@ Feature: files and folders exist in the trashbin after being deleted And as "Alice" the folder with original path "/textfile0.txt" should exist in the trashbin Examples: | dav-path-version | + | old | | new | | spaces | @@ -138,6 +144,7 @@ Feature: files and folders exist in the trashbin after being deleted And as "Alice" the folder with original path "/textfile0.txt" should exist in the trashbin Examples: | dav-path-version | + | old | | new | | spaces | @@ -155,6 +162,7 @@ Feature: files and folders exist in the trashbin after being deleted | textfile1.txt | testtrashbin100 | Examples: | dav-path-version | + | old | | new | | spaces | @@ -175,6 +183,7 @@ Feature: files and folders exist in the trashbin after being deleted | textfile2.txt | testtrashbin101 | Examples: | dav-path-version | + | old | | new | | spaces | @@ -200,6 +209,7 @@ Feature: files and folders exist in the trashbin after being deleted | textfile3.txt | testtrashbin102 | Examples: | dav-path-version | + | old | | new | | spaces | @@ -212,6 +222,7 @@ Feature: files and folders exist in the trashbin after being deleted Then the HTTP status code should be "404" Examples: | dav-path-version | + | old | | new | | spaces | @@ -222,6 +233,7 @@ Feature: files and folders exist in the trashbin after being deleted Then the HTTP status code should be "404" Examples: | dav-path-version | + | old | | new | | spaces | @@ -237,6 +249,7 @@ Feature: files and folders exist in the trashbin after being deleted | /textfile0.txt | Alice | Examples: | dav-path-version | + | old | | new | | spaces | @@ -252,6 +265,7 @@ Feature: files and folders exist in the trashbin after being deleted | /textfile0.txt | Alice | Examples: | dav-path-version | + | old | | new | | spaces | @@ -266,6 +280,9 @@ Feature: files and folders exist in the trashbin after being deleted But as "" file "/textfile0.txt" should not exist Examples: | dav-path-version | user | + | old | dash-123 | + | old | null | + | old | nil | | new | dash-123 | | new | null | | new | nil | @@ -283,6 +300,7 @@ Feature: files and folders exist in the trashbin after being deleted But as "Alice" file "sample,1.txt" should not exist Examples: | dav-path-version | + | old | | new | | spaces | @@ -299,6 +317,7 @@ Feature: files and folders exist in the trashbin after being deleted But as "Alice" file "/new-folder/new-file.txt" should not exist Examples: | dav-path-version | + | old | | new | | spaces | @@ -312,6 +331,7 @@ Feature: files and folders exist in the trashbin after being deleted And the deleted file "file.txt" should have the correct deletion mtime in the response Examples: | dav-path-version | + | old | | new | | spaces | @@ -369,6 +389,7 @@ Feature: files and folders exist in the trashbin after being deleted | fo.xyz | Examples: | dav-path-version | + | old | | new | | spaces | @@ -426,5 +447,6 @@ Feature: files and folders exist in the trashbin after being deleted | fo.xyz | Examples: | dav-path-version | + | old | | new | | spaces | diff --git a/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature b/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature index ecce479b056..0cee372c7d1 100644 --- a/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature +++ b/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature @@ -27,6 +27,7 @@ Feature: using trashbin together with sharing And as "Brian" the folder with original path "/Shares/renamed_shared" should not exist in the trashbin Examples: | dav-path-version | + | old | | new | | spaces | @@ -50,6 +51,7 @@ Feature: using trashbin together with sharing And as "Alice" the file with original path "/shared/shared_file.txt" should exist in the trashbin Examples: | dav-path-version | + | old | | new | | spaces | @@ -78,6 +80,7 @@ Feature: using trashbin together with sharing And as "Carol" the file with original path "/Shares/shared/shared_file.txt" should not exist in the trashbin Examples: | dav-path-version | + | old | | new | | spaces | @@ -106,6 +109,7 @@ Feature: using trashbin together with sharing And as "Carol" the file with original path "/Shares/shared/shared_file.txt" should not exist in the trashbin Examples: | dav-path-version | + | old | | new | | spaces | @@ -135,6 +139,7 @@ Feature: using trashbin together with sharing And as "Carol" the file with original path "/Shares/shared/sub/shared_file.txt" should not exist in the trashbin Examples: | dav-path-version | + | old | | new | | spaces | @@ -164,6 +169,7 @@ Feature: using trashbin together with sharing And as "Carol" the file with original path "/Shares/shared/sub/shared_file.txt" should not exist in the trashbin Examples: | dav-path-version | + | old | | new | | spaces | @@ -193,6 +199,7 @@ Feature: using trashbin together with sharing And the content of file "/Shares/renamed_shared/shared_file.txt" for user "Brian" should be "file to delete" Examples: | dav-path-version | + | old | | new | | spaces | @@ -218,6 +225,7 @@ Feature: using trashbin together with sharing And as "Brian" file "/shareFolderParent/textfile0.txt" should exist Examples: | dav-path-version | http-status-code | + | old | 400 | | new | 403 | | spaces | 400 | @@ -243,6 +251,7 @@ Feature: using trashbin together with sharing And as "Brian" file "/shareFolderParent/shareFolderChild/textfile0.txt" should not exist Examples: | dav-path-version | http-status-code | + | old | 400 | | new | 403 | | spaces | 400 | @@ -268,5 +277,6 @@ Feature: using trashbin together with sharing And as "Alice" file "/Shares/shareFolderParent/textfile0.txt" should exist Examples: | dav-path-version | http-status-code | + | old | 400 | | new | 403 | | spaces | 400 | diff --git a/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature b/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature index 4452a2767fe..6c4a3250782 100644 --- a/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature +++ b/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature @@ -142,6 +142,7 @@ Feature: restore deleted files/folders | /textfile0.txt | Examples: | dav-path-version | http-status-code | + | old | 404 | | new | 404 | | spaces | 400 | @@ -157,6 +158,7 @@ Feature: restore deleted files/folders | /textfile0.txt | Examples: | dav-path-version | + | old | | new | | spaces | @@ -172,6 +174,7 @@ Feature: restore deleted files/folders | /textfile0.txt | Examples: | dav-path-version | + | old | | spaces | | new | @@ -464,6 +467,7 @@ Feature: restore deleted files/folders | /parent_folder/sub/parent.txt | Examples: | dav-path-version | + | old | | spaces | | new | @@ -479,6 +483,7 @@ Feature: restore deleted files/folders | /parent.txt | Examples: | dav-path-version | + | old | | spaces | | new | diff --git a/tests/acceptance/features/coreApiVersions/disableFileVersioning.feature b/tests/acceptance/features/coreApiVersions/disableFileVersioning.feature index 9de21b5169a..aac2e1bd999 100644 --- a/tests/acceptance/features/coreApiVersions/disableFileVersioning.feature +++ b/tests/acceptance/features/coreApiVersions/disableFileVersioning.feature @@ -9,20 +9,26 @@ Feature: checking file versions | username | | Alice | | Brian | - And using spaces DAV path - Scenario: check version number of a file when versioning is disabled - Given the config "OCIS_DISABLE_VERSIONING" has been set to "true" + Scenario Outline: check version number of a file when versioning is disabled + Given using DAV path + And the config "OCIS_DISABLE_VERSIONING" has been set to "true" And user "Alice" has uploaded file with content "test file version 1" to "/testfile.txt" And user "Alice" has uploaded file with content "test file version 2" to "/testfile.txt" When user "Alice" gets the number of versions of file "/testfile.txt" Then the HTTP status code should be "207" And the number of versions should be "0" + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: file version number should not be added after disabling versioning - Given user "Alice" has uploaded file with content "test file version 1" to "/testfile.txt" + Scenario Outline: file version number should not be added after disabling versioning + Given using DAV path + And user "Alice" has uploaded file with content "test file version 1" to "/testfile.txt" And user "Alice" has uploaded file with content "test file version 2" to "/testfile.txt" And the config "OCIS_DISABLE_VERSIONING" has been set to "true" And user "Alice" has uploaded file with content "test file version 3" to "/testfile.txt" @@ -30,10 +36,16 @@ Feature: checking file versions When user "Alice" gets the number of versions of file "/testfile.txt" Then the HTTP status code should be "207" And the number of versions should be "1" + Examples: + | dav-path-version | + | old | + | new | + | spaces | Scenario Outline: sharee tries to check version number of a file shared from project space when versioning is disabled - Given the config "OCIS_DISABLE_VERSIONING" has been set to "true" + Given using spaces DAV path + And the config "OCIS_DISABLE_VERSIONING" has been set to "true" And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And user "Alice" has created a space "Project1" with the default quota using the Graph API And user "Alice" has uploaded a file inside space "Project1" with content "hello world version 1" to "text.txt" @@ -54,7 +66,8 @@ Feature: checking file versions Scenario Outline: sharee tries to check version number of a file shared from personal space when versioning is disabled - Given the config "OCIS_DISABLE_VERSIONING" has been set to "true" + Given using DAV path + And the config "OCIS_DISABLE_VERSIONING" has been set to "true" And user "Alice" has uploaded file with content "test file version 2" to "/text.txt" And user "Alice" has sent the following resource share invitation: | resource | text.txt | @@ -66,13 +79,18 @@ Feature: checking file versions When user "Brian" tries to get the number of versions of file "/text.txt" from space "Shares" Then the HTTP status code should be "403" Examples: - | permissionsRole | - | File Editor | - | Viewer | + | permissionsRole | dav-path-version | + | File Editor | old | + | Viewer | old | + | File Editor | new | + | Viewer | new | + | File Editor | spaces | + | Viewer | spaces | - Scenario: check file version number after disabling versioning, creating versions and then enabling versioning - Given the config "OCIS_DISABLE_VERSIONING" has been set to "true" + Scenario Outline: check file version number after disabling versioning, creating versions and then enabling versioning + Given using DAV path + And the config "OCIS_DISABLE_VERSIONING" has been set to "true" And user "Alice" has uploaded file with content "test file version 1" to "/testfile.txt" And user "Alice" has uploaded file with content "test file version 2" to "/testfile.txt" And the config "OCIS_DISABLE_VERSIONING" has been set to "false" @@ -81,3 +99,8 @@ Feature: checking file versions When user "Alice" gets the number of versions of file "/testfile.txt" Then the HTTP status code should be "207" And the number of versions should be "2" + Examples: + | dav-path-version | + | old | + | new | + | spaces | diff --git a/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature b/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature index 9f4614ed5db..8d774cf690d 100644 --- a/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature +++ b/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature @@ -6,7 +6,6 @@ Feature: file versions remember the author of each version Background: Given using OCS API version "2" - And using new DAV path And user "Alice" has been created with default attributes and without skeleton files And user "Brian" has been created with default attributes and without skeleton files And user "Carol" has been created with default attributes and without skeleton files diff --git a/tests/acceptance/features/coreApiVersions/fileVersions.feature b/tests/acceptance/features/coreApiVersions/fileVersions.feature index 740dfbd5289..d55c8381b4a 100644 --- a/tests/acceptance/features/coreApiVersions/fileVersions.feature +++ b/tests/acceptance/features/coreApiVersions/fileVersions.feature @@ -5,129 +5,208 @@ Feature: dav-versions Background: Given using OCS API version "2" - And using new DAV path And user "Alice" has been created with default attributes and without skeleton files - Scenario: upload file and no version is available + Scenario Outline: upload file and no version is available + Given using DAV path When user "Alice" uploads file "filesForUpload/davtest.txt" to "/davtest.txt" using the WebDAV API Then the HTTP status code should be "201" And the version folder of file "/davtest.txt" for user "Alice" should contain "0" elements + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: upload file and no version is available using various chunking methods (except new chunking) + Scenario Outline: upload file and no version is available using various chunking methods (except new chunking) + Given using DAV path When user "Alice" uploads file "filesForUpload/davtest.txt" to filenames based on "/davtest.txt" with all mechanisms except new chunking using the WebDAV API Then the HTTP status code of all upload responses should be "201" And the version folder of file "/davtest.txt-olddav-regular" for user "Alice" should contain "0" elements And the version folder of file "/davtest.txt-newdav-regular" for user "Alice" should contain "0" elements And the version folder of file "/davtest.txt-olddav-oldchunking" for user "Alice" should contain "0" elements + Examples: + | dav-path-version | + | old | + | new | + | spaces | @smokeTest - Scenario: upload a file twice and versions are available + Scenario Outline: upload a file twice and versions are available + Given using DAV path When user "Alice" uploads file "filesForUpload/davtest.txt" to "/davtest.txt" using the WebDAV API And user "Alice" uploads file "filesForUpload/davtest.txt" to "/davtest.txt" using the WebDAV API Then the HTTP status code of responses on each endpoint should be "201, 204" respectively And the version folder of file "/davtest.txt" for user "Alice" should contain "1" element And the content length of file "/davtest.txt" with version index "1" for user "Alice" in versions folder should be "8" + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: upload a file twice and versions are available using various chunking methods (except new chunking) + Scenario Outline: upload a file twice and versions are available using various chunking methods (except new chunking) + Given using DAV path When user "Alice" uploads file "filesForUpload/davtest.txt" to filenames based on "/davtest.txt" with all mechanisms except new chunking using the WebDAV API And user "Alice" uploads file "filesForUpload/davtest.txt" to filenames based on "/davtest.txt" with all mechanisms except new chunking using the WebDAV API Then the HTTP status code of all upload responses should be between "201" and "204" And the version folder of file "/davtest.txt-olddav-regular" for user "Alice" should contain "1" element And the version folder of file "/davtest.txt-newdav-regular" for user "Alice" should contain "1" element And the version folder of file "/davtest.txt-olddav-oldchunking" for user "Alice" should contain "1" element + Examples: + | dav-path-version | + | old | + | new | + | spaces | @smokeTest - Scenario: remove a file - Given user "Alice" has uploaded file "filesForUpload/davtest.txt" to "/davtest.txt" + Scenario Outline: remove a file + Given using DAV path + And user "Alice" has uploaded file "filesForUpload/davtest.txt" to "/davtest.txt" And user "Alice" has uploaded file "filesForUpload/davtest.txt" to "/davtest.txt" And the version folder of file "/davtest.txt" for user "Alice" should contain "1" element And user "Alice" has deleted file "/davtest.txt" When user "Alice" uploads file "filesForUpload/davtest.txt" to "/davtest.txt" using the WebDAV API Then the HTTP status code should be "201" And the version folder of file "/davtest.txt" for user "Alice" should contain "0" elements + Examples: + | dav-path-version | + | old | + | new | + | spaces | @smokeTest - Scenario: restore a file and check its content - Given user "Alice" has uploaded file with content "Test Content." to "/davtest.txt" + Scenario Outline: restore a file and check its content + Given using DAV path + And user "Alice" has uploaded file with content "Test Content." to "/davtest.txt" And user "Alice" has uploaded file with content "Content Test Updated." to "/davtest.txt" And the version folder of file "/davtest.txt" for user "Alice" should contain "1" element When user "Alice" restores version index "1" of file "/davtest.txt" using the WebDAV API Then the HTTP status code should be "204" And the content of file "/davtest.txt" for user "Alice" should be "Test Content." + Examples: + | dav-path-version | + | old | + | new | + | spaces | @smokeTest @skipOnStorage:ceph @skipOnStorage:scality - Scenario: restore a file back to bigger content and check its content - Given user "Alice" has uploaded file with content "Back To The Future." to "/davtest.txt" + Scenario Outline: restore a file back to bigger content and check its content + Given using DAV path + And user "Alice" has uploaded file with content "Back To The Future." to "/davtest.txt" And user "Alice" has uploaded file with content "Update Content." to "/davtest.txt" And the version folder of file "/davtest.txt" for user "Alice" should contain "1" element When user "Alice" restores version index "1" of file "/davtest.txt" using the WebDAV API Then the HTTP status code should be "204" And the content of file "/davtest.txt" for user "Alice" should be "Back To The Future." + Examples: + | dav-path-version | + | old | + | new | + | spaces | @smokeTest @skipOnStorage:ceph - Scenario: uploading a chunked file does create the correct version that can be restored - Given using old DAV path + Scenario Outline: uploading a chunked file does create the correct version that can be restored + Given using DAV path And user "Alice" has uploaded file with content "textfile0" to "textfile0.txt" When user "Alice" uploads file "filesForUpload/davtest.txt" to "/textfile0.txt" in 2 chunks using the WebDAV API And user "Alice" uploads file "filesForUpload/lorem.txt" to "/textfile0.txt" in 3 chunks using the WebDAV API -# HTTP status code is different for old (201) and new (204) WebDav API when uploading in chunks Then the HTTP status code of responses on all endpoints should be "201" And the version folder of file "/textfile0.txt" for user "Alice" should contain "2" elements When user "Alice" restores version index "1" of file "/textfile0.txt" using the WebDAV API Then the HTTP status code should be "204" And the content of file "/textfile0.txt" for user "Alice" should be "Dav-Test" + Examples: + | dav-path-version | + | old | + | new | + | spaces | @skipOnStorage:ceph @skipOnStorage:scality - Scenario: restore a file and check the content and checksum - Given user "Alice" has uploaded file with content "AAAAABBBBBCCCCC" and checksum "MD5:45a72715acdd5019c5be30bdbb75233e" to "/davtest.txt" + Scenario Outline: restore a file and check the content and checksum + Given using DAV path + And user "Alice" has uploaded file with content "AAAAABBBBBCCCCC" and checksum "MD5:45a72715acdd5019c5be30bdbb75233e" to "/davtest.txt" And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "/davtest.txt" with checksum "MD5:d70b40f177b14b470d1756a3c12b963a" And the version folder of file "/davtest.txt" for user "Alice" should contain "1" element When user "Alice" restores version index "1" of file "/davtest.txt" using the WebDAV API Then the HTTP status code should be "204" And the content of file "/davtest.txt" for user "Alice" should be "AAAAABBBBBCCCCC" And as user "Alice" the webdav checksum of "/davtest.txt" via propfind should match "SHA1:acfa6b1565f9710d4d497c6035d5c069bd35a8e8 MD5:45a72715acdd5019c5be30bdbb75233e ADLER32:1ecd03df" + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: user cannot access meta folder of a file which is owned by somebody else - Given user "Brian" has been created with default attributes and without skeleton files + Scenario Outline: user cannot access meta folder of a file which is owned by somebody else + Given using DAV path + And user "Brian" has been created with default attributes and without skeleton files And user "Alice" has uploaded file with content "123" to "/davtest.txt" And we save it into "FILEID" When user "Brian" sends HTTP method "PROPFIND" to URL "/dav/meta/<>" Then the HTTP status code should be "400" or "404" + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: user cannot access meta folder of a file which does not exist - Given user "Brian" has been created with default attributes and without skeleton files + Scenario Outline: user cannot access meta folder of a file which does not exist + Given using DAV path + And user "Brian" has been created with default attributes and without skeleton files When user "Brian" sends HTTP method "PROPFIND" to URL "/dav/meta/MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA==" Then the HTTP status code should be "400" or "404" + Examples: + | dav-path-version | + | old | + | new | + | spaces | Scenario Outline: user cannot access meta folder of a file with invalid fileid - Given user "Brian" has been created with default attributes and without skeleton files + Given using DAV path + And user "Brian" has been created with default attributes and without skeleton files When user "Brian" sends HTTP method "PROPFIND" to URL "/dav/meta//v" Then the HTTP status code should be "400" or "404" Examples: - | file-id | decoded-value | comment | - | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3PThjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bdc4-0b0000009157=8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with = sign | - | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3OGNjZDI3NTEtOTBhNC00MGYyLWI5ZjMtNjFlZGY4NDQyMWY0 | 1284d238-aa92-42ce-bdc4-0b00000091578ccd2751-90a4-40f2-b9f3-61edf84421f4 | no = sign | - | c29tZS1yYW5kb20tZmlsZUlkPWFub3RoZXItcmFuZG9tLWZpbGVJZA== | some-random-fileId=another-random-fileId | some random string | - | MTI4NGQyMzgtYWE5Mi00MmNlLWJkxzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bd�4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and � sign | - - - Scenario: version history is preserved when a file is renamed - Given user "Alice" has uploaded file with content "old content" to "/textfile.txt" + | dav-path-version | file-id | decoded-value | comment | + | old | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3PThjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bdc4-0b0000009157=8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with = sign | + | old | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3OGNjZDI3NTEtOTBhNC00MGYyLWI5ZjMtNjFlZGY4NDQyMWY0 | 1284d238-aa92-42ce-bdc4-0b00000091578ccd2751-90a4-40f2-b9f3-61edf84421f4 | no = sign | + | old | c29tZS1yYW5kb20tZmlsZUlkPWFub3RoZXItcmFuZG9tLWZpbGVJZA== | some-random-fileId=another-random-fileId | some random string | + | old | MTI4NGQyMzgtYWE5Mi00MmNlLWJkxzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bd�4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and � sign | + | new | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3PThjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bdc4-0b0000009157=8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with = sign | + | new | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3OGNjZDI3NTEtOTBhNC00MGYyLWI5ZjMtNjFlZGY4NDQyMWY0 | 1284d238-aa92-42ce-bdc4-0b00000091578ccd2751-90a4-40f2-b9f3-61edf84421f4 | no = sign | + | new | c29tZS1yYW5kb20tZmlsZUlkPWFub3RoZXItcmFuZG9tLWZpbGVJZA== | some-random-fileId=another-random-fileId | some random string | + | new | MTI4NGQyMzgtYWE5Mi00MmNlLWJkxzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bd�4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and � sign | + | spaces | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3PThjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bdc4-0b0000009157=8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with = sign | + | spaces | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3OGNjZDI3NTEtOTBhNC00MGYyLWI5ZjMtNjFlZGY4NDQyMWY0 | 1284d238-aa92-42ce-bdc4-0b00000091578ccd2751-90a4-40f2-b9f3-61edf84421f4 | no = sign | + | spaces | c29tZS1yYW5kb20tZmlsZUlkPWFub3RoZXItcmFuZG9tLWZpbGVJZA== | some-random-fileId=another-random-fileId | some random string | + | spaces | MTI4NGQyMzgtYWE5Mi00MmNlLWJkxzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bd�4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and � sign | + + + Scenario Outline: version history is preserved when a file is renamed + Given using DAV path + And user "Alice" has uploaded file with content "old content" to "/textfile.txt" And user "Alice" has uploaded file with content "new content" to "/textfile.txt" And user "Alice" has moved file "/textfile.txt" to "/renamedfile.txt" When user "Alice" restores version index "1" of file "/renamedfile.txt" using the WebDAV API Then the HTTP status code should be "204" And the content of file "/renamedfile.txt" for user "Alice" should be "old content" + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: user can access version number after moving a file - Given user "Alice" has created folder "testFolder" + Scenario Outline: user can access version number after moving a file + Given using DAV path + And user "Alice" has created folder "testFolder" And user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt" And user "Alice" has uploaded file with content "version 1" to "textfile0.txt" And user "Alice" has uploaded file with content "version 2" to "textfile0.txt" @@ -136,27 +215,45 @@ Feature: dav-versions And user "Alice" gets the number of versions of file "/testFolder/textfile0.txt" Then the HTTP status code should be "207" And the number of versions should be "3" + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: original file has version number 0 - Given user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt" + Scenario Outline: original file has version number 0 + Given using DAV path + And user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt" When user "Alice" gets the number of versions of file "textfile0.txt" Then the HTTP status code should be "207" And the number of versions should be "0" + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: number of etag elements in response changes according to version of the file - Given user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt" + Scenario Outline: number of etag elements in response changes according to version of the file + Given using DAV path + And user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt" And user "Alice" has uploaded file with content "version 1" to "textfile0.txt" And user "Alice" has uploaded file with content "version 2" to "textfile0.txt" When user "Alice" gets the number of versions of file "textfile0.txt" Then the HTTP status code should be "207" And the number of etag elements in the response should be "2" And the number of versions should be "2" + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: download old versions of a file - Given user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt" + Scenario Outline: download old versions of a file + Given using DAV path + And user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt" And user "Alice" has uploaded file with content "version 1" to "textfile0.txt" And user "Alice" has uploaded file with content "version 2" to "textfile0.txt" When user "Alice" downloads the version of file "textfile0.txt" with the index "1" @@ -171,10 +268,16 @@ Feature: dav-versions | header | value | | Content-Disposition | attachment; filename*=UTF-8''textfile0.txt; filename="textfile0.txt" | And the downloaded content should be "uploaded content" + Examples: + | dav-path-version | + | old | + | new | + | spaces | @skipOnStorage:ceph @skipOnStorage:scality - Scenario: download an old version of a restored file - Given user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt" + Scenario Outline: download an old version of a restored file + Given using DAV path + And user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt" And user "Alice" has uploaded file with content "version 1" to "textfile0.txt" And user "Alice" has uploaded file with content "version 2" to "textfile0.txt" And user "Alice" has restored version index "1" of file "textfile0.txt" @@ -190,6 +293,11 @@ Feature: dav-versions | header | value | | Content-Disposition | attachment; filename*=UTF-8''textfile0.txt; filename="textfile0.txt" | And the downloaded content should be "uploaded content" + Examples: + | dav-path-version | + | old | + | new | + | spaces | Scenario: user can retrieve meta information of a root folder @@ -213,27 +321,43 @@ Feature: dav-versions And the single response should contain a property "oc:meta-path-for-user" with value "/testFolder/davtest.txt" - Scenario: user cannot retrieve meta information of a file which is owned by somebody else - Given user "Brian" has been created with default attributes and without skeleton files + Scenario Outline: user cannot retrieve meta information of a file which is owned by somebody else + Given using DAV path + And user "Brian" has been created with default attributes and without skeleton files And user "Alice" has uploaded file with content "123" to "/davtest.txt " And we save it into "FILEID" When user "Brian" retrieves the meta information of fileId "<>" using the meta API Then the HTTP status code should be "404" + Examples: + | dav-path-version | + | old | + | new | + | spaces | Scenario Outline: user cannot retrieve meta information of a file that does not exist + Given using DAV path When user "Alice" retrieves the meta information of fileId "" using the meta API Then the HTTP status code should be "400" or "404" Examples: - | file-id | decoded-value | comment | - | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3PThjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bdc4-0b0000009157=8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with = sign | - | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3OGNjZDI3NTEtOTBhNC00MGYyLWI5ZjMtNjFlZGY4NDQyMWY0 | 1284d238-aa92-42ce-bdc4-0b00000091578ccd2751-90a4-40f2-b9f3-61edf84421f4 | no = sign | - | c29tZS1yYW5kb20tZmlsZUlkPWFub3RoZXItcmFuZG9tLWZpbGVJZA== | some-random-fileId=another-random-fileId | some random string | - | MTI4NGQyMzgtYWE5Mi00MmNlLWJkxzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bd�4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and � sign | - - - Scenario: file versions sets back after getting deleted and restored from trashbin - Given user "Alice" has uploaded file with content "Old Test Content." to "/davtest.txt" + | dav-path-version | file-id | decoded-value | comment | + | old | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3PThjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bdc4-0b0000009157=8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with = sign | + | old | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3OGNjZDI3NTEtOTBhNC00MGYyLWI5ZjMtNjFlZGY4NDQyMWY0 | 1284d238-aa92-42ce-bdc4-0b00000091578ccd2751-90a4-40f2-b9f3-61edf84421f4 | no = sign | + | old | c29tZS1yYW5kb20tZmlsZUlkPWFub3RoZXItcmFuZG9tLWZpbGVJZA== | some-random-fileId=another-random-fileId | some random string | + | old | GQyMzgtYWE5Mi00MmNlLWJkxzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bd�4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and � sign | + | new | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3PThjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bdc4-0b0000009157=8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with = sign | + | new | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3OGNjZDI3NTEtOTBhNC00MGYyLWI5ZjMtNjFlZGY4NDQyMWY0 | 1284d238-aa92-42ce-bdc4-0b00000091578ccd2751-90a4-40f2-b9f3-61edf84421f4 | no = sign | + | new | c29tZS1yYW5kb20tZmlsZUlkPWFub3RoZXItcmFuZG9tLWZpbGVJZA== | some-random-fileId=another-random-fileId | some random string | + | new | GQyMzgtYWE5Mi00MmNlLWJkxzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bd�4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and � sign | + | spaces | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3PThjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bdc4-0b0000009157=8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with = sign | + | spaces | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3OGNjZDI3NTEtOTBhNC00MGYyLWI5ZjMtNjFlZGY4NDQyMWY0 | 1284d238-aa92-42ce-bdc4-0b00000091578ccd2751-90a4-40f2-b9f3-61edf84421f4 | no = sign | + | spaces | c29tZS1yYW5kb20tZmlsZUlkPWFub3RoZXItcmFuZG9tLWZpbGVJZA== | some-random-fileId=another-random-fileId | some random string | + | spaces | GQyMzgtYWE5Mi00MmNlLWJkxzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bd�4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and � sign | + + + Scenario Outline: file versions sets back after getting deleted and restored from trashbin + Given using DAV path + And user "Alice" has uploaded file with content "Old Test Content." to "/davtest.txt" And user "Alice" has uploaded file with content "New Test Content." to "/davtest.txt" And the version folder of file "/davtest.txt" for user "Alice" should contain "1" element And user "Alice" has deleted file "/davtest.txt" @@ -246,33 +370,56 @@ Feature: dav-versions When user "Alice" restores version index "1" of file "/davtest.txt" using the WebDAV API Then the HTTP status code should be "204" And the content of file "/davtest.txt" for user "Alice" should be "Old Test Content." + Examples: + | dav-path-version | + | new | + | spaces | - Scenario: upload the same file twice with the same mtime and a version is available - Given user "Alice" has uploaded file "filesForUpload/textfile.txt" to "file.txt" with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the WebDAV API + Scenario Outline: upload the same file twice with the same mtime and a version is available + Given using DAV path + And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "file.txt" with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the WebDAV API When user "Alice" uploads file "filesForUpload/textfile.txt" to "file.txt" with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the WebDAV API Then the HTTP status code should be "204" And the version folder of file "/file.txt" for user "Alice" should contain "1" element + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: upload the same file more than twice with the same mtime and only one version is available - Given user "Alice" has uploaded file "filesForUpload/textfile.txt" to "file.txt" with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the WebDAV API + Scenario Outline: upload the same file more than twice with the same mtime and only one version is available + Given using DAV path + And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "file.txt" with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the WebDAV API And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "file.txt" with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the WebDAV API When user "Alice" uploads file "filesForUpload/textfile.txt" to "file.txt" with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the WebDAV API Then the HTTP status code should be "204" And the version folder of file "/file.txt" for user "Alice" should contain "1" element + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: upload the same file twice with the same mtime and no version after restoring - Given user "Alice" has uploaded file "filesForUpload/textfile.txt" to "file.txt" with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the WebDAV API + Scenario Outline: upload the same file twice with the same mtime and no version after restoring + Given using DAV path + And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "file.txt" with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the WebDAV API And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "file.txt" with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the WebDAV API When user "Alice" restores version index "1" of file "/file.txt" using the WebDAV API Then the HTTP status code should be "204" And the version folder of file "/file.txt" for user "Alice" should contain "0" element + Examples: + | dav-path-version | + | old | + | new | + | spaces | @skipOnReva - Scenario: sharer of a file can see the old version information when the sharee changes the content of the file - Given user "Brian" has been created with default attributes and without skeleton files + Scenario Outline: sharer of a file can see the old version information when the sharee changes the content of the file + Given using DAV path + And user "Brian" has been created with default attributes and without skeleton files And user "Alice" has uploaded file with content "First content" to "sharefile.txt" And user "Alice" has sent the following resource share invitation: | resource | sharefile.txt | @@ -286,10 +433,16 @@ Feature: dav-versions And the version folder of file "/sharefile.txt" for user "Alice" should contain "1" element When user "Brian" gets the number of versions of file "/Shares/sharefile.txt" Then the HTTP status code should be "403" + Examples: + | dav-path-version | + | old | + | new | + | spaces | @skipOnReva - Scenario: sharer of a file can restore the original content of a shared file after the file has been modified by the sharee - Given user "Brian" has been created with default attributes and without skeleton files + Scenario Outline: sharer of a file can restore the original content of a shared file after the file has been modified by the sharee + Given using DAV path + And user "Brian" has been created with default attributes and without skeleton files And user "Alice" has uploaded file with content "First content" to "sharefile.txt" And user "Alice" has sent the following resource share invitation: | resource | sharefile.txt | @@ -303,10 +456,16 @@ Feature: dav-versions Then the HTTP status code should be "204" And the content of file "/sharefile.txt" for user "Alice" should be "First content" And the content of file "/Shares/sharefile.txt" for user "Brian" should be "First content" + Examples: + | dav-path-version | + | old | + | new | + | spaces | @skipOnReva - Scenario: sharer can restore a file inside a shared folder modified by sharee - Given user "Brian" has been created with default attributes and without skeleton files + Scenario Outline: sharer can restore a file inside a shared folder modified by sharee + Given using DAV path + And user "Brian" has been created with default attributes and without skeleton files And user "Alice" has created folder "/sharingfolder" And user "Alice" has sent the following resource share invitation: | resource | sharingfolder | @@ -321,10 +480,16 @@ Feature: dav-versions Then the HTTP status code should be "204" And the content of file "/sharingfolder/sharefile.txt" for user "Alice" should be "First content" And the content of file "/Shares/sharingfolder/sharefile.txt" for user "Brian" should be "First content" + Examples: + | dav-path-version | + | old | + | new | + | spaces | @skipOnReva - Scenario: sharee cannot see a version of a file inside a shared folder when modified by sharee - Given user "Brian" has been created with default attributes and without skeleton files + Scenario Outline: sharee cannot see a version of a file inside a shared folder when modified by sharee + Given using DAV path + And user "Brian" has been created with default attributes and without skeleton files And user "Alice" has created folder "/sharingfolder" And user "Alice" has sent the following resource share invitation: | resource | sharingfolder | @@ -339,10 +504,16 @@ Feature: dav-versions Then the HTTP status code should be "403" And the content of file "/Shares/sharingfolder/sharefile.txt" for user "Brian" should be "Second content" And the content of file "/sharingfolder/sharefile.txt" for user "Alice" should be "Second content" + Examples: + | dav-path-version | + | old | + | new | + | spaces | @skipOnReva - Scenario: sharer can restore a file inside a shared folder created by sharee and modified by sharer - Given user "Brian" has been created with default attributes and without skeleton files + Scenario Outline: sharer can restore a file inside a shared folder created by sharee and modified by sharer + Given using DAV path + And user "Brian" has been created with default attributes and without skeleton files And user "Alice" has created folder "/sharingfolder" And user "Alice" has sent the following resource share invitation: | resource | sharingfolder | @@ -357,10 +528,16 @@ Feature: dav-versions Then the HTTP status code should be "204" And the content of file "/sharingfolder/sharefile.txt" for user "Alice" should be "First content" And the content of file "/Shares/sharingfolder/sharefile.txt" for user "Brian" should be "First content" + Examples: + | dav-path-version | + | old | + | new | + | spaces | @skipOnReva - Scenario: sharer can restore a file inside a shared folder created by sharee and modified by sharee - Given user "Brian" has been created with default attributes and without skeleton files + Scenario Outline: sharer can restore a file inside a shared folder created by sharee and modified by sharee + Given using DAV path + And user "Brian" has been created with default attributes and without skeleton files And user "Alice" has created folder "/sharingfolder" And user "Alice" has sent the following resource share invitation: | resource | sharingfolder | @@ -375,10 +552,16 @@ Feature: dav-versions Then the HTTP status code should be "204" And the content of file "/sharingfolder/sharefile.txt" for user "Alice" should be "old content" And the content of file "/Shares/sharingfolder/sharefile.txt" for user "Brian" should be "old content" + Examples: + | dav-path-version | + | old | + | new | + | spaces | @skipOnReva - Scenario: sharer can restore a file inside a group shared folder modified by sharee - Given user "Brian" has been created with default attributes and without skeleton files + Scenario Outline: sharer can restore a file inside a group shared folder modified by sharee + Given using DAV path + And user "Brian" has been created with default attributes and without skeleton files And user "Carol" has been created with default attributes and without skeleton files And group "grp1" has been created And user "Brian" has been added to group "grp1" @@ -400,6 +583,11 @@ Feature: dav-versions And the content of file "/sharingfolder/sharefile.txt" for user "Alice" should be "First content" And the content of file "/Shares/sharingfolder/sharefile.txt" for user "Brian" should be "First content" And the content of file "/Shares/sharingfolder/sharefile.txt" for user "Carol" should be "First content" + Examples: + | dav-path-version | + | old | + | new | + | spaces | @skipOnReva Scenario Outline: moving a file (with versions) into a shared folder as the sharer @@ -431,10 +619,14 @@ Feature: dav-versions | new | Viewer | | new | Uploader | | new | Editor | + | spaces | Viewer | + | spaces | Uploader | + | spaces | Editor | @skipOnReva - Scenario: sharee tries to get file versions of file not shared by the sharer - Given user "Brian" has been created with default attributes and without skeleton files + Scenario Outline: sharee tries to get file versions of file not shared by the sharer + Given using DAV path + And user "Brian" has been created with default attributes and without skeleton files And user "Alice" has uploaded file with content "textfile0" to "textfile0.txt" And user "Alice" has uploaded file with content "textfile1" to "textfile1.txt" And user "Alice" has sent the following resource share invitation: @@ -447,10 +639,16 @@ Feature: dav-versions When user "Brian" tries to get versions of file "textfile1.txt" from "Alice" Then the HTTP status code should be "404" And the value of the item "//s:exception" in the response about user "Alice" should be "Sabre\DAV\Exception\NotFound" + Examples: + | dav-path-version | + | old | + | new | + | spaces | @skipOnStorage:ceph @skipOnReva - Scenario: receiver tries get file versions of shared file from the sharer - Given user "Brian" has been created with default attributes and without skeleton files + Scenario Outline: receiver tries get file versions of shared file from the sharer + Given using DAV path + And user "Brian" has been created with default attributes and without skeleton files And user "Alice" has uploaded file with content "textfile0" to "textfile0.txt" And user "Alice" has uploaded file with content "version 1" to "textfile0.txt" And user "Alice" has uploaded file with content "version 2" to "textfile0.txt" @@ -464,10 +662,16 @@ Feature: dav-versions And user "Brian" has a share "textfile0.txt" synced When user "Brian" tries to get versions of file "textfile0.txt" from "Alice" Then the HTTP status code should be "403" + Examples: + | dav-path-version | + | old | + | new | + | spaces | @skipOnReva - Scenario: receiver tries get file versions of shared file before receiving it - Given user "Brian" has been created with default attributes and without skeleton files + Scenario Outline: receiver tries get file versions of shared file before receiving it + Given using DAV path + And user "Brian" has been created with default attributes and without skeleton files And user "Alice" has uploaded file with content "textfile0" to "textfile0.txt" And user "Alice" has uploaded file with content "version 1" to "textfile0.txt" And user "Alice" has uploaded file with content "version 2" to "textfile0.txt" @@ -481,10 +685,16 @@ Feature: dav-versions When user "Brian" tries to get versions of file "textfile0.txt" from "Alice" Then the HTTP status code should be "403" And the value of the item "//s:exception" in the response about user "Alice" should be "Sabre\DAV\Exception\Forbidden" + Examples: + | dav-path-version | + | old | + | new | + | spaces | @issue-enterprise-6249 - Scenario: upload empty content file and check versions after multiple restores - Given user "Alice" has uploaded file with content "" to "textfile.txt" + Scenario Outline: upload empty content file and check versions after multiple restores + Given using DAV path + And user "Alice" has uploaded file with content "" to "textfile.txt" And user "Alice" has uploaded file with content "test content" to "textfile.txt" And the version folder of file "textfile.txt" for user "Alice" should contain "1" element When user "Alice" restores version index "1" of file "textfile.txt" using the WebDAV API @@ -495,10 +705,16 @@ Feature: dav-versions Then the HTTP status code should be "204" And the content of file "textfile.txt" for user "Alice" should be "test content" And the version folder of file "textfile.txt" for user "Alice" should contain "1" elements + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: update with empty content and check versions after multiple restores - Given user "Alice" has uploaded file with content "test content" to "textfile.txt" + Scenario Outline: update with empty content and check versions after multiple restores + Given using DAV path + And user "Alice" has uploaded file with content "test content" to "textfile.txt" And user "Alice" has uploaded file with content "" to "textfile.txt" And the version folder of file "textfile.txt" for user "Alice" should contain "1" element When user "Alice" restores version index "1" of file "textfile.txt" using the WebDAV API @@ -509,3 +725,8 @@ Feature: dav-versions Then the HTTP status code should be "204" And the content of file "textfile.txt" for user "Alice" should be "" And the version folder of file "textfile.txt" for user "Alice" should contain "1" elements + Examples: + | dav-path-version | + | old | + | new | + | spaces | diff --git a/tests/acceptance/features/coreApiWebdavDelete/deleteFile.feature b/tests/acceptance/features/coreApiWebdavDelete/deleteFile.feature index 6324ea038d0..61cab71f3bf 100644 --- a/tests/acceptance/features/coreApiWebdavDelete/deleteFile.feature +++ b/tests/acceptance/features/coreApiWebdavDelete/deleteFile.feature @@ -132,11 +132,17 @@ Feature: delete file | spaces | - Scenario: delete a file of size zero byte - Given user "Alice" has uploaded file "filesForUpload/zerobyte.txt" to "/zerobyte.txt" + Scenario Outline: delete a file of size zero byte + Given using DAV path + And user "Alice" has uploaded file "filesForUpload/zerobyte.txt" to "/zerobyte.txt" When user "Alice" deletes file "/zerobyte.txt" using the WebDAV API Then the HTTP status code should be "204" And as "Alice" file "/zerobyte.txt" should not exist + Examples: + | dav-path-version | + | old | + | new | + | spaces | @issue-9619 Scenario: delete a file using file-id diff --git a/tests/acceptance/features/coreApiWebdavEtagPropagation2/createFolder.feature b/tests/acceptance/features/coreApiWebdavEtagPropagation2/createFolder.feature index 455e02de40d..4f609c4380e 100644 --- a/tests/acceptance/features/coreApiWebdavEtagPropagation2/createFolder.feature +++ b/tests/acceptance/features/coreApiWebdavEtagPropagation2/createFolder.feature @@ -108,9 +108,8 @@ Feature: propagation of etags when creating folders | new | @env-config @issue-4251 @issue-10331 - Scenario Outline: creating a folder in a publicly shared folder changes its etag for the sharer + Scenario: creating a folder in a publicly shared folder changes its etag for the sharer Given the config "OCIS_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD" has been set to "false" - And using DAV path And user "Alice" has created folder "/folder" And using SharingNG And user "Alice" has created the following resource link share: @@ -125,7 +124,3 @@ Feature: propagation of etags when creating folders | user | path | | Alice | / | | Alice | /folder | - Examples: - | dav-path-version | - | new | - | spaces | diff --git a/tests/acceptance/features/coreApiWebdavEtagPropagation2/restoreVersion.feature b/tests/acceptance/features/coreApiWebdavEtagPropagation2/restoreVersion.feature index 04057361439..5c1704d5273 100644 --- a/tests/acceptance/features/coreApiWebdavEtagPropagation2/restoreVersion.feature +++ b/tests/acceptance/features/coreApiWebdavEtagPropagation2/restoreVersion.feature @@ -6,12 +6,12 @@ Feature: propagation of etags when restoring a version of a file Background: Given using OCS API version "2" - And using new DAV path And user "Alice" has been created with default attributes and without skeleton files @skipOnStorage:ceph @skipOnStorage:scality - Scenario: restoring a file changes the etags of all parents - Given user "Alice" has created folder "/upload" + Scenario Outline: restoring a file changes the etags of all parents + Given using DAV path + And user "Alice" has created folder "/upload" And user "Alice" has created folder "/upload/sub" And user "Alice" has uploaded file with content "uploaded content" to "/upload/sub/file.txt" And user "Alice" has uploaded file with content "changed content" to "/upload/sub/file.txt" @@ -25,3 +25,8 @@ Feature: propagation of etags when restoring a version of a file | Alice | / | | Alice | /upload | | Alice | /upload/sub | + Examples: + | dav-path-version | + | old | + | new | + | spaces | diff --git a/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature b/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature index d778a46c40a..52f459874a6 100644 --- a/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature +++ b/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature @@ -34,6 +34,9 @@ Feature: move (rename) file | new | Viewer | | new | Uploader | | new | Editor | + | spaces | Viewer | + | spaces | Uploader | + | spaces | Editor | Scenario Outline: sharee tries to move a file into a shared folder @@ -61,6 +64,9 @@ Feature: move (rename) file | new | Viewer | | new | Uploader | | new | Editor | + | spaces | Viewer | + | spaces | Uploader | + | spaces | Editor | Scenario Outline: moving a file out of a shared folder as the sharer @@ -88,6 +94,9 @@ Feature: move (rename) file | new | Viewer | | new | Uploader | | new | Editor | + | spaces | Viewer | + | spaces | Uploader | + | spaces | Editor | Scenario Outline: moving a file out of a shared folder as the sharee @@ -114,6 +123,9 @@ Feature: move (rename) file | new | Viewer | | new | Uploader | | new | Editor | + | spaces | Viewer | + | spaces | Uploader | + | spaces | Editor | Scenario Outline: moving a folder into a shared folder the sharer @@ -142,6 +154,9 @@ Feature: move (rename) file | new | Viewer | | new | Uploader | | new | Editor | + | spaces | Viewer | + | spaces | Uploader | + | spaces | Editor | Scenario Outline: moving a folder into a shared folder as the sharee @@ -170,6 +185,9 @@ Feature: move (rename) file | new | Viewer | | new | Uploader | | new | Editor | + | spaces | Viewer | + | spaces | Uploader | + | spaces | Editor | Scenario Outline: moving a folder out of a shared folder as the sharer @@ -200,6 +218,9 @@ Feature: move (rename) file | new | Viewer | | new | Uploader | | new | Editor | + | spaces | Viewer | + | spaces | Uploader | + | spaces | Editor | Scenario Outline: moving a folder out of a shared folder as the sharee @@ -229,6 +250,9 @@ Feature: move (rename) file | new | Viewer | | new | Uploader | | new | Editor | + | spaces | Viewer | + | spaces | Uploader | + | spaces | Editor | Scenario Outline: sharee moves a file within a shared folder (change/all permissions) @@ -256,6 +280,8 @@ Feature: move (rename) file | old | Editor | | new | Uploader | | new | Editor | + | spaces | Uploader | + | spaces | Editor | Scenario Outline: sharee tries to move a file within a shared folder (read permissions) @@ -281,6 +307,7 @@ Feature: move (rename) file | dav-path-version | | old | | new | + | spaces | @issue-1976 Scenario Outline: sharee tries to move a file into same shared folder with same name @@ -308,3 +335,6 @@ Feature: move (rename) file | new | Viewer | | new | Uploader | | new | Editor | + | spaces | Viewer | + | spaces | Uploader | + | spaces | Editor | diff --git a/tests/acceptance/features/coreApiWebdavOperations/downloadFile.feature b/tests/acceptance/features/coreApiWebdavOperations/downloadFile.feature index 7e7c3f058c7..cff07f3205c 100644 --- a/tests/acceptance/features/coreApiWebdavOperations/downloadFile.feature +++ b/tests/acceptance/features/coreApiWebdavOperations/downloadFile.feature @@ -239,7 +239,7 @@ Feature: download file | spaces | 'quote'single'.txt | %27quote%27single%27.txt | @smokeTest @issue-8361 @skipOnReva - Scenario Outline: downloading a file should serve security headers (file with doubel quotes) + Scenario Outline: downloading a file should serve security headers (file with double quotes) Given using DAV path And user "Alice" has uploaded file with content "test file" to '/"quote"double".txt' When user "Alice" downloads file '/"quote"double".txt' using the WebDAV API @@ -261,15 +261,27 @@ Feature: download file | spaces | - Scenario: download a zero byte size file - Given user "Alice" has uploaded file "filesForUpload/zerobyte.txt" to "/zerobyte.txt" + Scenario Outline: download a zero byte size file + Given using DAV path + And user "Alice" has uploaded file "filesForUpload/zerobyte.txt" to "/zerobyte.txt" When user "Alice" downloads file "/zerobyte.txt" using the WebDAV API Then the HTTP status code should be "200" And the size of the downloaded file should be 0 bytes + Examples: + | dav-path-version | + | old | + | new | + | spaces | - Scenario: try to download recently deleted file + Scenario Outline: try to download recently deleted file + Given using DAV path When user "Alice" deletes file "textfile0.txt" using the WebDAV API Then the HTTP status code should be "204" When user "Alice" tries to download file "textfile0.txt" using the WebDAV API Then the HTTP status code should be "404" + Examples: + | dav-path-version | + | old | + | new | + | spaces | diff --git a/tests/acceptance/features/coreApiWebdavPreviews/previews.feature b/tests/acceptance/features/coreApiWebdavPreviews/previews.feature index 9f0d18c44ee..714f09e031c 100644 --- a/tests/acceptance/features/coreApiWebdavPreviews/previews.feature +++ b/tests/acceptance/features/coreApiWebdavPreviews/previews.feature @@ -169,6 +169,7 @@ Feature: previews of files downloaded through the webdav API And the value of the item "/d:error/s:exception" in the response about user "Alice" should be "Sabre\DAV\Exception\NotFound" Examples: | dav-path-version | + | old | | new | | spaces | diff --git a/tests/acceptance/features/coreApiWebdavPreviews/previewsAutoAdustedSizing.feature b/tests/acceptance/features/coreApiWebdavPreviews/previewsAutoAdustedSizing.feature index 3793f9829e4..2389049385b 100644 --- a/tests/acceptance/features/coreApiWebdavPreviews/previewsAutoAdustedSizing.feature +++ b/tests/acceptance/features/coreApiWebdavPreviews/previewsAutoAdustedSizing.feature @@ -12,14 +12,25 @@ Feature: sizing of previews of files downloaded through the webdav API Scenario Outline: download different sizes of previews of file - Given user "Alice" has uploaded file "filesForUpload/lorem.txt" to "/parent.txt" + Given using DAV path + And user "Alice" has uploaded file "filesForUpload/lorem.txt" to "/parent.txt" When user "Alice" downloads the preview of "/parent.txt" with width and height using the WebDAV API Then the HTTP status code should be "200" And the downloaded image should be pixels wide and pixels high Examples: - | request-width | request-height | return-width | return-height | - | 1 | 1 | 16 | 16 | - | 32 | 32 | 32 | 32 | - | 1024 | 1024 | 640 | 480 | - | 1 | 1024 | 16 | 16 | - | 1024 | 1 | 640 | 480 | + | request-width | request-height | return-width | return-height | dav-path-version | + | 1 | 1 | 16 | 16 | old | + | 32 | 32 | 32 | 32 | old | + | 1024 | 1024 | 640 | 480 | old | + | 1 | 1024 | 16 | 16 | old | + | 1024 | 1 | 640 | 480 | old | + | 1 | 1 | 16 | 16 | new | + | 32 | 32 | 32 | 32 | new | + | 1024 | 1024 | 640 | 480 | new | + | 1 | 1024 | 16 | 16 | new | + | 1024 | 1 | 640 | 480 | new | + | 1 | 1 | 16 | 16 | spaces | + | 32 | 32 | 32 | 32 | spaces | + | 1024 | 1024 | 640 | 480 | spaces | + | 1 | 1024 | 16 | 16 | spaces | + | 1024 | 1 | 640 | 480 | spaces | diff --git a/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature b/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature index 3021edc5501..9ff25cedbac 100644 --- a/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature +++ b/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature @@ -68,8 +68,10 @@ Feature: copy file | dav-path-version | permissions-role | | old | Viewer | | new | Viewer | + | spaces | Viewer | | old | Secure Viewer | | new | Secure Viewer | + | spaces | Secure Viewer | @skipOnReva Scenario Outline: copying a file to overwrite a file into a folder with no permissions @@ -92,6 +94,7 @@ Feature: copy file | dav-path-version | | old | | new | + | spaces | @issue-1345 @issue-2177 Scenario Outline: copying file to a path with extension .part should not be possible @@ -341,6 +344,7 @@ Feature: copy file | dav-path-version | | old | | new | + | spaces | @issue-1239 @skipOnReva Scenario Outline: copy a file into a folder at different level received as a user share @@ -372,6 +376,7 @@ Feature: copy file | dav-path-version | | old | | new | + | spaces | @issue-1239 @skipOnReva Scenario Outline: copy a file into a file at different level received as a user share @@ -402,6 +407,7 @@ Feature: copy file | dav-path-version | | old | | new | + | spaces | @issue-1239 @skipOnReva Scenario Outline: copy a folder into a file at different level received as a user share @@ -432,6 +438,7 @@ Feature: copy file | dav-path-version | | old | | new | + | spaces | @issue-1239 @issue-9753 @skipOnReva Scenario Outline: copy a file over the top of an existing folder received as a group share @@ -520,6 +527,7 @@ Feature: copy file | dav-path-version | | old | | new | + | spaces | @issue-1239 @skipOnReva Scenario Outline: copy a file into a folder at different level received as a group share @@ -554,6 +562,7 @@ Feature: copy file | dav-path-version | | old | | new | + | spaces | @issue-1239 @skipOnReva Scenario Outline: copy a file into a file at different level received as a group share @@ -587,6 +596,7 @@ Feature: copy file | dav-path-version | | old | | new | + | spaces | @issue-1239 @skipOnReva Scenario Outline: copy a folder into a file at different level received as a group share @@ -620,6 +630,7 @@ Feature: copy file | dav-path-version | | old | | new | + | spaces | Scenario Outline: copy a file of size zero byte @@ -695,6 +706,7 @@ Feature: copy file | dav-path-version | | old | | new | + | spaces | @skipOnReva Scenario Outline: copying a file into a shared folder as the sharer @@ -717,6 +729,7 @@ Feature: copy file | dav-path-version | | old | | new | + | spaces | @skipOnReva Scenario Outline: copying a file out of a shared folder as the sharee @@ -740,6 +753,7 @@ Feature: copy file | dav-path-version | | old | | new | + | spaces | @skipOnReva Scenario Outline: sharee copies a file from a shared folder, shared with viewer permission @@ -761,6 +775,7 @@ Feature: copy file | dav-path-version | | old | | new | + | spaces | @skipOnReva @env-config Scenario Outline: sharee copies a file from a shared folder, shared with secure viewer permission @@ -783,6 +798,7 @@ Feature: copy file | dav-path-version | | old | | new | + | spaces | @skipOnReva Scenario Outline: copying a file out of a shared folder as the sharer @@ -806,6 +822,7 @@ Feature: copy file | dav-path-version | | old | | new | + | spaces | Scenario Outline: copying a hidden file @@ -862,6 +879,7 @@ Feature: copy file | dav-path-version | | old | | new | + | spaces | @skipOnReva @env-config Scenario Outline: copying a file between shares received from different users when one share is shared via Viewer and Secure viewer permission @@ -898,12 +916,16 @@ Feature: copy file | dav-path-version | permissions-role-1 | permissions-role-2 | | old | Secure Viewer | Secure Viewer | | new | Secure Viewer | Secure Viewer | + | spaces | Secure Viewer | Secure Viewer | | old | Secure Viewer | Viewer | | new | Secure Viewer | Viewer | + | spaces | Secure Viewer | Viewer | | old | Editor | Secure Viewer | | new | Editor | Secure Viewer | + | spaces | Editor | Secure Viewer | | old | Viewer | Secure Viewer | | new | Viewer | Secure Viewer | + | spaces | Viewer | Secure Viewer | @skipOnReva Scenario Outline: copying a folder between shares received from different users @@ -938,6 +960,7 @@ Feature: copy file | dav-path-version | | old | | new | + | spaces | @skipOnReva Scenario Outline: copying a file to a folder that is shared with multiple users @@ -969,6 +992,7 @@ Feature: copy file | dav-path-version | | old | | new | + | spaces | Scenario Outline: copy a folder into another one diff --git a/tests/acceptance/features/coreApiWebdavUpload/uploadFileUsingOldChunking.feature b/tests/acceptance/features/coreApiWebdavUpload/uploadFileUsingOldChunking.feature index 00e2496aba9..484f342b344 100644 --- a/tests/acceptance/features/coreApiWebdavUpload/uploadFileUsingOldChunking.feature +++ b/tests/acceptance/features/coreApiWebdavUpload/uploadFileUsingOldChunking.feature @@ -24,6 +24,7 @@ Feature: upload file using old chunking Examples: | dav-path-version | | old | + | new | | spaces | @@ -40,6 +41,7 @@ Feature: upload file using old chunking Examples: | dav-path-version | | old | + | new | | spaces | @@ -56,6 +58,7 @@ Feature: upload file using old chunking Examples: | dav-path-version | | old | + | new | | spaces | @@ -64,7 +67,7 @@ Feature: upload file using old chunking And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "textfile0.txt" And user "Alice" has copied file "/textfile0.txt" to "/existingFile.txt" And user "Alice" has stored id of file "/existingFile.txt" - When user "Alice" uploads file "filesForUpload/textfile.txt" to "/existingFile.txt" in 3 chunks with old chunking and using the WebDAV API + When user "Alice" uploads file "filesForUpload/textfile.txt" to "/existingFile.txt" in 3 chunks using the WebDAV API Then the HTTP status code should be "201" And user "Alice" file "/existingFile.txt" should have the previously stored id And the content of file "/existingFile.txt" for user "Alice" should be: @@ -76,6 +79,7 @@ Feature: upload file using old chunking Examples: | dav-path-version | | old | + | new | | spaces | @smokeTest @@ -97,6 +101,8 @@ Feature: upload file using old chunking | dav-path-version | file-name | | old | &#? TIÄFÜ @a#8a=b?c=d ?abc=oc # | | old | 0 | + | new | &#? TIÄFÜ @a#8a=b?c=d ?abc=oc # | + | new | 0 | | spaces | &#? TIÄFÜ @a#8a=b?c=d ?abc=oc # | | spaces | 0 | @@ -116,4 +122,5 @@ Feature: upload file using old chunking Examples: | dav-path-version | | old | + | new | | spaces | diff --git a/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFile.feature b/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFile.feature index 40a0d21fc4f..18889c73d0f 100644 --- a/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFile.feature +++ b/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFile.feature @@ -132,6 +132,7 @@ Feature: upload file | dav-path-version | | old | | new | + | spaces | @issue-10346 Scenario Outline: upload a twice file in chunks with TUS and versions are available diff --git a/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFileMtimeShares.feature b/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFileMtimeShares.feature index 32cb79a1a91..ce7908bd2e0 100644 --- a/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFileMtimeShares.feature +++ b/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFileMtimeShares.feature @@ -47,6 +47,7 @@ Feature: upload file | dav-path-version | | old | | new | + | spaces | @issue-10346 Scenario Outline: overwriting a file with mtime in a received share @@ -87,3 +88,4 @@ Feature: upload file | dav-path-version | | old | | new | + | spaces | diff --git a/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToNonExistingFolder.feature b/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToNonExistingFolder.feature index fc9439bc2c8..bb3db407c03 100644 --- a/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToNonExistingFolder.feature +++ b/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToNonExistingFolder.feature @@ -17,6 +17,7 @@ Feature: upload file | dav-path-version | | old | | new | + | spaces | Scenario Outline: attempt to upload a file into a nonexistent folder @@ -49,6 +50,7 @@ Feature: upload file | dav-path-version | | old | | new | + | spaces | @skipOnReva Scenario Outline: attempt to upload a file into a nonexistent folder within correctly received read only share @@ -69,3 +71,4 @@ Feature: upload file | dav-path-version | | old | | new | + | spaces | diff --git a/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature b/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature index 8b30e5d2ff7..f649903a09e 100644 --- a/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature +++ b/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature @@ -106,6 +106,7 @@ Feature: upload file to shared folder | dav-path-version | | old | | new | + | spaces | Scenario Outline: upload a file to shared folder with checksum should return the checksum in the propfind for sharee @@ -130,6 +131,7 @@ Feature: upload file to shared folder | dav-path-version | | old | | new | + | spaces | Scenario Outline: upload a file to shared folder with checksum should return the checksum in the download header for sharee @@ -154,6 +156,7 @@ Feature: upload file to shared folder | dav-path-version | | old | | new | + | spaces | Scenario Outline: sharer shares a file with correct checksum should return the checksum in the propfind for sharee @@ -177,6 +180,7 @@ Feature: upload file to shared folder | dav-path-version | | old | | new | + | spaces | Scenario Outline: sharer shares a file with correct checksum should return the checksum in the download header for sharee @@ -200,6 +204,7 @@ Feature: upload file to shared folder | dav-path-version | | old | | new | + | spaces | Scenario Outline: sharee uploads a file to a received share folder with correct checksum @@ -290,6 +295,7 @@ Feature: upload file to shared folder | dav-path-version | | old | | new | + | spaces | Scenario Outline: sharee uploads a chunked file with correct checksum to a received share folder should work From 80f6b01d0b00026b028242abf8556f944e570d18 Mon Sep 17 00:00:00 2001 From: Prajwol Amatya Date: Thu, 14 Nov 2024 13:04:51 +0545 Subject: [PATCH 2/4] check for both with and without remote.php in dav path --- .drone.star | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.drone.star b/.drone.star index de7efcb1bf2..69b9ff5c3f5 100644 --- a/.drone.star +++ b/.drone.star @@ -942,7 +942,7 @@ def localApiTestPipeline(ctx): "federationServer": False, "collaborationServiceNeeded": False, "extraCollaborationEnvironment": {}, - "withRemotePhp": [True, False] if ctx.build.event == "cron" else [True], + "withRemotePhp": [True, False], } if "localApiTests" in config: @@ -1230,7 +1230,7 @@ def apiTests(ctx): debugParts = config["apiTests"]["skipExceptParts"] debugPartsEnabled = (len(debugParts) != 0) defaults = { - "withRemotePhp": [True, False] if ctx.build.event == "cron" else [True], + "withRemotePhp": [True, False], } for runPart in range(1, config["apiTests"]["numberOfParts"] + 1): for withRemotePhp in defaults["withRemotePhp"]: From f31f92a028fe1d3b62a71e43cef89f76e12c61c6 Mon Sep 17 00:00:00 2001 From: Prajwol Amatya Date: Thu, 14 Nov 2024 16:56:10 +0545 Subject: [PATCH 3/4] update expected failure file --- .drone.star | 4 +-- .../expected-failures-without-remotephp.md | 36 ++++++++++--------- .../features/apiGraph/unassignRole.feature | 21 ++++------- 3 files changed, 27 insertions(+), 34 deletions(-) diff --git a/.drone.star b/.drone.star index 69b9ff5c3f5..de7efcb1bf2 100644 --- a/.drone.star +++ b/.drone.star @@ -942,7 +942,7 @@ def localApiTestPipeline(ctx): "federationServer": False, "collaborationServiceNeeded": False, "extraCollaborationEnvironment": {}, - "withRemotePhp": [True, False], + "withRemotePhp": [True, False] if ctx.build.event == "cron" else [True], } if "localApiTests" in config: @@ -1230,7 +1230,7 @@ def apiTests(ctx): debugParts = config["apiTests"]["skipExceptParts"] debugPartsEnabled = (len(debugParts) != 0) defaults = { - "withRemotePhp": [True, False], + "withRemotePhp": [True, False] if ctx.build.event == "cron" else [True], } for runPart in range(1, config["apiTests"]["numberOfParts"] + 1): for withRemotePhp in defaults["withRemotePhp"]: diff --git a/tests/acceptance/expected-failures-without-remotephp.md b/tests/acceptance/expected-failures-without-remotephp.md index aba44ec693d..7d982527ceb 100644 --- a/tests/acceptance/expected-failures-without-remotephp.md +++ b/tests/acceptance/expected-failures-without-remotephp.md @@ -2,8 +2,10 @@ #### [REPORT request without remote.php returns empty result (only with dav/spaces path)](https://github.com/owncloud/ocis/issues/10329) -- [apiContract/sharesReport.feature:127](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiContract/sharesReport.feature#L127) -- [apiContract/sharesReport.feature:156](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiContract/sharesReport.feature#L156) +- [apiContract/sharesReport.feature:42](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiContract/sharesReport.feature#L42) +- [apiContract/sharesReport.feature:66](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiContract/sharesReport.feature#L66) +- [apiContract/sharesReport.feature:130](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiContract/sharesReport.feature#L130) +- [apiContract/sharesReport.feature:159](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiContract/sharesReport.feature#L159) - [apiContract/spacesReport.feature:16](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiContract/spacesReport.feature#L16) - [apiContract/spacesReport.feature:34](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiContract/spacesReport.feature#L34) - [apiContract/spacesReport.feature:53](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiContract/spacesReport.feature#L53) @@ -195,7 +197,8 @@ - [apiSpaces/publicLink.feature:40](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpaces/publicLink.feature#L40) - [apiSpacesShares/shareSpacesViaLink.feature:61](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpacesShares/shareSpacesViaLink.feature#L61) - [apiDepthInfinity/propfind.feature:74](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiDepthInfinity/propfind.feature#L74) -- [apiDepthInfinity/propfind.feature:125](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiDepthInfinity/propfind.feature#L125) +- [apiDepthInfinity/propfind.feature:140](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiDepthInfinity/propfind.feature#L140) +- [apiDepthInfinity/propfind.feature:141](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiDepthInfinity/propfind.feature#L141) - [apiLocks/lockFiles.feature:490](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/lockFiles.feature#L490) - [apiLocks/lockFiles.feature:487](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/lockFiles.feature#L487) - [apiLocks/lockFiles.feature:488](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/lockFiles.feature#L488) @@ -210,21 +213,21 @@ - [apiLocks/unlockFiles.feature:323](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/unlockFiles.feature#L323) - [apiActivities/shareActivities.feature:1775](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiActivities/shareActivities.feature#L1775) - [apiActivities/shareActivities.feature:1914](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiActivities/shareActivities.feature#L1914) -- [apiAntivirus/antivirus.feature:113](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L113) - [apiAntivirus/antivirus.feature:114](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L114) - [apiAntivirus/antivirus.feature:115](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L115) - [apiAntivirus/antivirus.feature:116](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L116) - [apiAntivirus/antivirus.feature:117](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L117) - [apiAntivirus/antivirus.feature:118](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L118) -- [apiAntivirus/antivirus.feature:139](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L139) +- [apiAntivirus/antivirus.feature:119](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L119) - [apiAntivirus/antivirus.feature:140](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L140) - [apiAntivirus/antivirus.feature:141](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L141) - [apiAntivirus/antivirus.feature:142](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L142) - [apiAntivirus/antivirus.feature:143](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L143) - [apiAntivirus/antivirus.feature:144](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L144) -- [apiAntivirus/antivirus.feature:401](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L401) -- [apiAntivirus/antivirus.feature:402](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L402) -- [apiAntivirus/antivirus.feature:403](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L403) +- [apiAntivirus/antivirus.feature:145](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L145) +- [apiAntivirus/antivirus.feature:406](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L406) +- [apiAntivirus/antivirus.feature:407](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L407) +- [apiAntivirus/antivirus.feature:408](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L408) - [apiCollaboration/wopi.feature:956](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiCollaboration/wopi.feature#L956) - [apiCollaboration/wopi.feature:957](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiCollaboration/wopi.feature#L957) - [apiCollaboration/wopi.feature:958](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiCollaboration/wopi.feature#L958) @@ -300,8 +303,7 @@ - [coreApiWebdavEtagPropagation2/copyFileFolder.feature:135](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavEtagPropagation2/copyFileFolder.feature#L135) - [coreApiWebdavEtagPropagation2/copyFileFolder.feature:136](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavEtagPropagation2/copyFileFolder.feature#L136) - [coreApiWebdavEtagPropagation2/copyFileFolder.feature:137](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavEtagPropagation2/copyFileFolder.feature#L137) -- [coreApiWebdavEtagPropagation2/createFolder.feature:130](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavEtagPropagation2/createFolder.feature#L130) -- [coreApiWebdavEtagPropagation2/createFolder.feature:131](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavEtagPropagation2/createFolder.feature#L131) +- [coreApiWebdavEtagPropagation2/createFolder.feature:111](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavEtagPropagation2/createFolder.feature#L111) - [coreApiWebdavEtagPropagation2/upload.feature:188](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavEtagPropagation2/upload.feature#L188) - [coreApiWebdavEtagPropagation2/upload.feature:189](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavEtagPropagation2/upload.feature#L189) - [coreApiWebdavEtagPropagation2/upload.feature:190](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavEtagPropagation2/upload.feature#L190) @@ -337,19 +339,19 @@ - [coreApiWebdavUploadTUS/uploadFile.feature:109](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFile.feature#L109) - [coreApiWebdavUploadTUS/uploadFile.feature:122](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFile.feature#L122) - [coreApiWebdavUploadTUS/uploadFile.feature:133](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFile.feature#L133) -- [coreApiWebdavUploadTUS/uploadFile.feature:145](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFile.feature#L145) -- [coreApiWebdavUploadTUS/uploadFile.feature:167](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFile.feature#L167) -- [coreApiWebdavUploadTUS/uploadFile.feature:186](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFile.feature#L186) -- [coreApiWebdavUploadTUS/uploadFile.feature:198](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFile.feature#L198) -- [coreApiWebdavUploadTUS/uploadFile.feature:211](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFile.feature#L211) +- [coreApiWebdavUploadTUS/uploadFile.feature:146](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFile.feature#L146) +- [coreApiWebdavUploadTUS/uploadFile.feature:168](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFile.feature#L168) +- [coreApiWebdavUploadTUS/uploadFile.feature:187](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFile.feature#L187) +- [coreApiWebdavUploadTUS/uploadFile.feature:199](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFile.feature#L199) +- [coreApiWebdavUploadTUS/uploadFile.feature:212](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFile.feature#L212) - [coreApiWebdavUploadTUS/uploadFileMtime.feature:16](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFileMtime.feature#L16) - [coreApiWebdavUploadTUS/uploadFileMtime.feature:27](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFileMtime.feature#L27) - [coreApiWebdavUploadTUS/uploadFileMtime.feature:39](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFileMtime.feature#L39) - [coreApiWebdavUploadTUS/uploadFileMtime.feature:51](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFileMtime.feature#L51) - [coreApiWebdavUploadTUS/uploadFileMtimeShares.feature:29](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFileMtimeShares.feature#L29) - [coreApiWebdavUploadTUS/uploadFileMtimeShares.feature:48](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFileMtimeShares.feature#L48) -- [coreApiWebdavUploadTUS/uploadFileMtimeShares.feature:68](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFileMtimeShares.feature#L68) -- [coreApiWebdavUploadTUS/uploadFileMtimeShares.feature:88](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFileMtimeShares.feature#L88) +- [coreApiWebdavUploadTUS/uploadFileMtimeShares.feature:69](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFileMtimeShares.feature#L69) +- [coreApiWebdavUploadTUS/uploadFileMtimeShares.feature:89](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadFileMtimeShares.feature#L89) - [coreApiWebdavUploadTUS/uploadToMoveFolder.feature:20](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToMoveFolder.feature#L20) - [coreApiWebdavUploadTUS/uploadToShare.feature:29](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L29) - [coreApiWebdavUploadTUS/uploadToShare.feature:48](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L48) diff --git a/tests/acceptance/features/apiGraph/unassignRole.feature b/tests/acceptance/features/apiGraph/unassignRole.feature index 7d9cf013f5b..ef4187ec99e 100644 --- a/tests/acceptance/features/apiGraph/unassignRole.feature +++ b/tests/acceptance/features/apiGraph/unassignRole.feature @@ -8,8 +8,7 @@ Feature: unassign user role Scenario Outline: admin user unassigns the role of another user - Given using DAV path - And user "Brian" has been created with default attributes and without skeleton files + Given user "Brian" has been created with default attributes and without skeleton files And the administrator has assigned the role "Admin" to user "Alice" using the Graph API And the administrator has assigned the role "" to user "Brian" using the Graph API When user "Alice" unassigns the role of user "Brian" using the Graph API @@ -18,19 +17,11 @@ Feature: unassign user role When user "Brian" uploads file with content "this step will assign the role to default" to "assign-to-default.txt" using the WebDAV API And user "Brian" should have the role "User" assigned Examples: - | user-role | dav-path-version | - | Admin | old | - | Space Admin | old | - | User | old | - | User Light | old | - | Admin | new | - | Space Admin | new | - | User | new | - | User Light | new | - | Admin | spaces | - | Space Admin | spaces | - | User | spaces | - | User Light | spaces | + | user-role | + | Admin | + | Space Admin | + | User | + | User Light | @issue-6035 Scenario: admin user tries to unassign his/her own role From 9d6bd35bb5e7be56e4bdf9cc77adcd3490c9da80 Mon Sep 17 00:00:00 2001 From: Prajwol Amatya Date: Mon, 18 Nov 2024 16:31:43 +0545 Subject: [PATCH 4/4] extend dav paths versions --- .../expected-failures-API-on-OCIS-storage.md | 5 +- .../expected-failures-without-remotephp.md | 9 +- .../features/apiAntivirus/antivirus.feature | 6 - .../apiDepthInfinity/propfind.feature | 9 +- .../apiSharingNg1/listPermissions.feature | 30 +- .../mergeShare.feature | 16 +- .../accessToPublicLinkShare.feature | 9 +- .../coreApiTrashbin/trashbinDelete.feature | 12 - .../trashbinFilesFolders.feature | 22 -- .../trashbinSharingToShares.feature | 4 - .../trashbinRestore.feature | 5 - .../disableFileVersioning.feature | 47 +-- .../coreApiVersions/fileVersions.feature | 315 ++++-------------- .../restoreVersion.feature | 10 +- 14 files changed, 113 insertions(+), 386 deletions(-) diff --git a/tests/acceptance/expected-failures-API-on-OCIS-storage.md b/tests/acceptance/expected-failures-API-on-OCIS-storage.md index c508636675b..d96a47188c2 100644 --- a/tests/acceptance/expected-failures-API-on-OCIS-storage.md +++ b/tests/acceptance/expected-failures-API-on-OCIS-storage.md @@ -62,7 +62,6 @@ Synchronization features like etag propagation, setting mtime and locking files - [coreApiTrashbin/trashbinSharingToShares.feature:144](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L144) - [coreApiTrashbin/trashbinSharingToShares.feature:202](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L202) - [coreApiTrashbin/trashbinSharingToShares.feature:203](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L203) -- [coreApiTrashbin/trashbinSharingToShares.feature:204](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L204) ### Other @@ -154,7 +153,7 @@ _ocdav: api compatibility, return correct status code_ #### [Trying to delete other user's trashbin item returns 409 for spaces path instead of 404](https://github.com/owncloud/ocis/issues/9791) -- [coreApiTrashbin/trashbinDelete.feature:97](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinDelete.feature#L97) +- [coreApiTrashbin/trashbinDelete.feature:92](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinDelete.feature#L92) #### [MOVE a file into same folder with same name returns 404 instead of 403](https://github.com/owncloud/ocis/issues/1976) @@ -194,7 +193,7 @@ _ocdav: api compatibility, return correct status code_ #### [Trying to restore personal file to file of share received folder returns 403 but the share file is deleted (new dav path)](https://github.com/owncloud/ocis/issues/10356) -- [coreApiTrashbin/trashbinSharingToShares.feature:281](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L281) +- [coreApiTrashbin/trashbinSharingToShares.feature:277](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L277) ### Won't fix diff --git a/tests/acceptance/expected-failures-without-remotephp.md b/tests/acceptance/expected-failures-without-remotephp.md index 7d982527ceb..281c884fa5d 100644 --- a/tests/acceptance/expected-failures-without-remotephp.md +++ b/tests/acceptance/expected-failures-without-remotephp.md @@ -197,8 +197,7 @@ - [apiSpaces/publicLink.feature:40](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpaces/publicLink.feature#L40) - [apiSpacesShares/shareSpacesViaLink.feature:61](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpacesShares/shareSpacesViaLink.feature#L61) - [apiDepthInfinity/propfind.feature:74](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiDepthInfinity/propfind.feature#L74) -- [apiDepthInfinity/propfind.feature:140](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiDepthInfinity/propfind.feature#L140) -- [apiDepthInfinity/propfind.feature:141](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiDepthInfinity/propfind.feature#L141) +- [apiDepthInfinity/propfind.feature:124](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiDepthInfinity/propfind.feature#L124) - [apiLocks/lockFiles.feature:490](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/lockFiles.feature#L490) - [apiLocks/lockFiles.feature:487](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/lockFiles.feature#L487) - [apiLocks/lockFiles.feature:488](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiLocks/lockFiles.feature#L488) @@ -225,9 +224,9 @@ - [apiAntivirus/antivirus.feature:143](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L143) - [apiAntivirus/antivirus.feature:144](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L144) - [apiAntivirus/antivirus.feature:145](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L145) -- [apiAntivirus/antivirus.feature:406](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L406) -- [apiAntivirus/antivirus.feature:407](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L407) -- [apiAntivirus/antivirus.feature:408](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L408) +- [apiAntivirus/antivirus.feature:402](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L402) +- [apiAntivirus/antivirus.feature:403](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L403) +- [apiAntivirus/antivirus.feature:404](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiAntivirus/antivirus.feature#L404) - [apiCollaboration/wopi.feature:956](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiCollaboration/wopi.feature#L956) - [apiCollaboration/wopi.feature:957](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiCollaboration/wopi.feature#L957) - [apiCollaboration/wopi.feature:958](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiCollaboration/wopi.feature#L958) diff --git a/tests/acceptance/features/apiAntivirus/antivirus.feature b/tests/acceptance/features/apiAntivirus/antivirus.feature index d6a552b2597..8e4f8de483c 100644 --- a/tests/acceptance/features/apiAntivirus/antivirus.feature +++ b/tests/acceptance/features/apiAntivirus/antivirus.feature @@ -169,8 +169,6 @@ Feature: antivirus | old | eicar_com.zip | virusFile2.zip | | new | eicar.com | virusFile1.txt | | new | eicar_com.zip | virusFile2.zip | - | spaces | eicar.com | virusFile1.txt | - | spaces | eicar_com.zip | virusFile2.zip | Scenario Outline: upload a file with virus to a user share using spaces dav endpoint @@ -223,8 +221,6 @@ Feature: antivirus | old | eicar_com.zip | virusFile2.zip | | new | eicar.com | virusFile1.txt | | new | eicar_com.zip | virusFile2.zip | - | spaces | eicar.com | virusFile1.txt | - | spaces | eicar_com.zip | virusFile2.zip | Scenario Outline: upload a file with virus to a group share using spaces dav endpoint @@ -433,7 +429,6 @@ Feature: antivirus | dav-path-version | | old | | new | - | spaces | Scenario: try to overwrite a file with the virus content in group share using spaces dav endpoint @@ -497,7 +492,6 @@ Feature: antivirus | dav-path-version | | old | | new | - | spaces | Scenario: try to overwrite a file with the virus content in user share using spaces dav endpoint diff --git a/tests/acceptance/features/apiDepthInfinity/propfind.feature b/tests/acceptance/features/apiDepthInfinity/propfind.feature index 3ffd5828a15..8b600f65a26 100644 --- a/tests/acceptance/features/apiDepthInfinity/propfind.feature +++ b/tests/acceptance/features/apiDepthInfinity/propfind.feature @@ -117,17 +117,15 @@ Feature: PROPFIND with depth:infinity | simple-folder/simple-folder1/simple-folder2/welcome.txt | Examples: | dav-path-version | - | old | | new | | spaces | @issue-10331 - Scenario Outline: get the list of resources in a folder shared through public link with depth infinity when depth infinity is not allowed + Scenario: get the list of resources in a folder shared through public link with depth infinity when depth infinity is not allowed Given the following configs have been set: | config | value | | OCDAV_ALLOW_PROPFIND_DEPTH_INFINITY | false | | OCIS_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD | false | - And using DAV path And using SharingNG And user "Alice" has created the following resource link share: | resource | simple-folder | @@ -135,10 +133,6 @@ Feature: PROPFIND with depth:infinity | permissionsRole | view | When the public lists the resources in the last created public link with depth "infinity" using the WebDAV API Then the HTTP status code should be "400" - Examples: - | dav-path-version | - | new | - | spaces | Scenario Outline: get the list of files in the trashbin with depth infinity when depth infinity is not allowed @@ -153,6 +147,5 @@ Feature: PROPFIND with depth:infinity Then the HTTP status code should be "400" Examples: | dav-path-version | - | old | | new | | spaces | diff --git a/tests/acceptance/features/apiSharingNg1/listPermissions.feature b/tests/acceptance/features/apiSharingNg1/listPermissions.feature index a1ecc27edc1..5b5c3dd881f 100644 --- a/tests/acceptance/features/apiSharingNg1/listPermissions.feature +++ b/tests/acceptance/features/apiSharingNg1/listPermissions.feature @@ -167,7 +167,8 @@ Feature: List a sharing permissions Scenario: user lists permissions of a project space - Given user "Brian" has been created with default attributes and without skeleton files + Given using spaces DAV path + And user "Brian" has been created with default attributes and without skeleton files And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And user "Alice" has created a space "new-space" with the default quota using the Graph API When user "Alice" lists the permissions of space "new-space" using permissions endpoint of the Graph API @@ -289,7 +290,8 @@ Feature: List a sharing permissions @issues-8352 Scenario Outline: sharer lists permissions of a shared project space - Given user "Brian" has been created with default attributes and without skeleton files + Given using spaces DAV path + And user "Brian" has been created with default attributes and without skeleton files And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And user "Alice" has created a space "new-space" with the default quota using the Graph API And user "Alice" has sent the following space share invitation: @@ -1040,7 +1042,8 @@ Feature: List a sharing permissions Scenario: try to lists the permissions of a Personal drive using root endpoint - Given the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API + Given using spaces DAV path + And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And user "Alice" has created a space "new-space" with the default quota using the Graph API When user "Alice" tries to list the permissions of space "Personal" using root endpoint of the Graph API Then the HTTP status code should be "200" @@ -1161,7 +1164,8 @@ Feature: List a sharing permissions Scenario: try to lists the permissions of a Shares drive using root endpoint - Given the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API + Given using spaces DAV path + And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And user "Alice" has created a space "new-space" with the default quota using the Graph API When user "Alice" tries to list the permissions of space "Shares" using root endpoint of the Graph API Then the HTTP status code should be "200" @@ -1184,7 +1188,8 @@ Feature: List a sharing permissions Scenario: space admin invites to a project space with all allowed roles - Given the administrator has assigned the role "Admin" to user "Alice" using the Graph API + Given using spaces DAV path + And the administrator has assigned the role "Admin" to user "Alice" using the Graph API And user "Alice" has created a space "new-space" with the default quota using the Graph API And user "Brian" has been created with default attributes and without skeleton files When user "Alice" lists the permissions of space "new-space" using permissions endpoint of the Graph API @@ -1211,7 +1216,8 @@ Feature: List a sharing permissions Scenario: non-member user tries to list the permissions of a project space using permissions endpoint - Given the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API + Given using spaces DAV path + And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And user "Brian" has been created with default attributes and without skeleton files And user "Alice" has created a space "new-space" with the default quota using the Graph API When user "Brian" tries to list the permissions of space "new-space" owned by "Alice" using permissions endpoint of the Graph API @@ -1267,7 +1273,8 @@ Feature: List a sharing permissions Scenario: try to list the permissions of other user's personal space - Given user "Brian" has been created with default attributes and without skeleton files + Given using spaces DAV path + And user "Brian" has been created with default attributes and without skeleton files When user "Brian" tries to list the permissions of space "Personal" owned by "Alice" using permissions endpoint of the Graph API Then the HTTP status code should be "404" And the JSON data of the response should match @@ -1306,7 +1313,8 @@ Feature: List a sharing permissions Scenario Outline: sharer lists permissions of a shared project space using root endpoint - Given user "Brian" has been created with default attributes and without skeleton files + Given using spaces DAV path + And user "Brian" has been created with default attributes and without skeleton files And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And user "Alice" has created a space "new-space" with the default quota using the Graph API And user "Alice" has sent the following space share invitation: @@ -1582,7 +1590,8 @@ Feature: List a sharing permissions Scenario: user sends share invitation with all allowed roles for a project space using root endpoint - Given the administrator has assigned the role "Admin" to user "Alice" using the Graph API + Given using spaces DAV path + And the administrator has assigned the role "Admin" to user "Alice" using the Graph API And user "Alice" has created a space "new-space" with the default quota using the Graph API And user "Brian" has been created with default attributes and without skeleton files When user "Alice" lists the permissions of space "new-space" using root endpoint of the Graph API @@ -1594,7 +1603,8 @@ Feature: List a sharing permissions @issue-9151 Scenario: non-member user tries to list the permissions of a project space using root endpoint - Given the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API + Given using spaces DAV path + And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And user "Brian" has been created with default attributes and without skeleton files And user "Alice" has created a space "new-space" with the default quota using the Graph API When user "Brian" tries to list the permissions of space "new-space" owned by "Alice" using root endpoint of the Graph API diff --git a/tests/acceptance/features/coreApiShareManagementToShares/mergeShare.feature b/tests/acceptance/features/coreApiShareManagementToShares/mergeShare.feature index 513d6f9616a..d18dd40f399 100644 --- a/tests/acceptance/features/coreApiShareManagementToShares/mergeShare.feature +++ b/tests/acceptance/features/coreApiShareManagementToShares/mergeShare.feature @@ -109,8 +109,7 @@ Feature: sharing And as "Brian" folder "/Shares/merge-test-inside-twogroups-perms (2)" should not exist - Scenario Outline: merging shares for recipient when shared from outside with group then user and recipient renames in between - Given using DAV path + Scenario: merging shares for recipient when shared from outside with group then user and recipient renames in between And user "Alice" has created folder "/merge-test-outside-groups-renamebeforesecondshare" # Section 1: Brian receives and accepts the group share from Alice and moves and renames it out of the "Shares" folder When user "Alice" shares folder "/merge-test-outside-groups-renamebeforesecondshare" with group "grp1" using the sharing API @@ -127,15 +126,9 @@ Feature: sharing And the HTTP status code of responses on all endpoints should be "200" And as "Brian" folder "/Shares/merge-test-outside-groups-renamebeforesecondshare" should exist But as "Brian" folder "/merge-test-outside-groups-renamebeforesecondshare-renamed" should not exist - Examples: - | dav-path-version | - | old | - | new | - | spaces | - Scenario Outline: merging shares for recipient when shared from outside with user then group and recipient renames in between - Given using DAV path + Scenario: merging shares for recipient when shared from outside with user then group and recipient renames in between And user "Alice" has created folder "/merge-test-outside-groups-renamebeforesecondshare" # Section 1: Brian receives and accepts the user share from Alice and moves and renames it out of the "Shares" folder When user "Alice" shares folder "/merge-test-outside-groups-renamebeforesecondshare" with user "Brian" using the sharing API @@ -153,8 +146,3 @@ Feature: sharing And the HTTP status code of responses on all endpoints should be "200" And as "Brian" folder "/Shares/merge-test-outside-groups-renamebeforesecondshare" should exist But as "Brian" folder "/merge-test-outside-groups-renamebeforesecondshare-renamed" should not exist - Examples: - | dav-path-version | - | old | - | new | - | spaces | diff --git a/tests/acceptance/features/coreApiSharePublicLink1/accessToPublicLinkShare.feature b/tests/acceptance/features/coreApiSharePublicLink1/accessToPublicLinkShare.feature index 23219c86ae6..fb08fad9c36 100644 --- a/tests/acceptance/features/coreApiSharePublicLink1/accessToPublicLinkShare.feature +++ b/tests/acceptance/features/coreApiSharePublicLink1/accessToPublicLinkShare.feature @@ -68,9 +68,8 @@ Feature: accessing a public link share Then the HTTP status code of responses on all endpoints should be "200" @issue-web-10473 - Scenario Outline: user tries to download public link file using own basic auth - Given using DAV path - And user "Alice" has created folder "FOLDER" + Scenario: user tries to download public link file using own basic auth + Given user "Alice" has created folder "FOLDER" And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "FOLDER/textfile.txt" And using SharingNG And user "Alice" has created the following resource link share: @@ -80,7 +79,3 @@ Feature: accessing a public link share | password | %public% | When user "Alice" tries to download file "textfile.txt" from the last public link using own basic auth and new public WebDAV API Then the HTTP status code should be "401" - Examples: - | dav-path-version | - | new | - | spaces | diff --git a/tests/acceptance/features/coreApiTrashbin/trashbinDelete.feature b/tests/acceptance/features/coreApiTrashbin/trashbinDelete.feature index 9dac3729c06..cec76781bb4 100644 --- a/tests/acceptance/features/coreApiTrashbin/trashbinDelete.feature +++ b/tests/acceptance/features/coreApiTrashbin/trashbinDelete.feature @@ -26,8 +26,6 @@ Feature: files and folders can be deleted from the trashbin And as "Alice" the file with original path "" should not exist in the trashbin Examples: | dav-path-version | file-name | file-name-2 | - | old | textfile0.txt | textfile1.txt | - | old | sample,0.txt | sample,1.txt | | new | textfile0.txt | textfile1.txt | | new | sample,0.txt | sample,1.txt | | spaces | textfile0.txt | textfile1.txt | @@ -48,7 +46,6 @@ Feature: files and folders can be deleted from the trashbin And as "Alice" the file with original path "/PARENT/CHILD/child.txt" should exist in the trashbin Examples: | dav-path-version | - | old | | new | | spaces | @@ -72,7 +69,6 @@ Feature: files and folders can be deleted from the trashbin And as "Alice" the file with original path "/PARENT/child.txt" should exist in the trashbin Examples: | dav-path-version | - | old | | new | | spaces | @@ -92,7 +88,6 @@ Feature: files and folders can be deleted from the trashbin And as "Alice" the file with original path "/PARENT/CHILD/child.txt" should exist in the trashbin Examples: | dav-path-version | - | old | | new | | spaces | @@ -112,7 +107,6 @@ Feature: files and folders can be deleted from the trashbin And as "Alice" the file with original path "/PARENT/CHILD/child.txt" should exist in the trashbin Examples: | dav-path-version | - | old | | new | | spaces | @@ -132,7 +126,6 @@ Feature: files and folders can be deleted from the trashbin And as "Alice" the file with original path "/PARENT/CHILD/child.txt" should exist in the trashbin Examples: | dav-path-version | - | old | | new | | spaces | @@ -154,7 +147,6 @@ Feature: files and folders can be deleted from the trashbin And as "Alice" the file with original path "/FOLDER/CHILD/child.txt" should exist in the trashbin Examples: | dav-path-version | - | old | | new | | spaces | @@ -176,7 +168,6 @@ Feature: files and folders can be deleted from the trashbin And as "Alice" the file with original path "/FOLDER/CHILD/child.txt" should exist in the trashbin Examples: | dav-path-version | - | old | | new | | spaces | @@ -210,7 +201,6 @@ Feature: files and folders can be deleted from the trashbin | # %ab ab?=ed.txt | Examples: | dav-path-version | - | old | | new | | spaces | @@ -244,7 +234,6 @@ Feature: files and folders can be deleted from the trashbin | # %ab ab?=ed | Examples: | dav-path-version | - | old | | new | | spaces | @@ -290,6 +279,5 @@ Feature: files and folders can be deleted from the trashbin | /fo.exe | Examples: | dav-path-version | - | old | | new | | spaces | diff --git a/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature b/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature index 8b2af1abf00..2b357545b96 100644 --- a/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature +++ b/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature @@ -17,7 +17,6 @@ Feature: files and folders exist in the trashbin after being deleted But as "Alice" file "/textfile0.txt" should not exist Examples: | dav-path-version | - | old | | new | | spaces | @@ -30,7 +29,6 @@ Feature: files and folders exist in the trashbin after being deleted And as "Alice" folder "/tmp" should exist in the trashbin Examples: | dav-path-version | - | old | | new | | spaces | @@ -46,7 +44,6 @@ Feature: files and folders exist in the trashbin after being deleted But as "Alice" file "/new-folder/new-file.txt" should not exist Examples: | dav-path-version | - | old | | new | | spaces | @@ -70,7 +67,6 @@ Feature: files and folders exist in the trashbin after being deleted But as "Alice" file "/shared/shared_file.txt" should not exist Examples: | dav-path-version | - | old | | new | | spaces | @@ -92,7 +88,6 @@ Feature: files and folders exist in the trashbin after being deleted And as "Alice" the folder with original path "/shared" should exist in the trashbin Examples: | dav-path-version | - | old | | new | | spaces | @@ -124,7 +119,6 @@ Feature: files and folders exist in the trashbin after being deleted And as "Alice" the folder with original path "/textfile0.txt" should exist in the trashbin Examples: | dav-path-version | - | old | | new | | spaces | @@ -144,7 +138,6 @@ Feature: files and folders exist in the trashbin after being deleted And as "Alice" the folder with original path "/textfile0.txt" should exist in the trashbin Examples: | dav-path-version | - | old | | new | | spaces | @@ -162,7 +155,6 @@ Feature: files and folders exist in the trashbin after being deleted | textfile1.txt | testtrashbin100 | Examples: | dav-path-version | - | old | | new | | spaces | @@ -183,7 +175,6 @@ Feature: files and folders exist in the trashbin after being deleted | textfile2.txt | testtrashbin101 | Examples: | dav-path-version | - | old | | new | | spaces | @@ -209,7 +200,6 @@ Feature: files and folders exist in the trashbin after being deleted | textfile3.txt | testtrashbin102 | Examples: | dav-path-version | - | old | | new | | spaces | @@ -222,7 +212,6 @@ Feature: files and folders exist in the trashbin after being deleted Then the HTTP status code should be "404" Examples: | dav-path-version | - | old | | new | | spaces | @@ -233,7 +222,6 @@ Feature: files and folders exist in the trashbin after being deleted Then the HTTP status code should be "404" Examples: | dav-path-version | - | old | | new | | spaces | @@ -249,7 +237,6 @@ Feature: files and folders exist in the trashbin after being deleted | /textfile0.txt | Alice | Examples: | dav-path-version | - | old | | new | | spaces | @@ -265,7 +252,6 @@ Feature: files and folders exist in the trashbin after being deleted | /textfile0.txt | Alice | Examples: | dav-path-version | - | old | | new | | spaces | @@ -280,9 +266,6 @@ Feature: files and folders exist in the trashbin after being deleted But as "" file "/textfile0.txt" should not exist Examples: | dav-path-version | user | - | old | dash-123 | - | old | null | - | old | nil | | new | dash-123 | | new | null | | new | nil | @@ -300,7 +283,6 @@ Feature: files and folders exist in the trashbin after being deleted But as "Alice" file "sample,1.txt" should not exist Examples: | dav-path-version | - | old | | new | | spaces | @@ -317,7 +299,6 @@ Feature: files and folders exist in the trashbin after being deleted But as "Alice" file "/new-folder/new-file.txt" should not exist Examples: | dav-path-version | - | old | | new | | spaces | @@ -331,7 +312,6 @@ Feature: files and folders exist in the trashbin after being deleted And the deleted file "file.txt" should have the correct deletion mtime in the response Examples: | dav-path-version | - | old | | new | | spaces | @@ -389,7 +369,6 @@ Feature: files and folders exist in the trashbin after being deleted | fo.xyz | Examples: | dav-path-version | - | old | | new | | spaces | @@ -447,6 +426,5 @@ Feature: files and folders exist in the trashbin after being deleted | fo.xyz | Examples: | dav-path-version | - | old | | new | | spaces | diff --git a/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature b/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature index 0cee372c7d1..8fa69f377b4 100644 --- a/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature +++ b/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature @@ -199,7 +199,6 @@ Feature: using trashbin together with sharing And the content of file "/Shares/renamed_shared/shared_file.txt" for user "Brian" should be "file to delete" Examples: | dav-path-version | - | old | | new | | spaces | @@ -225,7 +224,6 @@ Feature: using trashbin together with sharing And as "Brian" file "/shareFolderParent/textfile0.txt" should exist Examples: | dav-path-version | http-status-code | - | old | 400 | | new | 403 | | spaces | 400 | @@ -251,7 +249,6 @@ Feature: using trashbin together with sharing And as "Brian" file "/shareFolderParent/shareFolderChild/textfile0.txt" should not exist Examples: | dav-path-version | http-status-code | - | old | 400 | | new | 403 | | spaces | 400 | @@ -277,6 +274,5 @@ Feature: using trashbin together with sharing And as "Alice" file "/Shares/shareFolderParent/textfile0.txt" should exist Examples: | dav-path-version | http-status-code | - | old | 400 | | new | 403 | | spaces | 400 | diff --git a/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature b/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature index 6c4a3250782..4452a2767fe 100644 --- a/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature +++ b/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature @@ -142,7 +142,6 @@ Feature: restore deleted files/folders | /textfile0.txt | Examples: | dav-path-version | http-status-code | - | old | 404 | | new | 404 | | spaces | 400 | @@ -158,7 +157,6 @@ Feature: restore deleted files/folders | /textfile0.txt | Examples: | dav-path-version | - | old | | new | | spaces | @@ -174,7 +172,6 @@ Feature: restore deleted files/folders | /textfile0.txt | Examples: | dav-path-version | - | old | | spaces | | new | @@ -467,7 +464,6 @@ Feature: restore deleted files/folders | /parent_folder/sub/parent.txt | Examples: | dav-path-version | - | old | | spaces | | new | @@ -483,7 +479,6 @@ Feature: restore deleted files/folders | /parent.txt | Examples: | dav-path-version | - | old | | spaces | | new | diff --git a/tests/acceptance/features/coreApiVersions/disableFileVersioning.feature b/tests/acceptance/features/coreApiVersions/disableFileVersioning.feature index aac2e1bd999..9de21b5169a 100644 --- a/tests/acceptance/features/coreApiVersions/disableFileVersioning.feature +++ b/tests/acceptance/features/coreApiVersions/disableFileVersioning.feature @@ -9,26 +9,20 @@ Feature: checking file versions | username | | Alice | | Brian | + And using spaces DAV path - Scenario Outline: check version number of a file when versioning is disabled - Given using DAV path - And the config "OCIS_DISABLE_VERSIONING" has been set to "true" + Scenario: check version number of a file when versioning is disabled + Given the config "OCIS_DISABLE_VERSIONING" has been set to "true" And user "Alice" has uploaded file with content "test file version 1" to "/testfile.txt" And user "Alice" has uploaded file with content "test file version 2" to "/testfile.txt" When user "Alice" gets the number of versions of file "/testfile.txt" Then the HTTP status code should be "207" And the number of versions should be "0" - Examples: - | dav-path-version | - | old | - | new | - | spaces | - Scenario Outline: file version number should not be added after disabling versioning - Given using DAV path - And user "Alice" has uploaded file with content "test file version 1" to "/testfile.txt" + Scenario: file version number should not be added after disabling versioning + Given user "Alice" has uploaded file with content "test file version 1" to "/testfile.txt" And user "Alice" has uploaded file with content "test file version 2" to "/testfile.txt" And the config "OCIS_DISABLE_VERSIONING" has been set to "true" And user "Alice" has uploaded file with content "test file version 3" to "/testfile.txt" @@ -36,16 +30,10 @@ Feature: checking file versions When user "Alice" gets the number of versions of file "/testfile.txt" Then the HTTP status code should be "207" And the number of versions should be "1" - Examples: - | dav-path-version | - | old | - | new | - | spaces | Scenario Outline: sharee tries to check version number of a file shared from project space when versioning is disabled - Given using spaces DAV path - And the config "OCIS_DISABLE_VERSIONING" has been set to "true" + Given the config "OCIS_DISABLE_VERSIONING" has been set to "true" And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And user "Alice" has created a space "Project1" with the default quota using the Graph API And user "Alice" has uploaded a file inside space "Project1" with content "hello world version 1" to "text.txt" @@ -66,8 +54,7 @@ Feature: checking file versions Scenario Outline: sharee tries to check version number of a file shared from personal space when versioning is disabled - Given using DAV path - And the config "OCIS_DISABLE_VERSIONING" has been set to "true" + Given the config "OCIS_DISABLE_VERSIONING" has been set to "true" And user "Alice" has uploaded file with content "test file version 2" to "/text.txt" And user "Alice" has sent the following resource share invitation: | resource | text.txt | @@ -79,18 +66,13 @@ Feature: checking file versions When user "Brian" tries to get the number of versions of file "/text.txt" from space "Shares" Then the HTTP status code should be "403" Examples: - | permissionsRole | dav-path-version | - | File Editor | old | - | Viewer | old | - | File Editor | new | - | Viewer | new | - | File Editor | spaces | - | Viewer | spaces | + | permissionsRole | + | File Editor | + | Viewer | - Scenario Outline: check file version number after disabling versioning, creating versions and then enabling versioning - Given using DAV path - And the config "OCIS_DISABLE_VERSIONING" has been set to "true" + Scenario: check file version number after disabling versioning, creating versions and then enabling versioning + Given the config "OCIS_DISABLE_VERSIONING" has been set to "true" And user "Alice" has uploaded file with content "test file version 1" to "/testfile.txt" And user "Alice" has uploaded file with content "test file version 2" to "/testfile.txt" And the config "OCIS_DISABLE_VERSIONING" has been set to "false" @@ -99,8 +81,3 @@ Feature: checking file versions When user "Alice" gets the number of versions of file "/testfile.txt" Then the HTTP status code should be "207" And the number of versions should be "2" - Examples: - | dav-path-version | - | old | - | new | - | spaces | diff --git a/tests/acceptance/features/coreApiVersions/fileVersions.feature b/tests/acceptance/features/coreApiVersions/fileVersions.feature index d55c8381b4a..70b9f957990 100644 --- a/tests/acceptance/features/coreApiVersions/fileVersions.feature +++ b/tests/acceptance/features/coreApiVersions/fileVersions.feature @@ -79,39 +79,26 @@ Feature: dav-versions | spaces | @smokeTest - Scenario Outline: restore a file and check its content - Given using DAV path - And user "Alice" has uploaded file with content "Test Content." to "/davtest.txt" + Scenario: restore a file and check its content + Given user "Alice" has uploaded file with content "Test Content." to "/davtest.txt" And user "Alice" has uploaded file with content "Content Test Updated." to "/davtest.txt" And the version folder of file "/davtest.txt" for user "Alice" should contain "1" element When user "Alice" restores version index "1" of file "/davtest.txt" using the WebDAV API Then the HTTP status code should be "204" And the content of file "/davtest.txt" for user "Alice" should be "Test Content." - Examples: - | dav-path-version | - | old | - | new | - | spaces | @smokeTest @skipOnStorage:ceph @skipOnStorage:scality - Scenario Outline: restore a file back to bigger content and check its content - Given using DAV path + Scenario: restore a file back to bigger content and check its content And user "Alice" has uploaded file with content "Back To The Future." to "/davtest.txt" And user "Alice" has uploaded file with content "Update Content." to "/davtest.txt" And the version folder of file "/davtest.txt" for user "Alice" should contain "1" element When user "Alice" restores version index "1" of file "/davtest.txt" using the WebDAV API Then the HTTP status code should be "204" And the content of file "/davtest.txt" for user "Alice" should be "Back To The Future." - Examples: - | dav-path-version | - | old | - | new | - | spaces | @smokeTest @skipOnStorage:ceph - Scenario Outline: uploading a chunked file does create the correct version that can be restored - Given using DAV path - And user "Alice" has uploaded file with content "textfile0" to "textfile0.txt" + Scenario: uploading a chunked file does create the correct version that can be restored + Given user "Alice" has uploaded file with content "textfile0" to "textfile0.txt" When user "Alice" uploads file "filesForUpload/davtest.txt" to "/textfile0.txt" in 2 chunks using the WebDAV API And user "Alice" uploads file "filesForUpload/lorem.txt" to "/textfile0.txt" in 3 chunks using the WebDAV API Then the HTTP status code of responses on all endpoints should be "201" @@ -119,94 +106,55 @@ Feature: dav-versions When user "Alice" restores version index "1" of file "/textfile0.txt" using the WebDAV API Then the HTTP status code should be "204" And the content of file "/textfile0.txt" for user "Alice" should be "Dav-Test" - Examples: - | dav-path-version | - | old | - | new | - | spaces | @skipOnStorage:ceph @skipOnStorage:scality - Scenario Outline: restore a file and check the content and checksum - Given using DAV path - And user "Alice" has uploaded file with content "AAAAABBBBBCCCCC" and checksum "MD5:45a72715acdd5019c5be30bdbb75233e" to "/davtest.txt" + Scenario: restore a file and check the content and checksum + Given user "Alice" has uploaded file with content "AAAAABBBBBCCCCC" and checksum "MD5:45a72715acdd5019c5be30bdbb75233e" to "/davtest.txt" And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "/davtest.txt" with checksum "MD5:d70b40f177b14b470d1756a3c12b963a" And the version folder of file "/davtest.txt" for user "Alice" should contain "1" element When user "Alice" restores version index "1" of file "/davtest.txt" using the WebDAV API Then the HTTP status code should be "204" And the content of file "/davtest.txt" for user "Alice" should be "AAAAABBBBBCCCCC" And as user "Alice" the webdav checksum of "/davtest.txt" via propfind should match "SHA1:acfa6b1565f9710d4d497c6035d5c069bd35a8e8 MD5:45a72715acdd5019c5be30bdbb75233e ADLER32:1ecd03df" - Examples: - | dav-path-version | - | old | - | new | - | spaces | - Scenario Outline: user cannot access meta folder of a file which is owned by somebody else - Given using DAV path - And user "Brian" has been created with default attributes and without skeleton files + Scenario: user cannot access meta folder of a file which is owned by somebody else + Given user "Brian" has been created with default attributes and without skeleton files And user "Alice" has uploaded file with content "123" to "/davtest.txt" And we save it into "FILEID" When user "Brian" sends HTTP method "PROPFIND" to URL "/dav/meta/<>" Then the HTTP status code should be "400" or "404" - Examples: - | dav-path-version | - | old | - | new | - | spaces | - Scenario Outline: user cannot access meta folder of a file which does not exist - Given using DAV path - And user "Brian" has been created with default attributes and without skeleton files + Scenario: user cannot access meta folder of a file which does not exist + Given user "Brian" has been created with default attributes and without skeleton files When user "Brian" sends HTTP method "PROPFIND" to URL "/dav/meta/MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA==" Then the HTTP status code should be "400" or "404" - Examples: - | dav-path-version | - | old | - | new | - | spaces | Scenario Outline: user cannot access meta folder of a file with invalid fileid - Given using DAV path - And user "Brian" has been created with default attributes and without skeleton files + Given user "Brian" has been created with default attributes and without skeleton files When user "Brian" sends HTTP method "PROPFIND" to URL "/dav/meta//v" Then the HTTP status code should be "400" or "404" Examples: - | dav-path-version | file-id | decoded-value | comment | - | old | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3PThjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bdc4-0b0000009157=8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with = sign | - | old | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3OGNjZDI3NTEtOTBhNC00MGYyLWI5ZjMtNjFlZGY4NDQyMWY0 | 1284d238-aa92-42ce-bdc4-0b00000091578ccd2751-90a4-40f2-b9f3-61edf84421f4 | no = sign | - | old | c29tZS1yYW5kb20tZmlsZUlkPWFub3RoZXItcmFuZG9tLWZpbGVJZA== | some-random-fileId=another-random-fileId | some random string | - | old | MTI4NGQyMzgtYWE5Mi00MmNlLWJkxzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bd�4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and � sign | - | new | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3PThjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bdc4-0b0000009157=8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with = sign | - | new | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3OGNjZDI3NTEtOTBhNC00MGYyLWI5ZjMtNjFlZGY4NDQyMWY0 | 1284d238-aa92-42ce-bdc4-0b00000091578ccd2751-90a4-40f2-b9f3-61edf84421f4 | no = sign | - | new | c29tZS1yYW5kb20tZmlsZUlkPWFub3RoZXItcmFuZG9tLWZpbGVJZA== | some-random-fileId=another-random-fileId | some random string | - | new | MTI4NGQyMzgtYWE5Mi00MmNlLWJkxzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bd�4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and � sign | - | spaces | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3PThjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bdc4-0b0000009157=8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with = sign | - | spaces | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3OGNjZDI3NTEtOTBhNC00MGYyLWI5ZjMtNjFlZGY4NDQyMWY0 | 1284d238-aa92-42ce-bdc4-0b00000091578ccd2751-90a4-40f2-b9f3-61edf84421f4 | no = sign | - | spaces | c29tZS1yYW5kb20tZmlsZUlkPWFub3RoZXItcmFuZG9tLWZpbGVJZA== | some-random-fileId=another-random-fileId | some random string | - | spaces | MTI4NGQyMzgtYWE5Mi00MmNlLWJkxzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bd�4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and � sign | - - - Scenario Outline: version history is preserved when a file is renamed - Given using DAV path - And user "Alice" has uploaded file with content "old content" to "/textfile.txt" + | file-id | decoded-value | comment | + | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3PThjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bdc4-0b0000009157=8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with = sign | + | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3OGNjZDI3NTEtOTBhNC00MGYyLWI5ZjMtNjFlZGY4NDQyMWY0 | 1284d238-aa92-42ce-bdc4-0b00000091578ccd2751-90a4-40f2-b9f3-61edf84421f4 | no = sign | + | c29tZS1yYW5kb20tZmlsZUlkPWFub3RoZXItcmFuZG9tLWZpbGVJZA== | some-random-fileId=another-random-fileId | some random string | + | MTI4NGQyMzgtYWE5Mi00MmNlLWJkxzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bd�4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and � sign | + + + Scenario: version history is preserved when a file is renamed + Given user "Alice" has uploaded file with content "old content" to "/textfile.txt" And user "Alice" has uploaded file with content "new content" to "/textfile.txt" And user "Alice" has moved file "/textfile.txt" to "/renamedfile.txt" When user "Alice" restores version index "1" of file "/renamedfile.txt" using the WebDAV API Then the HTTP status code should be "204" And the content of file "/renamedfile.txt" for user "Alice" should be "old content" - Examples: - | dav-path-version | - | old | - | new | - | spaces | - Scenario Outline: user can access version number after moving a file - Given using DAV path - And user "Alice" has created folder "testFolder" + Scenario: user can access version number after moving a file + Given user "Alice" has created folder "testFolder" And user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt" And user "Alice" has uploaded file with content "version 1" to "textfile0.txt" And user "Alice" has uploaded file with content "version 2" to "textfile0.txt" @@ -215,45 +163,27 @@ Feature: dav-versions And user "Alice" gets the number of versions of file "/testFolder/textfile0.txt" Then the HTTP status code should be "207" And the number of versions should be "3" - Examples: - | dav-path-version | - | old | - | new | - | spaces | - Scenario Outline: original file has version number 0 - Given using DAV path - And user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt" + Scenario: original file has version number 0 + Given user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt" When user "Alice" gets the number of versions of file "textfile0.txt" Then the HTTP status code should be "207" And the number of versions should be "0" - Examples: - | dav-path-version | - | old | - | new | - | spaces | - Scenario Outline: number of etag elements in response changes according to version of the file - Given using DAV path - And user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt" + Scenario: number of etag elements in response changes according to version of the file + Given user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt" And user "Alice" has uploaded file with content "version 1" to "textfile0.txt" And user "Alice" has uploaded file with content "version 2" to "textfile0.txt" When user "Alice" gets the number of versions of file "textfile0.txt" Then the HTTP status code should be "207" And the number of etag elements in the response should be "2" And the number of versions should be "2" - Examples: - | dav-path-version | - | old | - | new | - | spaces | - Scenario Outline: download old versions of a file - Given using DAV path - And user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt" + Scenario: download old versions of a file + Given user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt" And user "Alice" has uploaded file with content "version 1" to "textfile0.txt" And user "Alice" has uploaded file with content "version 2" to "textfile0.txt" When user "Alice" downloads the version of file "textfile0.txt" with the index "1" @@ -268,16 +198,10 @@ Feature: dav-versions | header | value | | Content-Disposition | attachment; filename*=UTF-8''textfile0.txt; filename="textfile0.txt" | And the downloaded content should be "uploaded content" - Examples: - | dav-path-version | - | old | - | new | - | spaces | @skipOnStorage:ceph @skipOnStorage:scality - Scenario Outline: download an old version of a restored file - Given using DAV path - And user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt" + Scenario: download an old version of a restored file + Given user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt" And user "Alice" has uploaded file with content "version 1" to "textfile0.txt" And user "Alice" has uploaded file with content "version 2" to "textfile0.txt" And user "Alice" has restored version index "1" of file "textfile0.txt" @@ -293,11 +217,6 @@ Feature: dav-versions | header | value | | Content-Disposition | attachment; filename*=UTF-8''textfile0.txt; filename="textfile0.txt" | And the downloaded content should be "uploaded content" - Examples: - | dav-path-version | - | old | - | new | - | spaces | Scenario: user can retrieve meta information of a root folder @@ -321,43 +240,27 @@ Feature: dav-versions And the single response should contain a property "oc:meta-path-for-user" with value "/testFolder/davtest.txt" - Scenario Outline: user cannot retrieve meta information of a file which is owned by somebody else - Given using DAV path - And user "Brian" has been created with default attributes and without skeleton files + Scenario: user cannot retrieve meta information of a file which is owned by somebody else + Given user "Brian" has been created with default attributes and without skeleton files And user "Alice" has uploaded file with content "123" to "/davtest.txt " And we save it into "FILEID" When user "Brian" retrieves the meta information of fileId "<>" using the meta API Then the HTTP status code should be "404" - Examples: - | dav-path-version | - | old | - | new | - | spaces | Scenario Outline: user cannot retrieve meta information of a file that does not exist - Given using DAV path When user "Alice" retrieves the meta information of fileId "" using the meta API Then the HTTP status code should be "400" or "404" Examples: - | dav-path-version | file-id | decoded-value | comment | - | old | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3PThjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bdc4-0b0000009157=8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with = sign | - | old | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3OGNjZDI3NTEtOTBhNC00MGYyLWI5ZjMtNjFlZGY4NDQyMWY0 | 1284d238-aa92-42ce-bdc4-0b00000091578ccd2751-90a4-40f2-b9f3-61edf84421f4 | no = sign | - | old | c29tZS1yYW5kb20tZmlsZUlkPWFub3RoZXItcmFuZG9tLWZpbGVJZA== | some-random-fileId=another-random-fileId | some random string | - | old | GQyMzgtYWE5Mi00MmNlLWJkxzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bd�4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and � sign | - | new | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3PThjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bdc4-0b0000009157=8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with = sign | - | new | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3OGNjZDI3NTEtOTBhNC00MGYyLWI5ZjMtNjFlZGY4NDQyMWY0 | 1284d238-aa92-42ce-bdc4-0b00000091578ccd2751-90a4-40f2-b9f3-61edf84421f4 | no = sign | - | new | c29tZS1yYW5kb20tZmlsZUlkPWFub3RoZXItcmFuZG9tLWZpbGVJZA== | some-random-fileId=another-random-fileId | some random string | - | new | GQyMzgtYWE5Mi00MmNlLWJkxzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bd�4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and � sign | - | spaces | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3PThjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bdc4-0b0000009157=8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with = sign | - | spaces | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3OGNjZDI3NTEtOTBhNC00MGYyLWI5ZjMtNjFlZGY4NDQyMWY0 | 1284d238-aa92-42ce-bdc4-0b00000091578ccd2751-90a4-40f2-b9f3-61edf84421f4 | no = sign | - | spaces | c29tZS1yYW5kb20tZmlsZUlkPWFub3RoZXItcmFuZG9tLWZpbGVJZA== | some-random-fileId=another-random-fileId | some random string | - | spaces | GQyMzgtYWE5Mi00MmNlLWJkxzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bd�4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and � sign | - - - Scenario Outline: file versions sets back after getting deleted and restored from trashbin - Given using DAV path - And user "Alice" has uploaded file with content "Old Test Content." to "/davtest.txt" + | file-id | decoded-value | comment | + | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3PThjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bdc4-0b0000009157=8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with = sign | + | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3OGNjZDI3NTEtOTBhNC00MGYyLWI5ZjMtNjFlZGY4NDQyMWY0 | 1284d238-aa92-42ce-bdc4-0b00000091578ccd2751-90a4-40f2-b9f3-61edf84421f4 | no = sign | + | c29tZS1yYW5kb20tZmlsZUlkPWFub3RoZXItcmFuZG9tLWZpbGVJZA== | some-random-fileId=another-random-fileId | some random string | + | MTI4NGQyMzgtYWE5Mi00MmNlLWJkxzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bd�4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and � sign | + + + Scenario: file versions sets back after getting deleted and restored from trashbin + Given user "Alice" has uploaded file with content "Old Test Content." to "/davtest.txt" And user "Alice" has uploaded file with content "New Test Content." to "/davtest.txt" And the version folder of file "/davtest.txt" for user "Alice" should contain "1" element And user "Alice" has deleted file "/davtest.txt" @@ -370,10 +273,6 @@ Feature: dav-versions When user "Alice" restores version index "1" of file "/davtest.txt" using the WebDAV API Then the HTTP status code should be "204" And the content of file "/davtest.txt" for user "Alice" should be "Old Test Content." - Examples: - | dav-path-version | - | new | - | spaces | Scenario Outline: upload the same file twice with the same mtime and a version is available @@ -403,23 +302,16 @@ Feature: dav-versions | spaces | - Scenario Outline: upload the same file twice with the same mtime and no version after restoring - Given using DAV path - And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "file.txt" with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the WebDAV API + Scenario: upload the same file twice with the same mtime and no version after restoring + Given user "Alice" has uploaded file "filesForUpload/textfile.txt" to "file.txt" with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the WebDAV API And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "file.txt" with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the WebDAV API When user "Alice" restores version index "1" of file "/file.txt" using the WebDAV API Then the HTTP status code should be "204" And the version folder of file "/file.txt" for user "Alice" should contain "0" element - Examples: - | dav-path-version | - | old | - | new | - | spaces | @skipOnReva - Scenario Outline: sharer of a file can see the old version information when the sharee changes the content of the file - Given using DAV path - And user "Brian" has been created with default attributes and without skeleton files + Scenario: sharer of a file can see the old version information when the sharee changes the content of the file + Given user "Brian" has been created with default attributes and without skeleton files And user "Alice" has uploaded file with content "First content" to "sharefile.txt" And user "Alice" has sent the following resource share invitation: | resource | sharefile.txt | @@ -433,16 +325,10 @@ Feature: dav-versions And the version folder of file "/sharefile.txt" for user "Alice" should contain "1" element When user "Brian" gets the number of versions of file "/Shares/sharefile.txt" Then the HTTP status code should be "403" - Examples: - | dav-path-version | - | old | - | new | - | spaces | @skipOnReva - Scenario Outline: sharer of a file can restore the original content of a shared file after the file has been modified by the sharee - Given using DAV path - And user "Brian" has been created with default attributes and without skeleton files + Scenario: sharer of a file can restore the original content of a shared file after the file has been modified by the sharee + Given user "Brian" has been created with default attributes and without skeleton files And user "Alice" has uploaded file with content "First content" to "sharefile.txt" And user "Alice" has sent the following resource share invitation: | resource | sharefile.txt | @@ -456,16 +342,10 @@ Feature: dav-versions Then the HTTP status code should be "204" And the content of file "/sharefile.txt" for user "Alice" should be "First content" And the content of file "/Shares/sharefile.txt" for user "Brian" should be "First content" - Examples: - | dav-path-version | - | old | - | new | - | spaces | @skipOnReva - Scenario Outline: sharer can restore a file inside a shared folder modified by sharee - Given using DAV path - And user "Brian" has been created with default attributes and without skeleton files + Scenario: sharer can restore a file inside a shared folder modified by sharee + Given user "Brian" has been created with default attributes and without skeleton files And user "Alice" has created folder "/sharingfolder" And user "Alice" has sent the following resource share invitation: | resource | sharingfolder | @@ -480,16 +360,10 @@ Feature: dav-versions Then the HTTP status code should be "204" And the content of file "/sharingfolder/sharefile.txt" for user "Alice" should be "First content" And the content of file "/Shares/sharingfolder/sharefile.txt" for user "Brian" should be "First content" - Examples: - | dav-path-version | - | old | - | new | - | spaces | @skipOnReva - Scenario Outline: sharee cannot see a version of a file inside a shared folder when modified by sharee - Given using DAV path - And user "Brian" has been created with default attributes and without skeleton files + Scenario: sharee cannot see a version of a file inside a shared folder when modified by sharee + Given user "Brian" has been created with default attributes and without skeleton files And user "Alice" has created folder "/sharingfolder" And user "Alice" has sent the following resource share invitation: | resource | sharingfolder | @@ -504,16 +378,10 @@ Feature: dav-versions Then the HTTP status code should be "403" And the content of file "/Shares/sharingfolder/sharefile.txt" for user "Brian" should be "Second content" And the content of file "/sharingfolder/sharefile.txt" for user "Alice" should be "Second content" - Examples: - | dav-path-version | - | old | - | new | - | spaces | @skipOnReva - Scenario Outline: sharer can restore a file inside a shared folder created by sharee and modified by sharer - Given using DAV path - And user "Brian" has been created with default attributes and without skeleton files + Scenario: sharer can restore a file inside a shared folder created by sharee and modified by sharer + Given user "Brian" has been created with default attributes and without skeleton files And user "Alice" has created folder "/sharingfolder" And user "Alice" has sent the following resource share invitation: | resource | sharingfolder | @@ -528,16 +396,10 @@ Feature: dav-versions Then the HTTP status code should be "204" And the content of file "/sharingfolder/sharefile.txt" for user "Alice" should be "First content" And the content of file "/Shares/sharingfolder/sharefile.txt" for user "Brian" should be "First content" - Examples: - | dav-path-version | - | old | - | new | - | spaces | @skipOnReva - Scenario Outline: sharer can restore a file inside a shared folder created by sharee and modified by sharee - Given using DAV path - And user "Brian" has been created with default attributes and without skeleton files + Scenario: sharer can restore a file inside a shared folder created by sharee and modified by sharee + Given user "Brian" has been created with default attributes and without skeleton files And user "Alice" has created folder "/sharingfolder" And user "Alice" has sent the following resource share invitation: | resource | sharingfolder | @@ -552,16 +414,10 @@ Feature: dav-versions Then the HTTP status code should be "204" And the content of file "/sharingfolder/sharefile.txt" for user "Alice" should be "old content" And the content of file "/Shares/sharingfolder/sharefile.txt" for user "Brian" should be "old content" - Examples: - | dav-path-version | - | old | - | new | - | spaces | @skipOnReva - Scenario Outline: sharer can restore a file inside a group shared folder modified by sharee - Given using DAV path - And user "Brian" has been created with default attributes and without skeleton files + Scenario: sharer can restore a file inside a group shared folder modified by sharee + Given user "Brian" has been created with default attributes and without skeleton files And user "Carol" has been created with default attributes and without skeleton files And group "grp1" has been created And user "Brian" has been added to group "grp1" @@ -583,11 +439,6 @@ Feature: dav-versions And the content of file "/sharingfolder/sharefile.txt" for user "Alice" should be "First content" And the content of file "/Shares/sharingfolder/sharefile.txt" for user "Brian" should be "First content" And the content of file "/Shares/sharingfolder/sharefile.txt" for user "Carol" should be "First content" - Examples: - | dav-path-version | - | old | - | new | - | spaces | @skipOnReva Scenario Outline: moving a file (with versions) into a shared folder as the sharer @@ -624,9 +475,8 @@ Feature: dav-versions | spaces | Editor | @skipOnReva - Scenario Outline: sharee tries to get file versions of file not shared by the sharer - Given using DAV path - And user "Brian" has been created with default attributes and without skeleton files + Scenario: sharee tries to get file versions of file not shared by the sharer + Given user "Brian" has been created with default attributes and without skeleton files And user "Alice" has uploaded file with content "textfile0" to "textfile0.txt" And user "Alice" has uploaded file with content "textfile1" to "textfile1.txt" And user "Alice" has sent the following resource share invitation: @@ -639,16 +489,10 @@ Feature: dav-versions When user "Brian" tries to get versions of file "textfile1.txt" from "Alice" Then the HTTP status code should be "404" And the value of the item "//s:exception" in the response about user "Alice" should be "Sabre\DAV\Exception\NotFound" - Examples: - | dav-path-version | - | old | - | new | - | spaces | @skipOnStorage:ceph @skipOnReva - Scenario Outline: receiver tries get file versions of shared file from the sharer - Given using DAV path - And user "Brian" has been created with default attributes and without skeleton files + Scenario: receiver tries get file versions of shared file from the sharer + Given user "Brian" has been created with default attributes and without skeleton files And user "Alice" has uploaded file with content "textfile0" to "textfile0.txt" And user "Alice" has uploaded file with content "version 1" to "textfile0.txt" And user "Alice" has uploaded file with content "version 2" to "textfile0.txt" @@ -662,16 +506,10 @@ Feature: dav-versions And user "Brian" has a share "textfile0.txt" synced When user "Brian" tries to get versions of file "textfile0.txt" from "Alice" Then the HTTP status code should be "403" - Examples: - | dav-path-version | - | old | - | new | - | spaces | @skipOnReva - Scenario Outline: receiver tries get file versions of shared file before receiving it - Given using DAV path - And user "Brian" has been created with default attributes and without skeleton files + Scenario: receiver tries get file versions of shared file before receiving it + Given user "Brian" has been created with default attributes and without skeleton files And user "Alice" has uploaded file with content "textfile0" to "textfile0.txt" And user "Alice" has uploaded file with content "version 1" to "textfile0.txt" And user "Alice" has uploaded file with content "version 2" to "textfile0.txt" @@ -685,16 +523,10 @@ Feature: dav-versions When user "Brian" tries to get versions of file "textfile0.txt" from "Alice" Then the HTTP status code should be "403" And the value of the item "//s:exception" in the response about user "Alice" should be "Sabre\DAV\Exception\Forbidden" - Examples: - | dav-path-version | - | old | - | new | - | spaces | @issue-enterprise-6249 - Scenario Outline: upload empty content file and check versions after multiple restores - Given using DAV path - And user "Alice" has uploaded file with content "" to "textfile.txt" + Scenario: upload empty content file and check versions after multiple restores + Given user "Alice" has uploaded file with content "" to "textfile.txt" And user "Alice" has uploaded file with content "test content" to "textfile.txt" And the version folder of file "textfile.txt" for user "Alice" should contain "1" element When user "Alice" restores version index "1" of file "textfile.txt" using the WebDAV API @@ -705,16 +537,10 @@ Feature: dav-versions Then the HTTP status code should be "204" And the content of file "textfile.txt" for user "Alice" should be "test content" And the version folder of file "textfile.txt" for user "Alice" should contain "1" elements - Examples: - | dav-path-version | - | old | - | new | - | spaces | - Scenario Outline: update with empty content and check versions after multiple restores - Given using DAV path - And user "Alice" has uploaded file with content "test content" to "textfile.txt" + Scenario: update with empty content and check versions after multiple restores + Given user "Alice" has uploaded file with content "test content" to "textfile.txt" And user "Alice" has uploaded file with content "" to "textfile.txt" And the version folder of file "textfile.txt" for user "Alice" should contain "1" element When user "Alice" restores version index "1" of file "textfile.txt" using the WebDAV API @@ -725,8 +551,3 @@ Feature: dav-versions Then the HTTP status code should be "204" And the content of file "textfile.txt" for user "Alice" should be "" And the version folder of file "textfile.txt" for user "Alice" should contain "1" elements - Examples: - | dav-path-version | - | old | - | new | - | spaces | diff --git a/tests/acceptance/features/coreApiWebdavEtagPropagation2/restoreVersion.feature b/tests/acceptance/features/coreApiWebdavEtagPropagation2/restoreVersion.feature index 5c1704d5273..173070f4158 100644 --- a/tests/acceptance/features/coreApiWebdavEtagPropagation2/restoreVersion.feature +++ b/tests/acceptance/features/coreApiWebdavEtagPropagation2/restoreVersion.feature @@ -9,9 +9,8 @@ Feature: propagation of etags when restoring a version of a file And user "Alice" has been created with default attributes and without skeleton files @skipOnStorage:ceph @skipOnStorage:scality - Scenario Outline: restoring a file changes the etags of all parents - Given using DAV path - And user "Alice" has created folder "/upload" + Scenario: restoring a file changes the etags of all parents + Given user "Alice" has created folder "/upload" And user "Alice" has created folder "/upload/sub" And user "Alice" has uploaded file with content "uploaded content" to "/upload/sub/file.txt" And user "Alice" has uploaded file with content "changed content" to "/upload/sub/file.txt" @@ -25,8 +24,3 @@ Feature: propagation of etags when restoring a version of a file | Alice | / | | Alice | /upload | | Alice | /upload/sub | - Examples: - | dav-path-version | - | old | - | new | - | spaces |