extend webdav tests for old, new and spaces path
This commit is contained in:
@@ -5,129 +5,208 @@ Feature: dav-versions
|
||||
|
||||
Background:
|
||||
Given using OCS API version "2"
|
||||
And using new DAV path
|
||||
And user "Alice" has been created with default attributes and without skeleton files
|
||||
|
||||
|
||||
Scenario: upload file and no version is available
|
||||
Scenario Outline: upload file and no version is available
|
||||
Given using <dav-path-version> DAV path
|
||||
When user "Alice" uploads file "filesForUpload/davtest.txt" to "/davtest.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "201"
|
||||
And the version folder of file "/davtest.txt" for user "Alice" should contain "0" elements
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario: upload file and no version is available using various chunking methods (except new chunking)
|
||||
Scenario Outline: upload file and no version is available using various chunking methods (except new chunking)
|
||||
Given using <dav-path-version> DAV path
|
||||
When user "Alice" uploads file "filesForUpload/davtest.txt" to filenames based on "/davtest.txt" with all mechanisms except new chunking using the WebDAV API
|
||||
Then the HTTP status code of all upload responses should be "201"
|
||||
And the version folder of file "/davtest.txt-olddav-regular" for user "Alice" should contain "0" elements
|
||||
And the version folder of file "/davtest.txt-newdav-regular" for user "Alice" should contain "0" elements
|
||||
And the version folder of file "/davtest.txt-olddav-oldchunking" for user "Alice" should contain "0" elements
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
@smokeTest
|
||||
Scenario: upload a file twice and versions are available
|
||||
Scenario Outline: upload a file twice and versions are available
|
||||
Given using <dav-path-version> DAV path
|
||||
When user "Alice" uploads file "filesForUpload/davtest.txt" to "/davtest.txt" using the WebDAV API
|
||||
And user "Alice" uploads file "filesForUpload/davtest.txt" to "/davtest.txt" using the WebDAV API
|
||||
Then the HTTP status code of responses on each endpoint should be "201, 204" respectively
|
||||
And the version folder of file "/davtest.txt" for user "Alice" should contain "1" element
|
||||
And the content length of file "/davtest.txt" with version index "1" for user "Alice" in versions folder should be "8"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario: upload a file twice and versions are available using various chunking methods (except new chunking)
|
||||
Scenario Outline: upload a file twice and versions are available using various chunking methods (except new chunking)
|
||||
Given using <dav-path-version> DAV path
|
||||
When user "Alice" uploads file "filesForUpload/davtest.txt" to filenames based on "/davtest.txt" with all mechanisms except new chunking using the WebDAV API
|
||||
And user "Alice" uploads file "filesForUpload/davtest.txt" to filenames based on "/davtest.txt" with all mechanisms except new chunking using the WebDAV API
|
||||
Then the HTTP status code of all upload responses should be between "201" and "204"
|
||||
And the version folder of file "/davtest.txt-olddav-regular" for user "Alice" should contain "1" element
|
||||
And the version folder of file "/davtest.txt-newdav-regular" for user "Alice" should contain "1" element
|
||||
And the version folder of file "/davtest.txt-olddav-oldchunking" for user "Alice" should contain "1" element
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
@smokeTest
|
||||
Scenario: remove a file
|
||||
Given user "Alice" has uploaded file "filesForUpload/davtest.txt" to "/davtest.txt"
|
||||
Scenario Outline: remove a file
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file "filesForUpload/davtest.txt" to "/davtest.txt"
|
||||
And user "Alice" has uploaded file "filesForUpload/davtest.txt" to "/davtest.txt"
|
||||
And the version folder of file "/davtest.txt" for user "Alice" should contain "1" element
|
||||
And user "Alice" has deleted file "/davtest.txt"
|
||||
When user "Alice" uploads file "filesForUpload/davtest.txt" to "/davtest.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "201"
|
||||
And the version folder of file "/davtest.txt" for user "Alice" should contain "0" elements
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
@smokeTest
|
||||
Scenario: restore a file and check its content
|
||||
Given user "Alice" has uploaded file with content "Test Content." to "/davtest.txt"
|
||||
Scenario Outline: restore a file and check its content
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file with content "Test Content." to "/davtest.txt"
|
||||
And user "Alice" has uploaded file with content "Content Test Updated." to "/davtest.txt"
|
||||
And the version folder of file "/davtest.txt" for user "Alice" should contain "1" element
|
||||
When user "Alice" restores version index "1" of file "/davtest.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And the content of file "/davtest.txt" for user "Alice" should be "Test Content."
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
@smokeTest @skipOnStorage:ceph @skipOnStorage:scality
|
||||
Scenario: restore a file back to bigger content and check its content
|
||||
Given user "Alice" has uploaded file with content "Back To The Future." to "/davtest.txt"
|
||||
Scenario Outline: restore a file back to bigger content and check its content
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file with content "Back To The Future." to "/davtest.txt"
|
||||
And user "Alice" has uploaded file with content "Update Content." to "/davtest.txt"
|
||||
And the version folder of file "/davtest.txt" for user "Alice" should contain "1" element
|
||||
When user "Alice" restores version index "1" of file "/davtest.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And the content of file "/davtest.txt" for user "Alice" should be "Back To The Future."
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
@smokeTest @skipOnStorage:ceph
|
||||
Scenario: uploading a chunked file does create the correct version that can be restored
|
||||
Given using old DAV path
|
||||
Scenario Outline: uploading a chunked file does create the correct version that can be restored
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file with content "textfile0" to "textfile0.txt"
|
||||
When user "Alice" uploads file "filesForUpload/davtest.txt" to "/textfile0.txt" in 2 chunks using the WebDAV API
|
||||
And user "Alice" uploads file "filesForUpload/lorem.txt" to "/textfile0.txt" in 3 chunks using the WebDAV API
|
||||
# HTTP status code is different for old (201) and new (204) WebDav API when uploading in chunks
|
||||
Then the HTTP status code of responses on all endpoints should be "201"
|
||||
And the version folder of file "/textfile0.txt" for user "Alice" should contain "2" elements
|
||||
When user "Alice" restores version index "1" of file "/textfile0.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And the content of file "/textfile0.txt" for user "Alice" should be "Dav-Test"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
@skipOnStorage:ceph @skipOnStorage:scality
|
||||
Scenario: restore a file and check the content and checksum
|
||||
Given user "Alice" has uploaded file with content "AAAAABBBBBCCCCC" and checksum "MD5:45a72715acdd5019c5be30bdbb75233e" to "/davtest.txt"
|
||||
Scenario Outline: restore a file and check the content and checksum
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file with content "AAAAABBBBBCCCCC" and checksum "MD5:45a72715acdd5019c5be30bdbb75233e" to "/davtest.txt"
|
||||
And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "/davtest.txt" with checksum "MD5:d70b40f177b14b470d1756a3c12b963a"
|
||||
And the version folder of file "/davtest.txt" for user "Alice" should contain "1" element
|
||||
When user "Alice" restores version index "1" of file "/davtest.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And the content of file "/davtest.txt" for user "Alice" should be "AAAAABBBBBCCCCC"
|
||||
And as user "Alice" the webdav checksum of "/davtest.txt" via propfind should match "SHA1:acfa6b1565f9710d4d497c6035d5c069bd35a8e8 MD5:45a72715acdd5019c5be30bdbb75233e ADLER32:1ecd03df"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario: user cannot access meta folder of a file which is owned by somebody else
|
||||
Given user "Brian" has been created with default attributes and without skeleton files
|
||||
Scenario Outline: user cannot access meta folder of a file which is owned by somebody else
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Alice" has uploaded file with content "123" to "/davtest.txt"
|
||||
And we save it into "FILEID"
|
||||
When user "Brian" sends HTTP method "PROPFIND" to URL "/dav/meta/<<FILEID>>"
|
||||
Then the HTTP status code should be "400" or "404"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario: user cannot access meta folder of a file which does not exist
|
||||
Given user "Brian" has been created with default attributes and without skeleton files
|
||||
Scenario Outline: user cannot access meta folder of a file which does not exist
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
When user "Brian" sends HTTP method "PROPFIND" to URL "/dav/meta/MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA=="
|
||||
Then the HTTP status code should be "400" or "404"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: user cannot access meta folder of a file with invalid fileid
|
||||
Given user "Brian" has been created with default attributes and without skeleton files
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
When user "Brian" sends HTTP method "PROPFIND" to URL "/dav/meta/<file-id>/v"
|
||||
Then the HTTP status code should be "400" or "404"
|
||||
Examples:
|
||||
| file-id | decoded-value | comment |
|
||||
| MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3PThjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bdc4-0b0000009157=8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with = sign |
|
||||
| MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3OGNjZDI3NTEtOTBhNC00MGYyLWI5ZjMtNjFlZGY4NDQyMWY0 | 1284d238-aa92-42ce-bdc4-0b00000091578ccd2751-90a4-40f2-b9f3-61edf84421f4 | no = sign |
|
||||
| c29tZS1yYW5kb20tZmlsZUlkPWFub3RoZXItcmFuZG9tLWZpbGVJZA== | some-random-fileId=another-random-fileId | some random string |
|
||||
| MTI4NGQyMzgtYWE5Mi00MmNlLWJkxzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bd�4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and � sign |
|
||||
| dav-path-version | file-id | decoded-value | comment |
|
||||
| old | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3PThjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bdc4-0b0000009157=8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with = sign |
|
||||
| old | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3OGNjZDI3NTEtOTBhNC00MGYyLWI5ZjMtNjFlZGY4NDQyMWY0 | 1284d238-aa92-42ce-bdc4-0b00000091578ccd2751-90a4-40f2-b9f3-61edf84421f4 | no = sign |
|
||||
| old | c29tZS1yYW5kb20tZmlsZUlkPWFub3RoZXItcmFuZG9tLWZpbGVJZA== | some-random-fileId=another-random-fileId | some random string |
|
||||
| old | MTI4NGQyMzgtYWE5Mi00MmNlLWJkxzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bd�4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and � sign |
|
||||
| new | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3PThjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bdc4-0b0000009157=8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with = sign |
|
||||
| new | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3OGNjZDI3NTEtOTBhNC00MGYyLWI5ZjMtNjFlZGY4NDQyMWY0 | 1284d238-aa92-42ce-bdc4-0b00000091578ccd2751-90a4-40f2-b9f3-61edf84421f4 | no = sign |
|
||||
| new | c29tZS1yYW5kb20tZmlsZUlkPWFub3RoZXItcmFuZG9tLWZpbGVJZA== | some-random-fileId=another-random-fileId | some random string |
|
||||
| new | MTI4NGQyMzgtYWE5Mi00MmNlLWJkxzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bd�4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and � sign |
|
||||
| spaces | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3PThjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bdc4-0b0000009157=8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with = sign |
|
||||
| spaces | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3OGNjZDI3NTEtOTBhNC00MGYyLWI5ZjMtNjFlZGY4NDQyMWY0 | 1284d238-aa92-42ce-bdc4-0b00000091578ccd2751-90a4-40f2-b9f3-61edf84421f4 | no = sign |
|
||||
| spaces | c29tZS1yYW5kb20tZmlsZUlkPWFub3RoZXItcmFuZG9tLWZpbGVJZA== | some-random-fileId=another-random-fileId | some random string |
|
||||
| spaces | MTI4NGQyMzgtYWE5Mi00MmNlLWJkxzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bd�4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and � sign |
|
||||
|
||||
|
||||
Scenario: version history is preserved when a file is renamed
|
||||
Given user "Alice" has uploaded file with content "old content" to "/textfile.txt"
|
||||
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"
|
||||
And user "Alice" has uploaded file with content "new content" to "/textfile.txt"
|
||||
And user "Alice" has moved file "/textfile.txt" to "/renamedfile.txt"
|
||||
When user "Alice" restores version index "1" of file "/renamedfile.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And the content of file "/renamedfile.txt" for user "Alice" should be "old content"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario: user can access version number after moving a file
|
||||
Given user "Alice" has created folder "testFolder"
|
||||
Scenario Outline: user can access version number after moving a file
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "testFolder"
|
||||
And user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt"
|
||||
And user "Alice" has uploaded file with content "version 1" to "textfile0.txt"
|
||||
And user "Alice" has uploaded file with content "version 2" to "textfile0.txt"
|
||||
@@ -136,27 +215,45 @@ Feature: dav-versions
|
||||
And user "Alice" gets the number of versions of file "/testFolder/textfile0.txt"
|
||||
Then the HTTP status code should be "207"
|
||||
And the number of versions should be "3"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario: original file has version number 0
|
||||
Given user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt"
|
||||
Scenario Outline: original file has version number 0
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt"
|
||||
When user "Alice" gets the number of versions of file "textfile0.txt"
|
||||
Then the HTTP status code should be "207"
|
||||
And the number of versions should be "0"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario: number of etag elements in response changes according to version of the file
|
||||
Given user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt"
|
||||
Scenario Outline: number of etag elements in response changes according to version of the file
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt"
|
||||
And user "Alice" has uploaded file with content "version 1" to "textfile0.txt"
|
||||
And user "Alice" has uploaded file with content "version 2" to "textfile0.txt"
|
||||
When user "Alice" gets the number of versions of file "textfile0.txt"
|
||||
Then the HTTP status code should be "207"
|
||||
And the number of etag elements in the response should be "2"
|
||||
And the number of versions should be "2"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario: download old versions of a file
|
||||
Given user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt"
|
||||
Scenario Outline: download old versions of a file
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt"
|
||||
And user "Alice" has uploaded file with content "version 1" to "textfile0.txt"
|
||||
And user "Alice" has uploaded file with content "version 2" to "textfile0.txt"
|
||||
When user "Alice" downloads the version of file "textfile0.txt" with the index "1"
|
||||
@@ -171,10 +268,16 @@ Feature: dav-versions
|
||||
| header | value |
|
||||
| Content-Disposition | attachment; filename*=UTF-8''textfile0.txt; filename="textfile0.txt" |
|
||||
And the downloaded content should be "uploaded content"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
@skipOnStorage:ceph @skipOnStorage:scality
|
||||
Scenario: download an old version of a restored file
|
||||
Given user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt"
|
||||
Scenario Outline: download an old version of a restored file
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file with content "uploaded content" to "textfile0.txt"
|
||||
And user "Alice" has uploaded file with content "version 1" to "textfile0.txt"
|
||||
And user "Alice" has uploaded file with content "version 2" to "textfile0.txt"
|
||||
And user "Alice" has restored version index "1" of file "textfile0.txt"
|
||||
@@ -190,6 +293,11 @@ Feature: dav-versions
|
||||
| header | value |
|
||||
| Content-Disposition | attachment; filename*=UTF-8''textfile0.txt; filename="textfile0.txt" |
|
||||
And the downloaded content should be "uploaded content"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario: user can retrieve meta information of a root folder
|
||||
@@ -213,27 +321,43 @@ Feature: dav-versions
|
||||
And the single response should contain a property "oc:meta-path-for-user" with value "/testFolder/davtest.txt"
|
||||
|
||||
|
||||
Scenario: user cannot retrieve meta information of a file which is owned by somebody else
|
||||
Given user "Brian" has been created with default attributes and without skeleton files
|
||||
Scenario Outline: user cannot retrieve meta information of a file which is owned by somebody else
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Alice" has uploaded file with content "123" to "/davtest.txt "
|
||||
And we save it into "FILEID"
|
||||
When user "Brian" retrieves the meta information of fileId "<<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:
|
||||
| file-id | decoded-value | comment |
|
||||
| MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3PThjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bdc4-0b0000009157=8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with = sign |
|
||||
| MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3OGNjZDI3NTEtOTBhNC00MGYyLWI5ZjMtNjFlZGY4NDQyMWY0 | 1284d238-aa92-42ce-bdc4-0b00000091578ccd2751-90a4-40f2-b9f3-61edf84421f4 | no = sign |
|
||||
| c29tZS1yYW5kb20tZmlsZUlkPWFub3RoZXItcmFuZG9tLWZpbGVJZA== | some-random-fileId=another-random-fileId | some random string |
|
||||
| MTI4NGQyMzgtYWE5Mi00MmNlLWJkxzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bd�4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and � sign |
|
||||
| dav-path-version | file-id | decoded-value | comment |
|
||||
| old | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3PThjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bdc4-0b0000009157=8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with = sign |
|
||||
| old | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3OGNjZDI3NTEtOTBhNC00MGYyLWI5ZjMtNjFlZGY4NDQyMWY0 | 1284d238-aa92-42ce-bdc4-0b00000091578ccd2751-90a4-40f2-b9f3-61edf84421f4 | no = sign |
|
||||
| old | c29tZS1yYW5kb20tZmlsZUlkPWFub3RoZXItcmFuZG9tLWZpbGVJZA== | some-random-fileId=another-random-fileId | some random string |
|
||||
| old | GQyMzgtYWE5Mi00MmNlLWJkxzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bd�4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and � sign |
|
||||
| new | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3PThjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bdc4-0b0000009157=8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with = sign |
|
||||
| new | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3OGNjZDI3NTEtOTBhNC00MGYyLWI5ZjMtNjFlZGY4NDQyMWY0 | 1284d238-aa92-42ce-bdc4-0b00000091578ccd2751-90a4-40f2-b9f3-61edf84421f4 | no = sign |
|
||||
| new | c29tZS1yYW5kb20tZmlsZUlkPWFub3RoZXItcmFuZG9tLWZpbGVJZA== | some-random-fileId=another-random-fileId | some random string |
|
||||
| new | GQyMzgtYWE5Mi00MmNlLWJkxzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bd�4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and � sign |
|
||||
| spaces | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3PThjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bdc4-0b0000009157=8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with = sign |
|
||||
| spaces | MTI4NGQyMzgtYWE5Mi00MmNlLWJkYzQtMGIwMDAwMDA5MTU3OGNjZDI3NTEtOTBhNC00MGYyLWI5ZjMtNjFlZGY4NDQyMWY0 | 1284d238-aa92-42ce-bdc4-0b00000091578ccd2751-90a4-40f2-b9f3-61edf84421f4 | no = sign |
|
||||
| spaces | c29tZS1yYW5kb20tZmlsZUlkPWFub3RoZXItcmFuZG9tLWZpbGVJZA== | some-random-fileId=another-random-fileId | some random string |
|
||||
| spaces | GQyMzgtYWE5Mi00MmNlLWJkxzQtMGIwMDAwMDA5MTU2OjhjY2QyNzUxLTkwYTQtNDBmMi1iOWYzLTYxZWRmODQ0MjFmNA== | 1284d238-aa92-42ce-bd�4-0b0000009156:8ccd2751-90a4-40f2-b9f3-61edf84421f4 | with : and � sign |
|
||||
|
||||
|
||||
Scenario: 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"
|
||||
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"
|
||||
And user "Alice" has uploaded file with content "New Test Content." to "/davtest.txt"
|
||||
And the version folder of file "/davtest.txt" for user "Alice" should contain "1" element
|
||||
And user "Alice" has deleted file "/davtest.txt"
|
||||
@@ -246,33 +370,56 @@ Feature: dav-versions
|
||||
When user "Alice" restores version index "1" of file "/davtest.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And the content of file "/davtest.txt" for user "Alice" should be "Old Test Content."
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario: upload the same file twice with the same mtime and a version is available
|
||||
Given user "Alice" has uploaded file "filesForUpload/textfile.txt" to "file.txt" with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the WebDAV API
|
||||
When user "Alice" uploads file "filesForUpload/textfile.txt" to "file.txt" with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And the version folder of file "/file.txt" for user "Alice" should contain "1" element
|
||||
|
||||
|
||||
Scenario: upload the same file more than twice with the same mtime and only one version is available
|
||||
Given user "Alice" has uploaded file "filesForUpload/textfile.txt" to "file.txt" with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the WebDAV API
|
||||
Scenario Outline: upload the same file twice with the same mtime and a version is available
|
||||
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
|
||||
When user "Alice" uploads file "filesForUpload/textfile.txt" to "file.txt" with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And the version folder of file "/file.txt" for user "Alice" should contain "1" element
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario: upload the same file twice with the same mtime and no version after restoring
|
||||
Given user "Alice" has uploaded file "filesForUpload/textfile.txt" to "file.txt" with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the WebDAV API
|
||||
Scenario Outline: upload the same file more than twice with the same mtime and only one version is available
|
||||
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
|
||||
And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "file.txt" with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the WebDAV API
|
||||
When user "Alice" uploads file "filesForUpload/textfile.txt" to "file.txt" with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And the version folder of file "/file.txt" for user "Alice" should contain "1" element
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario 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
|
||||
And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "file.txt" with mtime "Thu, 08 Aug 2019 04:18:13 GMT" using the WebDAV API
|
||||
When user "Alice" restores version index "1" of file "/file.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And the version folder of file "/file.txt" for user "Alice" should contain "0" element
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
@skipOnReva
|
||||
Scenario: sharer of a file can see the old version information when the sharee changes the content of the file
|
||||
Given user "Brian" has been created with default attributes and without skeleton files
|
||||
Scenario Outline: sharer of a file can see the old version information when the sharee changes the content of the file
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Alice" has uploaded file with content "First content" to "sharefile.txt"
|
||||
And user "Alice" has sent the following resource share invitation:
|
||||
| resource | sharefile.txt |
|
||||
@@ -286,10 +433,16 @@ Feature: dav-versions
|
||||
And the version folder of file "/sharefile.txt" for user "Alice" should contain "1" element
|
||||
When user "Brian" gets the number of versions of file "/Shares/sharefile.txt"
|
||||
Then the HTTP status code should be "403"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
@skipOnReva
|
||||
Scenario: sharer of a file can restore the original content of a shared file after the file has been modified by the sharee
|
||||
Given user "Brian" has been created with default attributes and without skeleton files
|
||||
Scenario Outline: sharer of a file can restore the original content of a shared file after the file has been modified by the sharee
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Alice" has uploaded file with content "First content" to "sharefile.txt"
|
||||
And user "Alice" has sent the following resource share invitation:
|
||||
| resource | sharefile.txt |
|
||||
@@ -303,10 +456,16 @@ Feature: dav-versions
|
||||
Then the HTTP status code should be "204"
|
||||
And the content of file "/sharefile.txt" for user "Alice" should be "First content"
|
||||
And the content of file "/Shares/sharefile.txt" for user "Brian" should be "First content"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
@skipOnReva
|
||||
Scenario: sharer can restore a file inside a shared folder modified by sharee
|
||||
Given user "Brian" has been created with default attributes and without skeleton files
|
||||
Scenario Outline: sharer can restore a file inside a shared folder modified by sharee
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Alice" has created folder "/sharingfolder"
|
||||
And user "Alice" has sent the following resource share invitation:
|
||||
| resource | sharingfolder |
|
||||
@@ -321,10 +480,16 @@ Feature: dav-versions
|
||||
Then the HTTP status code should be "204"
|
||||
And the content of file "/sharingfolder/sharefile.txt" for user "Alice" should be "First content"
|
||||
And the content of file "/Shares/sharingfolder/sharefile.txt" for user "Brian" should be "First content"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
@skipOnReva
|
||||
Scenario: sharee cannot see a version of a file inside a shared folder when modified by sharee
|
||||
Given user "Brian" has been created with default attributes and without skeleton files
|
||||
Scenario Outline: sharee cannot see a version of a file inside a shared folder when modified by sharee
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Alice" has created folder "/sharingfolder"
|
||||
And user "Alice" has sent the following resource share invitation:
|
||||
| resource | sharingfolder |
|
||||
@@ -339,10 +504,16 @@ Feature: dav-versions
|
||||
Then the HTTP status code should be "403"
|
||||
And the content of file "/Shares/sharingfolder/sharefile.txt" for user "Brian" should be "Second content"
|
||||
And the content of file "/sharingfolder/sharefile.txt" for user "Alice" should be "Second content"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
@skipOnReva
|
||||
Scenario: sharer can restore a file inside a shared folder created by sharee and modified by sharer
|
||||
Given user "Brian" has been created with default attributes and without skeleton files
|
||||
Scenario Outline: sharer can restore a file inside a shared folder created by sharee and modified by sharer
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Alice" has created folder "/sharingfolder"
|
||||
And user "Alice" has sent the following resource share invitation:
|
||||
| resource | sharingfolder |
|
||||
@@ -357,10 +528,16 @@ Feature: dav-versions
|
||||
Then the HTTP status code should be "204"
|
||||
And the content of file "/sharingfolder/sharefile.txt" for user "Alice" should be "First content"
|
||||
And the content of file "/Shares/sharingfolder/sharefile.txt" for user "Brian" should be "First content"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
@skipOnReva
|
||||
Scenario: sharer can restore a file inside a shared folder created by sharee and modified by sharee
|
||||
Given user "Brian" has been created with default attributes and without skeleton files
|
||||
Scenario Outline: sharer can restore a file inside a shared folder created by sharee and modified by sharee
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Alice" has created folder "/sharingfolder"
|
||||
And user "Alice" has sent the following resource share invitation:
|
||||
| resource | sharingfolder |
|
||||
@@ -375,10 +552,16 @@ Feature: dav-versions
|
||||
Then the HTTP status code should be "204"
|
||||
And the content of file "/sharingfolder/sharefile.txt" for user "Alice" should be "old content"
|
||||
And the content of file "/Shares/sharingfolder/sharefile.txt" for user "Brian" should be "old content"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
@skipOnReva
|
||||
Scenario: sharer can restore a file inside a group shared folder modified by sharee
|
||||
Given user "Brian" has been created with default attributes and without skeleton files
|
||||
Scenario Outline: sharer can restore a file inside a group shared folder modified by sharee
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Carol" has been created with default attributes and without skeleton files
|
||||
And group "grp1" has been created
|
||||
And user "Brian" has been added to group "grp1"
|
||||
@@ -400,6 +583,11 @@ Feature: dav-versions
|
||||
And the content of file "/sharingfolder/sharefile.txt" for user "Alice" should be "First content"
|
||||
And the content of file "/Shares/sharingfolder/sharefile.txt" for user "Brian" should be "First content"
|
||||
And the content of file "/Shares/sharingfolder/sharefile.txt" for user "Carol" should be "First content"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
@skipOnReva
|
||||
Scenario Outline: moving a file (with versions) into a shared folder as the sharer
|
||||
@@ -431,10 +619,14 @@ Feature: dav-versions
|
||||
| new | Viewer |
|
||||
| new | Uploader |
|
||||
| new | Editor |
|
||||
| spaces | Viewer |
|
||||
| spaces | Uploader |
|
||||
| spaces | Editor |
|
||||
|
||||
@skipOnReva
|
||||
Scenario: sharee tries to get file versions of file not shared by the sharer
|
||||
Given user "Brian" has been created with default attributes and without skeleton files
|
||||
Scenario Outline: sharee tries to get file versions of file not shared by the sharer
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Alice" has uploaded file with content "textfile0" to "textfile0.txt"
|
||||
And user "Alice" has uploaded file with content "textfile1" to "textfile1.txt"
|
||||
And user "Alice" has sent the following resource share invitation:
|
||||
@@ -447,10 +639,16 @@ Feature: dav-versions
|
||||
When user "Brian" tries to get versions of file "textfile1.txt" from "Alice"
|
||||
Then the HTTP status code should be "404"
|
||||
And the value of the item "//s:exception" in the response about user "Alice" should be "Sabre\DAV\Exception\NotFound"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
@skipOnStorage:ceph @skipOnReva
|
||||
Scenario: receiver tries get file versions of shared file from the sharer
|
||||
Given user "Brian" has been created with default attributes and without skeleton files
|
||||
Scenario Outline: receiver tries get file versions of shared file from the sharer
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Alice" has uploaded file with content "textfile0" to "textfile0.txt"
|
||||
And user "Alice" has uploaded file with content "version 1" to "textfile0.txt"
|
||||
And user "Alice" has uploaded file with content "version 2" to "textfile0.txt"
|
||||
@@ -464,10 +662,16 @@ Feature: dav-versions
|
||||
And user "Brian" has a share "textfile0.txt" synced
|
||||
When user "Brian" tries to get versions of file "textfile0.txt" from "Alice"
|
||||
Then the HTTP status code should be "403"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
@skipOnReva
|
||||
Scenario: receiver tries get file versions of shared file before receiving it
|
||||
Given user "Brian" has been created with default attributes and without skeleton files
|
||||
Scenario Outline: receiver tries get file versions of shared file before receiving it
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Alice" has uploaded file with content "textfile0" to "textfile0.txt"
|
||||
And user "Alice" has uploaded file with content "version 1" to "textfile0.txt"
|
||||
And user "Alice" has uploaded file with content "version 2" to "textfile0.txt"
|
||||
@@ -481,10 +685,16 @@ Feature: dav-versions
|
||||
When user "Brian" tries to get versions of file "textfile0.txt" from "Alice"
|
||||
Then the HTTP status code should be "403"
|
||||
And the value of the item "//s:exception" in the response about user "Alice" should be "Sabre\DAV\Exception\Forbidden"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
@issue-enterprise-6249
|
||||
Scenario: upload empty content file and check versions after multiple restores
|
||||
Given user "Alice" has uploaded file with content "" to "textfile.txt"
|
||||
Scenario Outline: upload empty content file and check versions after multiple restores
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file with content "" to "textfile.txt"
|
||||
And user "Alice" has uploaded file with content "test content" to "textfile.txt"
|
||||
And the version folder of file "textfile.txt" for user "Alice" should contain "1" element
|
||||
When user "Alice" restores version index "1" of file "textfile.txt" using the WebDAV API
|
||||
@@ -495,10 +705,16 @@ Feature: dav-versions
|
||||
Then the HTTP status code should be "204"
|
||||
And the content of file "textfile.txt" for user "Alice" should be "test content"
|
||||
And the version folder of file "textfile.txt" for user "Alice" should contain "1" elements
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario: update with empty content and check versions after multiple restores
|
||||
Given user "Alice" has uploaded file with content "test content" to "textfile.txt"
|
||||
Scenario Outline: update with empty content and check versions after multiple restores
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file with content "test content" to "textfile.txt"
|
||||
And user "Alice" has uploaded file with content "" to "textfile.txt"
|
||||
And the version folder of file "textfile.txt" for user "Alice" should contain "1" element
|
||||
When user "Alice" restores version index "1" of file "textfile.txt" using the WebDAV API
|
||||
@@ -509,3 +725,8 @@ Feature: dav-versions
|
||||
Then the HTTP status code should be "204"
|
||||
And the content of file "textfile.txt" for user "Alice" should be ""
|
||||
And the version folder of file "textfile.txt" for user "Alice" should contain "1" elements
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
Reference in New Issue
Block a user