diff --git a/tests/acceptance/config/behat-core.yml b/tests/acceptance/config/behat-core.yml index 0f56b0b05a6..8df0367f9fc 100644 --- a/tests/acceptance/config/behat-core.yml +++ b/tests/acceptance/config/behat-core.yml @@ -286,6 +286,7 @@ default: contexts: - FeatureContext: *common_feature_context_params - WebDavPropertiesContext: + - FilesVersionsContext: coreApiWebdavOperations: paths: diff --git a/tests/acceptance/expected-failures-API-on-OCIS-storage.md b/tests/acceptance/expected-failures-API-on-OCIS-storage.md index 238c0ba1eb2..706470c0834 100644 --- a/tests/acceptance/expected-failures-API-on-OCIS-storage.md +++ b/tests/acceptance/expected-failures-API-on-OCIS-storage.md @@ -47,8 +47,8 @@ _ocdav: double-check the webdav property parsing when custom namespaces are used #### [moving a file into a shared folder as the sharee and as the sharer](https://github.com/owncloud/ocis/issues/1287) -- [coreApiVersions/fileVersions.feature:382](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersions.feature#382) Scenario: moving a file (with versions) into a shared folder as the sharee and as the sharer -- [coreApiVersions/fileVersions.feature:383](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersions.feature#383) Scenario: moving a file (with versions) into a shared folder as the sharee and as the sharer +- [coreApiVersions/fileVersions.feature:382](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersions.feature#382) Scenario: moving a file (with versions) into a shared folder as the sharee and as the sharer +- [coreApiVersions/fileVersions.feature:383](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersions.feature#383) Scenario: moving a file (with versions) into a shared folder as the sharee and as the sharer ### Sync @@ -154,22 +154,6 @@ cannot share a folder with create permission - [coreApiShareOperationsToShares2/uploadToShare.feature:202](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/uploadToShare.feature#L202) - [coreApiShareOperationsToShares2/uploadToShare.feature:203](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/uploadToShare.feature#L203) -#### [not possible to move file into a received folder](https://github.com/owncloud/ocis/issues/764) - -- [coreApiShareOperationsToShares1/changingFilesShare.feature:25](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L25) -- [coreApiShareOperationsToShares1/changingFilesShare.feature:26](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L26) -- [coreApiShareOperationsToShares1/changingFilesShare.feature:65](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L65) -- [coreApiShareOperationsToShares1/changingFilesShare.feature:66](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L66) -- [coreApiShareOperationsToShares1/changingFilesShare.feature:85](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L85) -- [coreApiShareOperationsToShares1/changingFilesShare.feature:86](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L86) -- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:474](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L474) -- [coreApiWebdavMove2/moveShareOnOcis.feature:28](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature#L28) -- [coreApiWebdavMove2/moveShareOnOcis.feature:30](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature#L30) -- [coreApiWebdavMove2/moveShareOnOcis.feature:93](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature#L93) -- [coreApiWebdavMove2/moveShareOnOcis.feature:95](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature#L95) -- [coreApiWebdavMove2/moveShareOnOcis.feature:161](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature#L161) -- [coreApiWebdavMove2/moveShareOnOcis.feature:162](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature#L162) - #### [Expiration date for shares is not implemented](https://github.com/owncloud/ocis/issues/1250) #### Expiration date of user shares @@ -442,9 +426,9 @@ Not everything needs to be implemented for ocis. While the oc10 testsuite covers - [coreApiWebdavUpload1/uploadFile.feature:181](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUpload1/uploadFile.feature#L181) - [coreApiWebdavUpload1/uploadFile.feature:180](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUpload1/uploadFile.feature#L180) - [coreApiWebdavUpload1/uploadFile.feature:186](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUpload1/uploadFile.feature#L186) -- [coreApiWebdavMove2/moveFile.feature:175](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveFile.feature#L175) -- [coreApiWebdavMove2/moveFile.feature:176](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveFile.feature#L176) -- [coreApiWebdavMove2/moveFile.feature:181](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveFile.feature#L181) +- [coreApiWebdavMove2/moveFile.feature:178](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveFile.feature#L178) +- [coreApiWebdavMove2/moveFile.feature:179](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveFile.feature#L179) +- [coreApiWebdavMove2/moveFile.feature:184](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveFile.feature#L184) #### [cannot set blacklisted file names](https://github.com/owncloud/product/issues/260) @@ -491,7 +475,7 @@ Not everything needs to be implemented for ocis. While the oc10 testsuite covers - [coreApiWebdavMove1/moveFolder.feature:26](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove1/moveFolder.feature#L26) - [coreApiWebdavMove1/moveFolder.feature:44](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove1/moveFolder.feature#L44) - [coreApiWebdavMove1/moveFolder.feature:62](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove1/moveFolder.feature#L62) -- [coreApiWebdavMove2/moveFile.feature:137](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveFile.feature#L137) +- [coreApiWebdavMove2/moveFile.feature:140](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveFile.feature#L140) - [coreApiWebdavMove2/moveFileToBlacklistedName.feature:24](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveFileToBlacklistedName.feature#L24) #### [REPORT method on spaces returns an incorrect d:href response](https://github.com/owncloud/ocis/issues/3111) diff --git a/tests/acceptance/features/apiSpacesShares/moveSpaces.feature b/tests/acceptance/features/apiSpacesShares/moveSpaces.feature index fbd13731993..c6f9fed5523 100644 --- a/tests/acceptance/features/apiSpacesShares/moveSpaces.feature +++ b/tests/acceptance/features/apiSpacesShares/moveSpaces.feature @@ -116,10 +116,13 @@ Feature: move (rename) file | role | permissions | | manager | 31 | | editor | 31 | + | viewer | 31 | | manager | 17 | | editor | 17 | - | viewer | 31 | | viewer | 17 | + | manager | 1 | + | editor | 1 | + | viewer | 1 | Scenario Outline: user moves a file from space personal to space project with different role @@ -199,22 +202,37 @@ Feature: move (rename) file | manager | 17 | | editor | 17 | | viewer | 17 | + | manager | 1 | + | editor | 1 | + | viewer | 1 | - Scenario: user moves a file from space Shares with role editor to space Shares with role editor + Scenario Outline: user moves a file from space Shares to another space Shares with different role (permissions) Given user "Brian" has created folder "/testshare1" And user "Brian" has created folder "/testshare2" And user "Brian" has uploaded file with content "testshare1 content" to "/testshare1/testshare1.txt" - And user "Brian" has shared folder "/testshare1" with user "Alice" with permissions "31" - And user "Brian" has shared folder "/testshare2" with user "Alice" with permissions "31" + And user "Brian" has shared folder "/testshare1" with user "Alice" with permissions "" + And user "Brian" has shared folder "/testshare2" with user "Alice" with permissions "" When user "Alice" moves file "/testshare1/testshare1.txt" from space "Shares" to "/testshare2/testshare1.txt" inside space "Shares" using the WebDAV API Then the HTTP status code should be "502" And for user "Alice" folder "testshare1" of the space "Shares" should contain these entries: | testshare1.txt | But for user "Alice" folder "testshare2" of the space "Shares" should not contain these entries: | testshare1.txt | + Examples: + | from_permissions | to_permissions | + | 31 | 31 | + | 31 | 17 | + | 31 | 1 | + | 17 | 31 | + | 17 | 17 | + | 17 | 1 | + | 1 | 31 | + | 1 | 17 | + | 1 | 1 | +<<<<<<< HEAD Scenario: user moves a file from space Shares with role editor to space Shares with role viewer Given user "Brian" has created folder "/testshare1" And user "Brian" has created folder "/testshare2" @@ -244,13 +262,12 @@ Feature: move (rename) file Scenario: moving a file out of a shared folder as a sharer +======= + Scenario Outline: moving a file out of a shared folder as a sharer +>>>>>>> 0f9f996aba ([tests-only] Extend API test coverage for MOVE between spaces (#8113)) Given user "Brian" has created folder "/testshare" And user "Brian" has uploaded file with content "test data" to "/testshare/testfile.txt" - And user "Brian" has created a share with settings - | path | testshare | - | shareType | user | - | permissions | change | - | shareWith | Alice | + And user "Brian" has shared folder "/testshare" with user "Alice" with permissions "" When user "Brian" moves file "/testshare/testfile.txt" from space "Personal" to "/testfile.txt" inside space "Personal" using the WebDAV API Then the HTTP status code should be "201" And the content of file "/testfile.txt" for user "Brian" should be "test data" @@ -258,19 +275,20 @@ Feature: move (rename) file | testfile.txt | And for user "Brian" folder "testshare" of the space "Personal" should not contain these entries: | testfile.txt | + Examples: + | permissions | + | 31 | + | 17 | + | 1 | - Scenario: moving a folder out of a shared folder as a sharer + Scenario Outline: moving a folder out of a shared folder as a sharer Given user "Brian" has created the following folders | path | | /testshare | | /testshare/testsubfolder | And user "Brian" has uploaded file with content "test data" to "/testshare/testsubfolder/testfile.txt" - And user "Brian" has created a share with settings - | path | testshare | - | shareType | user | - | permissions | change | - | shareWith | Alice | + And user "Brian" has shared folder "/testshare" with user "Alice" with permissions "" When user "Brian" moves folder "/testshare/testsubfolder" from space "Personal" to "/testsubfolder" inside space "Personal" using the WebDAV API Then the HTTP status code should be "201" And the content of file "/testsubfolder/testfile.txt" for user "Brian" should be "test data" @@ -278,19 +296,57 @@ Feature: move (rename) file | testsubfolder | And for user "Brian" folder "testshare" of the space "Personal" should not contain these entries: | testsubfolder | + Examples: + | permissions | + | 31 | + | 17 | + | 1 | - Scenario: overwriting a file while moving - Given user "Brian" has created folder "/folder" - And user "Brian" has uploaded file with content "some content" to "/folder/testfile.txt" - And user "Brian" has uploaded file with content "old data version 1" to "/testfile.txt" - And user "Brian" has uploaded file with content "new data version 2" to "/testfile.txt" - When user "Brian" overwrites file "/testfile.txt" from space "Personal" to "folder/testfile.txt" inside space "Personal" while moving using the WebDAV API + Scenario Outline: sharee moves a file within a Shares space (all/change permissions) + Given user "Brian" has created folder "testshare" + Given user "Brian" has created folder "testshare/child" + And user "Brian" has uploaded file with content "test file content" to "/testshare/testfile.txt" + And user "Brian" has shared folder "testshare" with user "Alice" with permissions "" + When user "Alice" moves file "testshare/testfile.txt" from space "Shares" to "testshare/child/testfile.txt" inside space "Shares" using the WebDAV API + Then the HTTP status code should be "201" + And for user "Alice" the content of the file "testshare/child/testfile.txt" of the space "Shares" should be "test file content" + And for user "Alice" folder "testshare" of the space "Shares" should not contain these entries: + | testfile.txt | + Examples: + | permissions | + | all | + | change | + + + Scenario: sharee moves a file within a Shares space (read permissions) + Given user "Brian" has created folder "testshare" + Given user "Brian" has created folder "testshare/child" + And user "Brian" has uploaded file with content "test file content" to "/testshare/testfile.txt" + And user "Brian" has shared folder "testshare" with user "Alice" with permissions "read" + When user "Alice" moves file "testshare/testfile.txt" from space "Shares" to "testshare/child/testfile.txt" inside space "Shares" using the WebDAV API + Then the HTTP status code should be "403" + And for user "Alice" folder "testshare/child" of the space "Shares" should not contain these entries: + | testfile.txt | + But for user "Alice" folder "testshare" of the space "Shares" should contain these entries: + | testfile.txt | + + + Scenario: overwrite a file while moving in project space + Given the administrator has assigned the role "Space Admin" to user "Brian" using the Graph API + And user "Brian" has created a space "Project" with the default quota using the Graph API + And user "Brian" has created a folder "folder" in space "Project" + And user "Brian" has uploaded a file inside space "Project" with content "root file v1" to "testfile.txt" + And user "Brian" has uploaded a file inside space "Project" with content "root file v2" to "testfile.txt" + And user "Brian" has uploaded a file inside space "Project" with content "same name file" to "folder/testfile.txt" + And user "Brian" has shared a space "Project" with settings: + | shareWith | Alice | + | role | editor | + When user "Alice" overwrites file "testfile.txt" from space "Project" to "folder/testfile.txt" inside space "Project" while moving using the WebDAV API Then the HTTP status code should be "204" - And the content of file "/folder/testfile.txt" for user "Brian" should be "new data version 2" - And for user "Brian" the space "Personal" should not contain these entries: - | /testfile.txt | - When user "Brian" downloads version of the file "/folder/testfile.txt" with the index "1" of the space "Personal" using the WebDAV API + And for user "Alice" the content of the file "folder/testfile.txt" of the space "Project" should be "root file v2" + And for user "Alice" the space "Project" should not contain these entries: + | testfile.txt | + When user "Brian" downloads version of the file "folder/testfile.txt" with the index "1" of the space "Project" using the WebDAV API Then the HTTP status code should be "200" - And the downloaded content should be "old data version 1" - And as "Brian" file "testfile.txt" should exist in the trashbin of the space "Personal" + And the downloaded content should be "root file v1" \ No newline at end of file diff --git a/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature b/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature index 7d1704a955d..46d95e8bf35 100644 --- a/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature +++ b/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature @@ -460,7 +460,7 @@ Feature: share resources where the sharee receives the share in multiple ways And as "Brian" file "Shares/sharedParent/child/lorem.txt" should exist @issue-7555 - Scenario Outline: share receiver renames a group share and receives same resource through user share with additional permissions + Scenario Outline: share receiver renames a group share and receives same resource through user share with additional permissions Given using OCS API version "" And group "grp" has been created And user "Brian" has been added to group "grp" diff --git a/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature b/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature index fdc28715e28..bc35b8aed31 100644 --- a/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature +++ b/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature @@ -470,7 +470,7 @@ Feature: sharing | 1 | 100 | | 2 | 200 | - @issue-2146 @issue-764 @issue-7555 + @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: | username | @@ -481,11 +481,11 @@ Feature: sharing And user "Carol" has been added to group "grp1" And user "Alice" has created folder "/common" And user "Alice" has created folder "/common/sub" + And user "Alice" has uploaded file with content "ownCloud" to "/textfile0.txt" And user "Alice" has shared folder "common" with group "grp1" - And user "Brian" has uploaded file with content "ownCloud" to "/textfile0.txt" - And user "Brian" has shared file "textfile0.txt" with user "Carol" - And user "Brian" has moved file "/textfile0.txt" to "/Shares/common/textfile0.txt" - And user "Brian" has moved file "/Shares/common/textfile0.txt" to "/Shares/common/sub/textfile0.txt" + And user "Alice" has shared file "textfile0.txt" with user "Carol" + And user "Alice" has moved file "/textfile0.txt" to "/common/textfile0.txt" + And user "Alice" has moved file "/common/textfile0.txt" to "/common/sub/textfile0.txt" When user "Carol" uploads file "filesForUpload/file_to_overwrite.txt" to "/Shares/textfile0.txt" using the WebDAV API Then the HTTP status code should be "204" And the content of file "/Shares/common/sub/textfile0.txt" for user "Carol" should be "BLABLABLA" plus end-of-line diff --git a/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature b/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature index 5add6e6516a..0aea127ba20 100644 --- a/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature +++ b/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature @@ -10,21 +10,6 @@ Feature: sharing | Alice | | Brian | - @smokeTest - Scenario Outline: moving a file into a share as recipient - Given using DAV path - And user "Alice" has created folder "/shared" - And user "Alice" has shared folder "/shared" with user "Brian" - And user "Brian" has uploaded file with content "some data" to "/textfile0.txt" - When user "Brian" moves file "textfile0.txt" to "/Shares/shared/shared_file.txt" using the WebDAV API - Then the HTTP status code should be "201" - And as "Brian" file "/Shares/shared/shared_file.txt" should exist - And as "Alice" file "/shared/shared_file.txt" should exist - Examples: - | dav-path-version | - | old | - | new | - Scenario Outline: move files between shares by same user Given using DAV path @@ -46,46 +31,6 @@ Feature: sharing | new | - Scenario Outline: move files between shares by same user added by sharee - Given using DAV path - And user "Alice" has created folder "share1" - And user "Alice" has created folder "share2" - And user "Brian" has uploaded file with content "some data" to "/textfile0.txt" - And user "Alice" has shared folder "/share1" with user "Brian" - And user "Alice" has shared folder "/share2" with user "Brian" - When user "Brian" moves file "textfile0.txt" to "/Shares/share1/shared_file.txt" using the WebDAV API - And user "Brian" moves file "/Shares/share1/shared_file.txt" to "/Shares/share2/shared_file.txt" using the WebDAV API - Then the HTTP status code of responses on all endpoints should be "201" - And as "Brian" file "/Shares/share1/shared_file.txt" should not exist - And as "Alice" file "share1/shared_file.txt" should not exist - But as "Brian" file "/Shares/share2/shared_file.txt" should exist - And as "Alice" file "share2/shared_file.txt" should exist - Examples: - | dav-path-version | - | old | - | new | - - - Scenario Outline: move files between shares by different users - Given using DAV path - And user "Carol" has been created with default attributes and without skeleton files - And user "Alice" has uploaded file with content "some data" to "/textfile0.txt" - And user "Alice" has created folder "/PARENT" - And user "Brian" has created folder "/PARENT" - And user "Alice" has moved file "textfile0.txt" to "PARENT/shared_file.txt" - And user "Alice" has shared folder "/PARENT" with user "Carol" - And user "Brian" has shared folder "/PARENT" with user "Carol" - When user "Carol" moves file "/Shares/PARENT/shared_file.txt" to "/Shares/PARENT (2)/shared_file.txt" using the WebDAV API - Then the HTTP status code should be "201" - And as "Carol" file "/Shares/PARENT (2)/shared_file.txt" should exist - And as "Brian" file "PARENT/shared_file.txt" should exist - But as "Alice" file "PARENT/shared_file.txt" should not exist - Examples: - | dav-path-version | - | old | - | new | - - Scenario Outline: overwrite a received file share Given using DAV path And user "Alice" has uploaded file with content "this is the old content" to "/textfile1.txt" diff --git a/tests/acceptance/features/coreApiWebdavMove2/moveFile.feature b/tests/acceptance/features/coreApiWebdavMove2/moveFile.feature index 2344ba408c0..3dcd3f53653 100644 --- a/tests/acceptance/features/coreApiWebdavMove2/moveFile.feature +++ b/tests/acceptance/features/coreApiWebdavMove2/moveFile.feature @@ -30,13 +30,16 @@ Feature: move (rename) file @smokeTest Scenario Outline: moving and overwriting a file Given using DAV path - And user "Alice" has uploaded file with content "ownCloud test text file 0" to "textfile0.txt" + And user "Alice" has uploaded file with content "ownCloud test text file 0 v1" to "textfile0.txt" + And user "Alice" has uploaded file with content "ownCloud test text file 0 v2" to "textfile0.txt" And user "Alice" has uploaded file with content "ownCloud test text file 1" to "textfile1.txt" When user "Alice" moves file "/textfile0.txt" to "/textfile1.txt" using the WebDAV API Then the HTTP status code should be "204" And the following headers should match these regular expressions for user "Alice" | ETag | /^"[a-f0-9:\.]{1,32}"$/ | - And the content of file "/textfile1.txt" for user "Alice" should be "ownCloud test text file 0" + And the content of file "/textfile1.txt" for user "Alice" should be "ownCloud test text file 0 v2" + And the content of version index "1" of file "/textfile1.txt" for user "Alice" should be "ownCloud test text file 0 v1" + And as "Alice" file "/textfile0.txt" should not exist Examples: | dav-path-version | | old | diff --git a/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature b/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature index 1640605b2df..1564339eb2e 100644 --- a/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature +++ b/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature @@ -1,3 +1,4 @@ +@skipOnReva Feature: move (rename) file As a user I want to be able to move and rename files @@ -7,93 +8,156 @@ Feature: move (rename) file Given using OCS API version "1" And user "Alice" has been created with default attributes and without skeleton files - @skipOnReva - Scenario Outline: moving a file into a shared folder as the sharee and as the sharer + + Scenario Outline: sharer moves a file into a shared folder Given using DAV path And user "Brian" has been created with default attributes and without skeleton files And user "Brian" has created folder "/testshare" And user "Brian" has created a share with settings - | path | testshare | - | shareType | user | - | permissions | change | - | shareWith | Alice | - And user "" has uploaded file with content "test data" to "/testfile.txt" - When user "" moves file "/testfile.txt" to "/testfile.txt" using the WebDAV API + | path | testshare | + | shareType | user | + | permissions | | + | shareWith | Alice | + And user "Brian" has uploaded file with content "test data" to "/testfile.txt" + When user "Brian" moves file "/testfile.txt" to "testshare/testfile.txt" using the WebDAV API Then the HTTP status code should be "201" And the content of file "/Shares/testshare/testfile.txt" for user "Alice" should be "test data" And the content of file "/testshare/testfile.txt" for user "Brian" should be "test data" - And as "" file "/testfile.txt" should not exist + And as "Brian" file "/testfile.txt" should not exist + Examples: + | dav-path-version | permissions | + | old | read | + | old | change | + | old | all | + | new | read | + | new | change | + | new | all | + + + Scenario Outline: sharee tries to move a file into a shared folder + Given using DAV path + And user "Brian" has been created with default attributes and without skeleton files + And user "Brian" has created folder "/testshare" + And user "Brian" has created a share with settings + | path | testshare | + | shareType | user | + | permissions | | + | shareWith | Alice | + And user "Alice" has uploaded file with content "test data" to "/testfile.txt" + When user "Alice" moves file "/testfile.txt" to "Shares/testshare/testfile.txt" using the WebDAV API + Then the HTTP status code should be "403" + And as "Alice" file "Shares/testshare/testfile.txt" should not exist + And as "Brian" file "testshare/testfile.txt" should not exist + But as "Alice" file "/testfile.txt" should exist Examples: - | dav-path-version | mover | destination_folder | - | old | Alice | /Shares/testshare | - | old | Brian | /testshare | - | new | Alice | /Shares/testshare | - | new | Brian | /testshare | + | dav-path-version | permissions | + | old | read | + | old | change | + | old | all | + | new | read | + | new | change | + | new | all | + - @skipOnReva Scenario Outline: moving a file out of a shared folder as the sharer Given using DAV path And user "Brian" has been created with default attributes and without skeleton files And user "Brian" has created folder "/testshare" And user "Brian" has uploaded file with content "test data" to "/testshare/testfile.txt" And user "Brian" has created a share with settings - | path | testshare | - | shareType | user | - | permissions | change | - | shareWith | Alice | + | path | testshare | + | shareType | user | + | permissions | | + | shareWith | Alice | When user "Brian" moves file "/testshare/testfile.txt" to "/testfile.txt" using the WebDAV API Then the HTTP status code should be "201" And the content of file "/testfile.txt" for user "Brian" should be "test data" And as "Alice" file "/Shares/testshare/testfile.txt" should not exist And as "Brian" file "/testshare/testfile.txt" should not exist Examples: - | dav-path-version | - | old | - | new | + | dav-path-version | permissions | + | old | read | + | old | change | + | old | all | + | new | read | + | new | change | + | new | all | + - @skipOnReva Scenario Outline: moving a file out of a shared folder as the sharee Given using DAV path And user "Brian" has been created with default attributes and without skeleton files And user "Brian" has created folder "/testshare" And user "Brian" has uploaded file with content "test data" to "/testshare/testfile.txt" And user "Brian" has created a share with settings - | path | testshare | - | shareType | user | - | permissions | change | - | shareWith | Alice | + | path | testshare | + | shareType | user | + | permissions | | + | shareWith | Alice | When user "Alice" moves file "/Shares/testshare/testfile.txt" to "/testfile.txt" using the WebDAV API Then the HTTP status code should be "502" And as "Alice" file "/Shares/testshare/testfile.txt" should exist And as "Brian" file "/testshare/testfile.txt" should exist Examples: - | dav-path-version | - | old | - | new | + | dav-path-version | permissions | + | old | read | + | old | change | + | old | all | + | new | read | + | new | change | + | new | all | + - @skipOnReva - Scenario Outline: moving a folder into a shared folder as the sharee and as the sharer + Scenario Outline: moving a folder into a shared folder the sharer Given using DAV path And user "Brian" has been created with default attributes and without skeleton files And user "Brian" has created folder "/testshare" And user "Brian" has created a share with settings - | path | testshare | - | shareType | user | - | permissions | change | - | shareWith | Alice | - And user "" has created folder "/testsubfolder" - And user "" has uploaded file with content "test data" to "/testsubfolder/testfile.txt" - When user "" moves folder "/testsubfolder" to "/testsubfolder" using the WebDAV API + | path | testshare | + | shareType | user | + | permissions | | + | shareWith | Alice | + And user "Brian" has created folder "/testsubfolder" + And user "Brian" has uploaded file with content "test data" to "/testsubfolder/testfile.txt" + When user "Brian" moves folder "/testsubfolder" to "testshare/testsubfolder" using the WebDAV API Then the HTTP status code should be "201" And the content of file "/Shares/testshare/testsubfolder/testfile.txt" for user "Alice" should be "test data" And the content of file "/testshare/testsubfolder/testfile.txt" for user "Brian" should be "test data" - And as "" file "/testsubfolder" should not exist + And as "Brian" file "/testsubfolder" should not exist Examples: - | dav-path-version | mover | destination_folder | - | old | Alice | /Shares/testshare | - | old | Brian | /testshare | - | new | Alice | /Shares/testshare | - | new | Brian | /testshare | + | dav-path-version | permissions | + | old | read | + | old | change | + | old | all | + | new | read | + | new | change | + | new | all | + + + Scenario Outline: moving a folder into a shared folder as the sharee + Given using DAV path + And user "Brian" has been created with default attributes and without skeleton files + And user "Brian" has created folder "/testshare" + And user "Brian" has created a share with settings + | path | testshare | + | shareType | user | + | permissions | | + | shareWith | Alice | + And user "Alice" has created folder "/testsubfolder" + And user "Alice" has uploaded file with content "test data" to "/testsubfolder/testfile.txt" + When user "Alice" moves folder "/testsubfolder" to "Shares/testshare/testsubfolder" using the WebDAV API + Then the HTTP status code should be "403" + And as "Alice" folder "/Shares/testshare/testsubfolder" should not exist + And as "Brian" folder "/testshare/testsubfolder" should not exist + But as "Alice" folder "/testsubfolder" should exist + Examples: + | dav-path-version | permissions | + | old | read | + | old | change | + | old | all | + | new | read | + | new | change | + | new | all | Scenario Outline: moving a folder out of a shared folder as the sharer @@ -105,21 +169,25 @@ Feature: move (rename) file | /testshare/testsubfolder | And user "Brian" has uploaded file with content "test data" to "/testshare/testsubfolder/testfile.txt" And user "Brian" has created a share with settings - | path | testshare | - | shareType | user | - | permissions | change | - | shareWith | Alice | + | path | testshare | + | shareType | user | + | permissions | | + | shareWith | Alice | When user "Brian" moves folder "/testshare/testsubfolder" to "/testsubfolder" using the WebDAV API Then the HTTP status code should be "201" And the content of file "/testsubfolder/testfile.txt" for user "Brian" should be "test data" And as "Alice" folder "/testshare/testsubfolder" should not exist And as "Brian" folder "/testshare/testsubfolder" should not exist Examples: - | dav-path-version | - | old | - | new | + | dav-path-version | permissions | + | old | read | + | old | change | + | old | all | + | new | read | + | new | change | + | new | all | + - @skipOnReva Scenario Outline: moving a folder out of a shared folder as the sharee Given using DAV path And user "Brian" has been created with default attributes and without skeleton files @@ -129,54 +197,66 @@ Feature: move (rename) file | /testshare/testsubfolder | And user "Brian" has uploaded file with content "test data" to "/testshare/testsubfolder/testfile.txt" And user "Brian" has created a share with settings - | path | testshare | - | shareType | user | - | permissions | change | - | shareWith | Alice | + | path | testshare | + | shareType | user | + | permissions | | + | shareWith | Alice | When user "Alice" moves folder "/Shares/testshare/testsubfolder" to "/testsubfolder" using the WebDAV API Then the HTTP status code should be "502" And as "Alice" folder "/Shares/testshare/testsubfolder" should exist And as "Brian" folder "/testshare/testsubfolder" should exist Examples: - | dav-path-version | - | old | - | new | + | dav-path-version | permissions | + | old | read | + | old | change | + | old | all | + | new | read | + | new | change | + | new | all | + - @skipOnReva - Scenario Outline: moving a file to a shared folder with no permissions + Scenario Outline: sharee moves a file within a shared folder (change/all permissions) Given using DAV path - And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "textfile0.txt" And user "Brian" has been created with default attributes and without skeleton files - And user "Brian" has created folder "/testshare" + And user "Brian" has created folder "testshare" + And user "Brian" has created folder "testshare/child" + And user "Brian" has uploaded file with content "test data" to "testshare/testfile.txt" And user "Brian" has created a share with settings - | path | testshare | - | shareType | user | - | permissions | read | - | shareWith | Alice | - When user "Alice" moves file "/textfile0.txt" to "/Shares/testshare/textfile0.txt" using the WebDAV API - Then the HTTP status code should be "403" - And user "Alice" should not be able to download file "/Shares/testshare/textfile0.txt" + | path | testshare | + | shareType | user | + | permissions | | + | shareWith | Alice | + When user "Alice" moves folder "Shares/testshare/testfile.txt" to "Shares/testshare/child/testfile.txt" using the WebDAV API + Then the HTTP status code should be "201" + And as "Alice" file "/Shares/testshare/child/testfile.txt" should exist + And as "Brian" file "/testshare/child/testfile.txt" should exist + And as "Alice" file "/Shares/testshare/testfile.txt" should not exist + And as "Brian" file "/testshare/testfile.txt" should not exist Examples: - | dav-path-version | - | old | - | new | + | dav-path-version | permissions | + | old | change | + | old | all | + | new | change | + | new | all | + - @skipOnReva - Scenario Outline: moving a file to overwrite a file in a shared folder with no permissions + Scenario Outline: sharee tries to move a file within a shared folder (read permissions) Given using DAV path - And user "Alice" has uploaded file with content "ownCloud test text file 0" to "textfile0.txt" And user "Brian" has been created with default attributes and without skeleton files - And user "Brian" has created folder "/testshare" - And user "Brian" has uploaded file with content "Welcome to ownCloud" to "fileToCopy.txt" + And user "Brian" has created folder "testshare" + And user "Brian" has created folder "testshare/child" + And user "Brian" has uploaded file with content "test data" to "testshare/testfile.txt" And user "Brian" has created a share with settings - | path | testshare | - | shareType | user | - | permissions | read | - | shareWith | Alice | - And user "Brian" has copied file "/fileToCopy.txt" to "/testshare/overwritethis.txt" - When user "Alice" moves file "/textfile0.txt" to "/Shares/testshare/overwritethis.txt" using the WebDAV API + | path | testshare | + | shareType | user | + | permissions | read | + | shareWith | Alice | + When user "Alice" moves folder "Shares/testshare/testfile.txt" to "Shares/testshare/child/testfile.txt" using the WebDAV API Then the HTTP status code should be "403" - And the content of file "/Shares/testshare/overwritethis.txt" for user "Alice" should be "Welcome to ownCloud" + And as "Alice" file "/Shares/testshare/child/testfile.txt" should not exist + And as "Brian" file "/testshare/child/testfile.txt" should not exist + And as "Alice" file "/Shares/testshare/testfile.txt" should exist + And as "Brian" file "/testshare/testfile.txt" should exist Examples: | dav-path-version | | old |