extend dav paths versions

This commit is contained in:
Prajwol Amatya
2024-11-18 16:31:43 +05:45
parent f31f92a028
commit 9d6bd35bb5
14 changed files with 109 additions and 382 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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-version> 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 |

View File

@@ -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

View File

@@ -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-version> 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-version> 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 |

View File

@@ -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-version> 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 |

View File

@@ -26,8 +26,6 @@ Feature: files and folders can be deleted from the trashbin
And as "Alice" the file with original path "<file-name-2>" 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 |

View File

@@ -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 "<user>" 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 |

View File

@@ -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 |

View File

@@ -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 |

View File

@@ -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-version> 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-version> 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-version> 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-version> 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 |

View File

@@ -79,39 +79,26 @@ Feature: dav-versions
| spaces |
@smokeTest
Scenario Outline: restore a file and check its content
Given using <dav-path-version> 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-version> 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-version> 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-version> 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-version> 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/<<FILEID>>"
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-version> 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-version> 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/<file-id>/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<EFBFBD>4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and <EFBFBD> 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<EFBFBD>4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and <EFBFBD> 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<EFBFBD>4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and <EFBFBD> sign |
| 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<EFBFBD>4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and <EFBFBD> sign |
Scenario Outline: version history is preserved when a file is renamed
Given using <dav-path-version> DAV path
And user "Alice" has uploaded file with content "old content" to "/textfile.txt"
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-version> 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-version> 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-version> 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-version> 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-version> 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-version> 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 "<<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-version> DAV path
When user "Alice" retrieves the meta information of fileId "<file-id>" 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<EFBFBD>4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and <EFBFBD> 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<EFBFBD>4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and <EFBFBD> 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<EFBFBD>4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and <EFBFBD> sign |
| 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<EFBFBD>4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and <EFBFBD> sign |
Scenario Outline: file versions sets back after getting deleted and restored from trashbin
Given using <dav-path-version> DAV path
And user "Alice" has uploaded file with content "Old Test Content." to "/davtest.txt"
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-version> 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-version> 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-version> 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-version> 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-version> 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-version> 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-version> 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-version> 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-version> 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-version> 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-version> 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-version> 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-version> 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 |

View File

@@ -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-version> 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 |