[tests-only][ci] split large API test suites (#8212)
* split large API test suites * remove 30s sleep * organize core-api test suites * organize core-api test suites * divide into 9 pipelines * organize core-api test suites * organize api-search suites * organize api-search suites * fix config file
This commit is contained in:
@@ -0,0 +1,856 @@
|
||||
Feature: copy file
|
||||
As a user
|
||||
I want to be able to copy files
|
||||
So that I can manage my files
|
||||
|
||||
Background:
|
||||
Given using OCS API version "1"
|
||||
And user "Alice" has been created with default attributes and without skeleton files
|
||||
And user "Alice" has uploaded file with content "ownCloud test text file 0" to "/textfile0.txt"
|
||||
And user "Alice" has uploaded file with content "ownCloud test text file 1" to "/textfile1.txt"
|
||||
And user "Alice" has created folder "/FOLDER"
|
||||
|
||||
@smokeTest
|
||||
Scenario Outline: copying a file
|
||||
Given using <dav-path-version> DAV path
|
||||
When user "Alice" copies file "/textfile0.txt" to "/FOLDER/textfile0.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "201"
|
||||
And the content of file "/FOLDER/textfile0.txt" for user "Alice" should be "ownCloud test text file 0"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
@smokeTest
|
||||
Scenario Outline: copying and overwriting a file
|
||||
Given using <dav-path-version> DAV path
|
||||
When user "Alice" copies file "/textfile0.txt" to "/textfile1.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And the content of file "/textfile1.txt" for user "Alice" should be "ownCloud test text file 0"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: copying a file when 2 files exist with different case
|
||||
Given using <dav-path-version> DAV path
|
||||
# "/textfile1.txt" already exists in the skeleton, make another with only case differences in the file name
|
||||
When user "Alice" copies file "/textfile0.txt" to "/TextFile1.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "201"
|
||||
And the content of file "/textfile1.txt" for user "Alice" should be "ownCloud test text file 1"
|
||||
And the content of file "/TextFile1.txt" for user "Alice" should be "ownCloud test text file 0"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
@skipOnReva
|
||||
Scenario Outline: copying a file to a folder with no permissions
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Brian" has created folder "/testshare"
|
||||
And user "Brian" has created a share with settings
|
||||
| path | testshare |
|
||||
| shareType | user |
|
||||
| permissions | read |
|
||||
| shareWith | Alice |
|
||||
When user "Alice" copies file "/textfile0.txt" to "/Shares/testshare/textfile0.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "403"
|
||||
And user "Alice" should not be able to download file "/Shares/testshare/textfile0.txt"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnReva
|
||||
Scenario Outline: copying a file to overwrite a file into a folder with no permissions
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Brian" has created folder "/testshare"
|
||||
And user "Brian" has uploaded file with content "ownCloud test text file 1" to "textfile1.txt"
|
||||
And user "Brian" has created a share with settings
|
||||
| path | testshare |
|
||||
| shareType | user |
|
||||
| permissions | read |
|
||||
| shareWith | Alice |
|
||||
And user "Brian" has copied file "textfile1.txt" to "/testshare/overwritethis.txt"
|
||||
When user "Alice" copies file "/textfile0.txt" to "/Shares/testshare/overwritethis.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "403"
|
||||
And the content of file "/Shares/testshare/overwritethis.txt" for user "Alice" should be "ownCloud test text file 1"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@issue-1345
|
||||
Scenario Outline: copying file to a path with extension .part should not be possible
|
||||
Given using <dav-path-version> DAV path
|
||||
When user "Alice" copies file "/textfile1.txt" to "/textfile1.part" using the WebDAV API
|
||||
Then the HTTP status code should be "400"
|
||||
And the DAV exception should be "OCA\DAV\Connector\Sabre\Exception\InvalidPath"
|
||||
And the DAV message should be "Can`t upload files with extension .part because these extensions are reserved for internal use."
|
||||
And the DAV reason should be "Can`t upload files with extension .part because these extensions are reserved for internal use."
|
||||
And user "Alice" should see the following elements
|
||||
| /textfile1.txt |
|
||||
But user "Alice" should not see the following elements
|
||||
| /textfile1.part |
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
@issue-1239
|
||||
Scenario Outline: copy a file over the top of an existing folder
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "FOLDER/sample-folder"
|
||||
When user "Alice" copies file "/textfile1.txt" to "/FOLDER" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And the content of file "/FOLDER" for user "Alice" should be "ownCloud test text file 1"
|
||||
And as "Alice" folder "/FOLDER/sample-folder" should not exist
|
||||
And as "Alice" file "/textfile1.txt" should exist
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
@issue-1239
|
||||
Scenario Outline: copy a folder over the top of an existing file
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "FOLDER/sample-folder"
|
||||
When user "Alice" copies folder "/FOLDER" to "/textfile1.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And as "Alice" folder "/FOLDER/sample-folder" should exist
|
||||
And as "Alice" folder "/textfile1.txt/sample-folder" should exist
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
@issue-1239
|
||||
Scenario Outline: copy a folder into another folder at different level
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "FOLDER/second-level-folder"
|
||||
And user "Alice" has created folder "FOLDER/second-level-folder/third-level-folder"
|
||||
And user "Alice" has created folder "Sample-Folder-A"
|
||||
And user "Alice" has created folder "Sample-Folder-A/sample-folder-b"
|
||||
And user "Alice" has created folder "Sample-Folder-A/sample-folder-b/sample-folder-c"
|
||||
When user "Alice" copies folder "Sample-Folder-A/sample-folder-b" to "FOLDER/second-level-folder/third-level-folder" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And as "Alice" folder "/Sample-Folder-A/sample-folder-b/sample-folder-c" should exist
|
||||
And as "Alice" folder "/FOLDER/second-level-folder/third-level-folder/sample-folder-c" should exist
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
@issue-1239
|
||||
Scenario Outline: copy a file into a folder at different level
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "FOLDER/second-level-folder"
|
||||
And user "Alice" has created folder "FOLDER/second-level-folder/third-level-folder"
|
||||
And user "Alice" has created folder "Sample-Folder-A"
|
||||
And user "Alice" has created folder "Sample-Folder-A/sample-folder-b"
|
||||
And user "Alice" has uploaded file with content "sample file-c" to "Sample-Folder-A/sample-folder-b/textfile-c.txt"
|
||||
When user "Alice" copies file "Sample-Folder-A/sample-folder-b/textfile-c.txt" to "FOLDER/second-level-folder" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And as "Alice" folder "FOLDER/second-level-folder/third-level-folder" should not exist
|
||||
And as "Alice" file "Sample-Folder-A/sample-folder-b/textfile-c.txt" should exist
|
||||
And as "Alice" file "FOLDER/second-level-folder" should exist
|
||||
And the content of file "FOLDER/second-level-folder" for user "Alice" should be "sample file-c"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
@issue-1239
|
||||
Scenario Outline: copy a file into a file at different level
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file with content "file at second level" to "FOLDER/second-level-file.txt"
|
||||
And user "Alice" has created folder "Sample-Folder-A"
|
||||
And user "Alice" has created folder "Sample-Folder-A/sample-folder-b"
|
||||
And user "Alice" has uploaded file with content "sample file-c" to "Sample-Folder-A/sample-folder-b/textfile-c.txt"
|
||||
When user "Alice" copies file "Sample-Folder-A/sample-folder-b/textfile-c.txt" to "FOLDER/second-level-file.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And as "Alice" file "Sample-Folder-A/sample-folder-b/textfile-c.txt" should exist
|
||||
And as "Alice" file "FOLDER/second-level-file.txt" should exist
|
||||
And as "Alice" file "FOLDER/textfile-c.txt" should not exist
|
||||
And the content of file "FOLDER/second-level-file.txt" for user "Alice" should be "sample file-c"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
@issue-1239
|
||||
Scenario Outline: copy a folder into a file at different level
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "FOLDER/second-level-folder"
|
||||
And user "Alice" has created folder "FOLDER/second-level-folder/third-level-folder"
|
||||
And user "Alice" has created folder "Sample-Folder-A"
|
||||
And user "Alice" has created folder "Sample-Folder-A/sample-folder-b"
|
||||
And user "Alice" has uploaded file with content "sample file-c" to "Sample-Folder-A/sample-folder-b/textfile-c.txt"
|
||||
When user "Alice" copies folder "FOLDER/second-level-folder" to "Sample-Folder-A/sample-folder-b/textfile-c.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And as "Alice" folder "Sample-Folder-A/sample-folder-b/textfile-c.txt" should exist
|
||||
And as "Alice" folder "FOLDER/second-level-folder/third-level-folder" should exist
|
||||
And as "Alice" folder "Sample-Folder-A/sample-folder-b/textfile-c.txt/third-level-folder" should exist
|
||||
And as "Alice" folder "Sample-Folder-A/sample-folder-b/second-level-folder" should not exist
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
@issue-1239 @skipOnReva
|
||||
Scenario Outline: copy a file over the top of an existing folder received as a user share
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Brian" has created folder "/BRIAN-Folder"
|
||||
And user "Brian" has created folder "BRIAN-Folder/sample-folder"
|
||||
And user "Brian" has shared folder "BRIAN-Folder" with user "Alice"
|
||||
When user "Alice" copies file "/textfile1.txt" to "/Shares/BRIAN-Folder" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And the content of file "/Shares/BRIAN-Folder" for user "Alice" should be "ownCloud test text file 1"
|
||||
And as "Alice" folder "/Shares/BRIAN-Folder/sample-folder" should not exist
|
||||
And as "Alice" file "/textfile1.txt" should exist
|
||||
And user "Alice" should not have any received shares
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@issue-1239 @skipOnReva
|
||||
Scenario Outline: copy a folder over the top of an existing file received as a user share
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Brian" has uploaded file with content "file to share" to "/sharedfile1.txt"
|
||||
And user "Brian" has shared file "/sharedfile1.txt" with user "Alice"
|
||||
And user "Alice" has created folder "FOLDER/sample-folder"
|
||||
When user "Alice" copies folder "/FOLDER" to "/Shares/sharedfile1.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And as "Alice" folder "/FOLDER/sample-folder" should exist
|
||||
And as "Alice" folder "/Shares/sharedfile1.txt/sample-folder" should exist
|
||||
And user "Alice" should not have any received shares
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@issue-1239 @skipOnReva
|
||||
Scenario Outline: copy a folder into another folder at different level which is received as a user share
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Brian" has created folder "BRIAN-FOLDER"
|
||||
And user "Brian" has created folder "BRIAN-FOLDER/second-level-folder"
|
||||
And user "Brian" has created folder "BRIAN-FOLDER/second-level-folder/third-level-folder"
|
||||
And user "Brian" has shared folder "BRIAN-FOLDER" with user "Alice"
|
||||
And user "Alice" has created folder "Sample-Folder-A"
|
||||
And user "Alice" has created folder "Sample-Folder-A/sample-folder-b"
|
||||
And user "Alice" has created folder "Sample-Folder-A/sample-folder-b/sample-folder-c"
|
||||
When user "Alice" copies folder "Sample-Folder-A/sample-folder-b" to "Shares/BRIAN-FOLDER/second-level-folder/third-level-folder" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And as "Alice" folder "/Sample-Folder-A/sample-folder-b/sample-folder-c" should exist
|
||||
And as "Alice" folder "/Shares/BRIAN-FOLDER/second-level-folder/third-level-folder/sample-folder-c" should exist
|
||||
And the response when user "Alice" gets the info of the last share should include
|
||||
| file_target | /Shares/BRIAN-FOLDER |
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@issue-1239 @skipOnReva
|
||||
Scenario Outline: copy a file into a folder at different level received as a user share
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Brian" has created folder "BRIAN-FOLDER"
|
||||
And user "Brian" has created folder "BRIAN-FOLDER/second-level-folder"
|
||||
And user "Brian" has created folder "BRIAN-FOLDER/second-level-folder/third-level-folder"
|
||||
And user "Brian" has shared folder "BRIAN-FOLDER" with user "Alice"
|
||||
And user "Alice" has created folder "Sample-Folder-A"
|
||||
And user "Alice" has created folder "Sample-Folder-A/sample-folder-b"
|
||||
And user "Alice" has uploaded file with content "sample file-c" to "Sample-Folder-A/sample-folder-b/textfile-c.txt"
|
||||
When user "Alice" copies file "Sample-Folder-A/sample-folder-b/textfile-c.txt" to "Shares/BRIAN-FOLDER/second-level-folder" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And as "Alice" folder "Shares/BRIAN-FOLDER/second-level-folder/third-level-folder" should not exist
|
||||
And as "Alice" file "Sample-Folder-A/sample-folder-b/textfile-c.txt" should exist
|
||||
And as "Alice" file "Shares/BRIAN-FOLDER/second-level-folder" should exist
|
||||
And the content of file "Shares/BRIAN-FOLDER/second-level-folder" for user "Alice" should be "sample file-c"
|
||||
And the response when user "Alice" gets the info of the last share should include
|
||||
| file_target | /Shares/BRIAN-FOLDER |
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@issue-1239 @skipOnReva
|
||||
Scenario Outline: copy a file into a file at different level received as a user share
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Brian" has created folder "BRIAN-FOLDER"
|
||||
And user "Brian" has uploaded file with content "file at second level" to "BRIAN-FOLDER/second-level-file.txt"
|
||||
And user "Brian" has shared folder "BRIAN-FOLDER" with user "Alice"
|
||||
And user "Alice" has created folder "Sample-Folder-A"
|
||||
And user "Alice" has created folder "Sample-Folder-A/sample-folder-b"
|
||||
And user "Alice" has uploaded file with content "sample file-c" to "Sample-Folder-A/sample-folder-b/textfile-c.txt"
|
||||
When user "Alice" copies file "Sample-Folder-A/sample-folder-b/textfile-c.txt" to "Shares/BRIAN-FOLDER/second-level-file.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And as "Alice" file "Sample-Folder-A/sample-folder-b/textfile-c.txt" should exist
|
||||
And as "Alice" file "Shares/BRIAN-FOLDER/second-level-file.txt" should exist
|
||||
And as "Alice" file "Shares/BRIAN-FOLDER/textfile-c.txt" should not exist
|
||||
And the content of file "Shares/BRIAN-FOLDER/second-level-file.txt" for user "Alice" should be "sample file-c"
|
||||
And the response when user "Alice" gets the info of the last share should include
|
||||
| file_target | /Shares/BRIAN-FOLDER |
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@issue-1239 @skipOnReva
|
||||
Scenario Outline: copy a folder into a file at different level received as a user share
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Brian" has created folder "BRIAN-FOLDER"
|
||||
And user "Brian" has created folder "BRIAN-FOLDER/second-level-folder"
|
||||
And user "Brian" has uploaded file with content "file at third level" to "BRIAN-FOLDER/second-level-folder/third-level-file.txt"
|
||||
And user "Brian" has shared folder "BRIAN-FOLDER" with user "Alice"
|
||||
And user "Alice" has created folder "FOLDER/second-level-folder"
|
||||
And user "Alice" has created folder "FOLDER/second-level-folder/third-level-folder"
|
||||
When user "Alice" copies folder "FOLDER/second-level-folder" to "/Shares/BRIAN-FOLDER/second-level-folder/third-level-file.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And as "Alice" folder "Shares/BRIAN-FOLDER/second-level-folder/third-level-file.txt" should exist
|
||||
And as "Alice" folder "FOLDER/second-level-folder/third-level-folder" should exist
|
||||
And as "Alice" folder "Shares/BRIAN-FOLDER/second-level-folder/third-level-file.txt/third-level-folder" should exist
|
||||
And as "Alice" folder "Shares/BRIAN-FOLDER/second-level-folder/second-level-folder" should not exist
|
||||
And the response when user "Alice" gets the info of the last share should include
|
||||
| file_target | /Shares/BRIAN-FOLDER |
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@issue-1239 @skipOnReva
|
||||
Scenario Outline: copy a file over the top of an existing folder received as a group share
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And group "grp1" has been created
|
||||
And user "Alice" has been added to group "grp1"
|
||||
And user "Brian" has been added to group "grp1"
|
||||
And user "Brian" has created folder "/BRIAN-Folder"
|
||||
And user "Brian" has created folder "BRIAN-Folder/sample-folder"
|
||||
And user "Brian" has shared folder "BRIAN-Folder" with group "grp1" with permissions "15"
|
||||
When user "Alice" copies file "/textfile1.txt" to "/Shares/BRIAN-Folder" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And the content of file "/Shares/BRIAN-Folder" for user "Alice" should be "ownCloud test text file 1"
|
||||
And as "Alice" folder "/Shares/BRIAN-Folder/sample-folder" should not exist
|
||||
And as "Alice" file "/textfile1.txt" should exist
|
||||
And user "Alice" should not have any received shares
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
@issue-1239 @skipOnReva
|
||||
Scenario Outline: copy a folder over the top of an existing file received as a group share
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And group "grp1" has been created
|
||||
And user "Alice" has been added to group "grp1"
|
||||
And user "Brian" has been added to group "grp1"
|
||||
And user "Brian" has uploaded file with content "file to share" to "/sharedfile1.txt"
|
||||
And user "Brian" has shared file "/sharedfile1.txt" with group "grp1"
|
||||
And user "Alice" has created folder "FOLDER/sample-folder"
|
||||
When user "Alice" copies folder "/FOLDER" to "/Shares/sharedfile1.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And as "Alice" folder "/FOLDER/sample-folder" should exist
|
||||
And as "Alice" folder "/Shares/sharedfile1.txt/sample-folder" should exist
|
||||
And user "Alice" should not have any received shares
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
@issue-1239 @skipOnReva
|
||||
Scenario Outline: copy a folder into another folder at different level which is received as a group share
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And group "grp1" has been created
|
||||
And user "Alice" has been added to group "grp1"
|
||||
And user "Brian" has been added to group "grp1"
|
||||
And user "Brian" has created folder "BRIAN-FOLDER"
|
||||
And user "Brian" has created folder "BRIAN-FOLDER/second-level-folder"
|
||||
And user "Brian" has created folder "BRIAN-FOLDER/second-level-folder/third-level-folder"
|
||||
And user "Brian" has shared folder "BRIAN-FOLDER" with group "grp1"
|
||||
And user "Alice" has created folder "Sample-Folder-A"
|
||||
And user "Alice" has created folder "Sample-Folder-A/sample-folder-b"
|
||||
And user "Alice" has created folder "Sample-Folder-A/sample-folder-b/sample-folder-c"
|
||||
When user "Alice" copies folder "Sample-Folder-A/sample-folder-b" to "Shares/BRIAN-FOLDER/second-level-folder/third-level-folder" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And as "Alice" folder "/Sample-Folder-A/sample-folder-b/sample-folder-c" should exist
|
||||
And as "Alice" folder "/Shares/BRIAN-FOLDER/second-level-folder/third-level-folder/sample-folder-c" should exist
|
||||
And the response when user "Alice" gets the info of the last share should include
|
||||
| file_target | /Shares/BRIAN-FOLDER |
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@issue-1239 @skipOnReva
|
||||
Scenario Outline: copy a file into a folder at different level received as a group share
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And group "grp1" has been created
|
||||
And user "Alice" has been added to group "grp1"
|
||||
And user "Brian" has been added to group "grp1"
|
||||
And user "Brian" has created folder "BRIAN-FOLDER"
|
||||
And user "Brian" has created folder "BRIAN-FOLDER/second-level-folder"
|
||||
And user "Brian" has created folder "BRIAN-FOLDER/second-level-folder/third-level-folder"
|
||||
And user "Brian" has shared folder "BRIAN-FOLDER" with group "grp1"
|
||||
And user "Alice" has created folder "Sample-Folder-A"
|
||||
And user "Alice" has created folder "Sample-Folder-A/sample-folder-b"
|
||||
And user "Alice" has uploaded file with content "sample file-c" to "Sample-Folder-A/sample-folder-b/textfile-c.txt"
|
||||
When user "Alice" copies file "Sample-Folder-A/sample-folder-b/textfile-c.txt" to "Shares/BRIAN-FOLDER/second-level-folder" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And as "Alice" folder "Shares/BRIAN-FOLDER/second-level-folder/third-level-folder" should not exist
|
||||
And as "Alice" file "Sample-Folder-A/sample-folder-b/textfile-c.txt" should exist
|
||||
And as "Alice" file "Shares/BRIAN-FOLDER/second-level-folder" should exist
|
||||
And the content of file "Shares/BRIAN-FOLDER/second-level-folder" for user "Alice" should be "sample file-c"
|
||||
And the response when user "Alice" gets the info of the last share should include
|
||||
| file_target | /Shares/BRIAN-FOLDER |
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@issue-1239 @skipOnReva
|
||||
Scenario Outline: copy a file into a file at different level received as a group share
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And group "grp1" has been created
|
||||
And user "Alice" has been added to group "grp1"
|
||||
And user "Brian" has been added to group "grp1"
|
||||
And user "Brian" has created folder "BRIAN-FOLDER"
|
||||
And user "Brian" has uploaded file with content "file at second level" to "BRIAN-FOLDER/second-level-file.txt"
|
||||
And user "Brian" has shared folder "BRIAN-FOLDER" with group "grp1"
|
||||
And user "Alice" has created folder "Sample-Folder-A"
|
||||
And user "Alice" has created folder "Sample-Folder-A/sample-folder-b"
|
||||
And user "Alice" has uploaded file with content "sample file-c" to "Sample-Folder-A/sample-folder-b/textfile-c.txt"
|
||||
When user "Alice" copies file "Sample-Folder-A/sample-folder-b/textfile-c.txt" to "Shares/BRIAN-FOLDER/second-level-file.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And as "Alice" file "Sample-Folder-A/sample-folder-b/textfile-c.txt" should exist
|
||||
And as "Alice" file "Shares/BRIAN-FOLDER/second-level-file.txt" should exist
|
||||
And as "Alice" file "Shares/BRIAN-FOLDER/textfile-c.txt" should not exist
|
||||
And the content of file "Shares/BRIAN-FOLDER/second-level-file.txt" for user "Alice" should be "sample file-c"
|
||||
And the response when user "Alice" gets the info of the last share should include
|
||||
| file_target | /Shares/BRIAN-FOLDER |
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@issue-1239 @skipOnReva
|
||||
Scenario Outline: copy a folder into a file at different level received as a group share
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And group "grp1" has been created
|
||||
And user "Alice" has been added to group "grp1"
|
||||
And user "Brian" has been added to group "grp1"
|
||||
And user "Brian" has created folder "BRIAN-FOLDER"
|
||||
And user "Brian" has created folder "BRIAN-FOLDER/second-level-folder"
|
||||
And user "Brian" has uploaded file with content "file at third level" to "BRIAN-FOLDER/second-level-folder/third-level-file.txt"
|
||||
And user "Brian" has shared folder "BRIAN-FOLDER" with group "grp1"
|
||||
And user "Alice" has created folder "FOLDER/second-level-folder"
|
||||
And user "Alice" has created folder "FOLDER/second-level-folder/third-level-folder"
|
||||
When user "Alice" copies folder "FOLDER/second-level-folder" to "Shares/BRIAN-FOLDER/second-level-folder/third-level-file.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "204"
|
||||
And as "Alice" folder "Shares/BRIAN-FOLDER/second-level-folder/third-level-file.txt" should exist
|
||||
And as "Alice" folder "FOLDER/second-level-folder/third-level-folder" should exist
|
||||
And as "Alice" folder "Shares/BRIAN-FOLDER/second-level-folder/third-level-file.txt/third-level-folder" should exist
|
||||
And as "Alice" folder "Shares/BRIAN-FOLDER/second-level-folder/second-level-folder" should not exist
|
||||
And the response when user "Alice" gets the info of the last share should include
|
||||
| file_target | /Shares/BRIAN-FOLDER |
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
|
||||
Scenario Outline: copy a file of size zero byte
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file "filesForUpload/zerobyte.txt" to "/zerobyte.txt"
|
||||
And user "Alice" has created folder "/testZeroByte"
|
||||
When user "Alice" copies file "/zerobyte.txt" to "/testZeroByte/zerobyte.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "201"
|
||||
And as "Alice" file "/testZeroByte/zerobyte.txt" should exist
|
||||
And as "Alice" file "/zerobyte.txt" should exist
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: copy file into a nonexistent folder
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "fileToCopy.txt"
|
||||
When user "Alice" copies file "/fileToCopy.txt" to "/not-existing-folder/fileToCopy.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "409"
|
||||
And as "Alice" file "/fileToCopy.txt" should exist
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: copy a nonexistent file into a folder
|
||||
Given using <dav-path-version> DAV path
|
||||
When user "Alice" copies file "/doesNotExist.txt" to "/FOLDER/doesNotExist.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "404"
|
||||
And as "Alice" file "/FOLDER/doesNotExist.txt" should not exist
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: copy a folder into a nonexistent one
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "/testshare"
|
||||
When user "Alice" copies folder "/testshare" to "/not-existing/testshare" using the WebDAV API
|
||||
Then the HTTP status code should be "409"
|
||||
And user "Alice" should see the following elements
|
||||
| /testshare/ |
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
@skipOnReva
|
||||
Scenario Outline: copying a file into a shared folder as the sharee
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Brian" has created folder "/testshare"
|
||||
And user "Brian" has created a share with settings
|
||||
| path | testshare |
|
||||
| shareType | user |
|
||||
| permissions | change |
|
||||
| shareWith | Alice |
|
||||
When user "Alice" copies file "/textfile0.txt" to "/Shares/testshare/textfile0.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "201"
|
||||
And the content of file "/Shares/testshare/textfile0.txt" for user "Alice" should be "ownCloud test text file 0"
|
||||
And the content of file "/testshare/textfile0.txt" for user "Brian" should be "ownCloud test text file 0"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnReva
|
||||
Scenario Outline: copying a file into a shared folder as the sharer
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Brian" has created folder "/testshare"
|
||||
And user "Brian" has created a share with settings
|
||||
| path | testshare |
|
||||
| shareType | user |
|
||||
| permissions | change |
|
||||
| shareWith | Alice |
|
||||
And user "Brian" has uploaded file with content "ownCloud test text file 0" to "/textfile0.txt"
|
||||
When user "Brian" copies file "/textfile0.txt" to "/testshare/textfile0.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "201"
|
||||
And the content of file "/Shares/testshare/textfile0.txt" for user "Alice" should be "ownCloud test text file 0"
|
||||
And the content of file "/testshare/textfile0.txt" for user "Brian" should be "ownCloud test text file 0"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnReva
|
||||
Scenario Outline: copying a file out of a shared folder as the sharee
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Brian" has created folder "/testshare"
|
||||
And user "Brian" has created a share with settings
|
||||
| path | testshare |
|
||||
| shareType | user |
|
||||
| permissions | change |
|
||||
| shareWith | Alice |
|
||||
And user "Alice" has uploaded file with content "ownCloud test text file inside share" to "/Shares/testshare/fileInsideShare.txt"
|
||||
When user "Alice" copies file "/Shares/testshare/fileInsideShare.txt" to "/fileInsideShare.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "201"
|
||||
And as "Alice" file "/fileInsideShare.txt" should exist
|
||||
And the content of file "/fileInsideShare.txt" for user "Alice" should be "ownCloud test text file inside share"
|
||||
And the content of file "/testshare/fileInsideShare.txt" for user "Brian" should be "ownCloud test text file inside share"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnReva
|
||||
Scenario Outline: copying a file out of a shared folder as the sharer
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Brian" has created folder "/testshare"
|
||||
And user "Brian" has uploaded file with content "ownCloud test text file inside share" to "/testshare/fileInsideShare.txt"
|
||||
And user "Brian" has created a share with settings
|
||||
| path | testshare |
|
||||
| shareType | user |
|
||||
| permissions | change |
|
||||
| shareWith | Alice |
|
||||
When user "Brian" copies file "testshare/fileInsideShare.txt" to "/fileInsideShare.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "201"
|
||||
And as "Brian" file "/fileInsideShare.txt" should exist
|
||||
And the content of file "/Shares/testshare/fileInsideShare.txt" for user "Alice" should be "ownCloud test text file inside share"
|
||||
And the content of file "/fileInsideShare.txt" for user "Brian" should be "ownCloud test text file inside share"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
|
||||
Scenario Outline: copying a hidden file
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded the following files with content "hidden file"
|
||||
| path |
|
||||
| .hidden_file101 |
|
||||
| /FOLDER/.hidden_file102 |
|
||||
When user "Alice" copies file ".hidden_file101" to "/FOLDER/.hidden_file101" using the WebDAV API
|
||||
And user "Alice" copies file "/FOLDER/.hidden_file102" to ".hidden_file102" using the WebDAV API
|
||||
And as "Alice" the following files should exist
|
||||
| path |
|
||||
| .hidden_file102 |
|
||||
| /FOLDER/.hidden_file101 |
|
||||
And the content of the following files for user "Alice" should be "hidden file"
|
||||
| path |
|
||||
| .hidden_file102 |
|
||||
| /FOLDER/.hidden_file101 |
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
@skipOnReva
|
||||
Scenario Outline: copying a file between shares received from different users
|
||||
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 user "Brian" has created folder "/testshare0"
|
||||
And user "Brian" has uploaded file with content "content inside testshare0" to "/testshare0/testshare0.txt"
|
||||
And user "Carol" has created folder "/testshare1"
|
||||
And user "Brian" has created a share with settings
|
||||
| path | testshare0 |
|
||||
| shareType | user |
|
||||
| permissions | change |
|
||||
| shareWith | Alice |
|
||||
And user "Carol" has created a share with settings
|
||||
| path | testshare1 |
|
||||
| shareType | user |
|
||||
| permissions | change |
|
||||
| shareWith | Alice |
|
||||
When user "Alice" copies file "/Shares/testshare0/testshare0.txt" to "/Shares/testshare1/testshare0.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "201"
|
||||
And as "Carol" file "testshare1/testshare0.txt" should exist
|
||||
And as "Alice" file "Shares/testshare1/testshare0.txt" should exist
|
||||
And the content of file "/testshare1/testshare0.txt" for user "Carol" should be "content inside testshare0"
|
||||
And the content of file "/Shares/testshare1/testshare0.txt" for user "Alice" should be "content inside testshare0"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnReva
|
||||
Scenario Outline: copying a folder between shares received from different users
|
||||
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 user "Brian" has created folder "/testshare0"
|
||||
And user "Brian" has created folder "/testshare0/folder_to_copy/"
|
||||
And user "Brian" has uploaded file with content "content inside testshare0" to "/testshare0/folder_to_copy/testshare0.txt"
|
||||
And user "Carol" has created folder "/testshare1"
|
||||
And user "Brian" has created a share with settings
|
||||
| path | testshare0 |
|
||||
| shareType | user |
|
||||
| permissions | change |
|
||||
| shareWith | Alice |
|
||||
And user "Carol" has created a share with settings
|
||||
| path | testshare1 |
|
||||
| shareType | user |
|
||||
| permissions | change |
|
||||
| shareWith | Alice |
|
||||
When user "Alice" copies file "/Shares/testshare0/folder_to_copy/" to "/Shares/testshare1/folder_to_copy/" using the WebDAV API
|
||||
Then the HTTP status code should be "201"
|
||||
And as "Carol" file "testshare1/folder_to_copy/testshare0.txt" should exist
|
||||
And as "Alice" file "/Shares/testshare1/folder_to_copy/testshare0.txt" should exist
|
||||
And the content of file "testshare1/folder_to_copy/testshare0.txt" for user "Carol" should be "content inside testshare0"
|
||||
And the content of file "/Shares/testshare1/folder_to_copy/testshare0.txt" for user "Alice" should be "content inside testshare0"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnReva
|
||||
Scenario Outline: copying a file to a folder that is shared with multiple users
|
||||
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 user "Alice" has created folder "/testshare"
|
||||
And user "Alice" has created a share with settings
|
||||
| path | testshare |
|
||||
| shareType | user |
|
||||
| permissions | change |
|
||||
| shareWith | Brian |
|
||||
And user "Alice" has created a share with settings
|
||||
| path | testshare |
|
||||
| shareType | user |
|
||||
| permissions | change |
|
||||
| shareWith | Carol |
|
||||
When user "Alice" copies file "/textfile0.txt" to "/testshare/textfile0.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "201"
|
||||
And as "Brian" file "/Shares/testshare/textfile0.txt" should exist
|
||||
And as "Carol" file "/Shares/testshare/textfile0.txt" should exist
|
||||
And the content of file "/Shares/testshare/textfile0.txt" for user "Brian" should be "ownCloud test text file 0"
|
||||
And the content of file "/Shares/testshare/textfile0.txt" for user "Carol" should be "ownCloud test text file 0"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
|
||||
Scenario Outline: copy a folder into another one
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "/testshare"
|
||||
And user "Alice" has created folder "/an-other-folder"
|
||||
When user "Alice" copies folder "/testshare" to "/an-other-folder/testshare" using the WebDAV API
|
||||
Then the HTTP status code should be "201"
|
||||
And user "Alice" should see the following elements
|
||||
| /testshare/ |
|
||||
And user "Alice" should see the following elements
|
||||
| /an-other-folder/testshare/ |
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
@skipOnRevaMaster @issue-3023
|
||||
Scenario Outline: copying a folder into a sub-folder of itself
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "/PARENT"
|
||||
And user "Alice" has created folder "/PARENT/CHILD"
|
||||
And user "Alice" has uploaded file with content "parent text" to "/PARENT/parent.txt"
|
||||
And user "Alice" has uploaded file with content "child text" to "/PARENT/CHILD/child.txt"
|
||||
When user "Alice" copies folder "/PARENT" to "/PARENT/CHILD/PARENT" using the WebDAV API
|
||||
Then the HTTP status code should be "409"
|
||||
And the content of file "/PARENT/parent.txt" for user "Alice" should be "parent text"
|
||||
And the content of file "/PARENT/CHILD/child.txt" for user "Alice" should be "child text"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: copying a folder with a file into another folder
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "/FOLDER1"
|
||||
And user "Alice" has created folder "/FOLDER2"
|
||||
And user "Alice" has uploaded file with content "Folder 1 text" to "/FOLDER1/textfile.txt"
|
||||
When user "Alice" copies folder "/FOLDER1" to "/FOLDER2/FOLDER1" using the WebDAV API
|
||||
Then the HTTP status code should be "201"
|
||||
And as "Alice" folder "/FOLDER2/FOLDER1" should exist
|
||||
And as "Alice" file "/FOLDER2/FOLDER1/textfile.txt" should exist
|
||||
And as "Alice" folder "/FOLDER1" should exist
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
@@ -0,0 +1,179 @@
|
||||
Feature: create files and folder
|
||||
As a user
|
||||
I want to be able to create files and folders
|
||||
So that I can organise the files in my file system
|
||||
|
||||
Background:
|
||||
Given using OCS API version "1"
|
||||
And user "Alice" has been created with default attributes and without skeleton files
|
||||
|
||||
|
||||
Scenario Outline: create a folder
|
||||
Given using <dav-path-version> DAV path
|
||||
When user "Alice" creates folder "<folder_name>" using the WebDAV API
|
||||
Then the HTTP status code should be "201"
|
||||
And as "Alice" folder "<folder_name>" should exist
|
||||
Examples:
|
||||
| dav-path-version | folder_name |
|
||||
| old | /upload |
|
||||
| old | /strängé folder |
|
||||
| old | /C++ folder.cpp |
|
||||
| old | /नेपाली |
|
||||
| old | /folder #2 |
|
||||
| old | /folder ?2 |
|
||||
| old | /😀 🤖 |
|
||||
| old | /new&folder |
|
||||
| new | /upload |
|
||||
| new | /strängé folder |
|
||||
| new | /C++ folder.cpp |
|
||||
| new | /नेपाली |
|
||||
| new | /folder #2 |
|
||||
| new | /folder ?2 |
|
||||
| new | /😀 🤖 |
|
||||
| new | /new&folder |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version | folder_name |
|
||||
| spaces | /upload |
|
||||
| spaces | /strängé folder |
|
||||
| spaces | /C++ folder.cpp |
|
||||
| spaces | /नेपाली |
|
||||
| spaces | /folder #2 |
|
||||
| spaces | /folder ?2 |
|
||||
| spaces | /😀 🤖 |
|
||||
| spaces | /new&folder |
|
||||
|
||||
@smokeTest
|
||||
Scenario Outline: get resourcetype property of a folder
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "/test_folder"
|
||||
When user "Alice" gets the following properties of folder "/test_folder" using the WebDAV API
|
||||
| propertyName |
|
||||
| d:resourcetype |
|
||||
Then the HTTP status code should be "207"
|
||||
And the single response should contain a property "d:resourcetype" with a child property "d:collection"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: get resourcetype property of a folder with special chars
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "/test_folder:5"
|
||||
When user "Alice" gets the following properties of folder "/test_folder:5" using the WebDAV API
|
||||
| propertyName |
|
||||
| d:resourcetype |
|
||||
Then the HTTP status code should be "207"
|
||||
And the single response should contain a property "d:resourcetype" with a child property "d:collection"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
@issue-1345
|
||||
Scenario Outline: creating a directory which contains .part should not be possible
|
||||
Given using <dav-path-version> DAV path
|
||||
When user "Alice" creates folder "/folder.with.ext.part" using the WebDAV API
|
||||
Then the HTTP status code should be "400"
|
||||
And the DAV exception should be "OCA\DAV\Connector\Sabre\Exception\InvalidPath"
|
||||
And the DAV message should be "Can`t upload files with extension .part because these extensions are reserved for internal use."
|
||||
And the DAV reason should be "Can`t upload files with extension .part because these extensions are reserved for internal use."
|
||||
And user "Alice" should not see the following elements
|
||||
| /folder.with.ext.part |
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
@issue-1283
|
||||
Scenario Outline: try to create a folder that already exists
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "my-data"
|
||||
When user "Alice" creates folder "my-data" using the WebDAV API
|
||||
Then the HTTP status code should be "405"
|
||||
And as "Alice" folder "my-data" should exist
|
||||
And the DAV exception should be "Sabre\DAV\Exception\MethodNotAllowed"
|
||||
And the DAV message should be "The resource you tried to create already exists"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
@issue-1283
|
||||
Scenario Outline: try to create a folder with a name of an existing file
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file with content "uploaded data" to "/my-data.txt"
|
||||
When user "Alice" creates folder "my-data.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "405"
|
||||
And the DAV exception should be "Sabre\DAV\Exception\MethodNotAllowed"
|
||||
And the DAV message should be "The resource you tried to create already exists"
|
||||
And the content of file "/my-data.txt" for user "Alice" should be "uploaded data"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: create a file
|
||||
Given using <dav-path-version> DAV path
|
||||
When user "Alice" uploads file with content "some text" to "<file_name>" using the WebDAV API
|
||||
Then the HTTP status code should be "201"
|
||||
And as "Alice" file "<file_name>" should exist
|
||||
And the content of file "<file_name>" for user "Alice" should be "some text"
|
||||
Examples:
|
||||
| dav-path-version | file_name |
|
||||
| old | /upload.txt |
|
||||
| old | /strängéfile.txt |
|
||||
| old | /C++ file.cpp |
|
||||
| old | /नेपाली |
|
||||
| old | /file #2.txt |
|
||||
| old | /file ?2.pdf |
|
||||
| old | /😀 🤖.txt |
|
||||
| old | /new&file.txt |
|
||||
| new | /upload.txt |
|
||||
| new | /strängéfile.txt |
|
||||
| new | /C++ file.cpp |
|
||||
| new | /नेपाली |
|
||||
| new | /file #2.txt |
|
||||
| new | /file ?2.pdf |
|
||||
| new | /😀 🤖.txt |
|
||||
| new | /new&file.txt |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version | file_name |
|
||||
| spaces | /upload.txt |
|
||||
| spaces | /strängéfile.txt |
|
||||
| spaces | /C++ file.cpp |
|
||||
| spaces | /नेपाली |
|
||||
| spaces | /file #2.txt |
|
||||
| spaces | /file ?2.pdf |
|
||||
| spaces | /😀 🤖.txt |
|
||||
| spaces | /new&file.txt |
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
@skipOnReva
|
||||
Feature: create file or folder named similar to Shares folder
|
||||
As a user
|
||||
I want to be able to create files and folders when the Shares folder exists
|
||||
So that I can organise the files in my file system
|
||||
|
||||
Background:
|
||||
Given these users have been created with default attributes and without skeleton files:
|
||||
| username |
|
||||
| Alice |
|
||||
| Brian |
|
||||
And user "Alice" has created folder "/FOLDER"
|
||||
And user "Alice" has shared folder "/FOLDER" with user "Brian" with permissions "read,update"
|
||||
|
||||
|
||||
Scenario Outline: create a folder with a name similar to Shares
|
||||
Given using <dav-path-version> DAV path
|
||||
When user "Brian" creates folder "<folder_name>" using the WebDAV API
|
||||
Then the HTTP status code should be "201"
|
||||
And as "Brian" folder "<folder_name>" should exist
|
||||
And as "Brian" folder "/Shares" should exist
|
||||
Examples:
|
||||
| dav-path-version | folder_name |
|
||||
| old | /Share |
|
||||
| old | /shares |
|
||||
| old | /Shares1 |
|
||||
| new | /Share |
|
||||
| new | /shares |
|
||||
| new | /Shares1 |
|
||||
|
||||
|
||||
Scenario Outline: create a file with a name similar to Shares
|
||||
Given using <dav-path-version> DAV path
|
||||
When user "Brian" uploads file with content "some text" to "<file_name>" using the WebDAV API
|
||||
Then the HTTP status code should be "201"
|
||||
And the content of file "<file_name>" for user "Brian" should be "some text"
|
||||
And as "Brian" folder "/Shares" should exist
|
||||
Examples:
|
||||
| dav-path-version | file_name |
|
||||
| old | /Share |
|
||||
| old | /shares |
|
||||
| old | /Shares1 |
|
||||
| new | /Share |
|
||||
| new | /shares |
|
||||
| new | /Shares1 |
|
||||
|
||||
|
||||
Scenario Outline: try to create a folder named Shares
|
||||
Given using <dav-path-version> DAV path
|
||||
When user "Brian" creates folder "/Shares" using the WebDAV API
|
||||
Then the HTTP status code should be "405"
|
||||
And as "Brian" folder "/Shares" should exist
|
||||
And as "Brian" folder "/Shares/FOLDER" should exist
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
|
||||
Scenario Outline: try to create a file named Shares
|
||||
Given using <dav-path-version> DAV path
|
||||
When user "Brian" uploads file with content "some text" to "/Shares" using the WebDAV API
|
||||
Then the HTTP status code should be "409"
|
||||
And as "Brian" folder "/Shares" should exist
|
||||
And as "Brian" folder "/Shares/FOLDER" should exist
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
@@ -0,0 +1,655 @@
|
||||
Feature: get file properties
|
||||
As a user
|
||||
I want to be able to get meta-information about files
|
||||
So that I can know file meta-information (detailed requirement TBD)
|
||||
|
||||
Background:
|
||||
Given using OCS API version "1"
|
||||
And user "Alice" has been created with default attributes and without skeleton files
|
||||
|
||||
@smokeTest
|
||||
Scenario Outline: user sends a PROPFIND request on various file names
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file with content "uploaded content" to "<file_name>"
|
||||
When user "Alice" gets the properties of file "<file_name>" using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the properties response should contain an etag
|
||||
Examples:
|
||||
| dav-path-version | file_name |
|
||||
| old | /upload.txt |
|
||||
| old | /strängé file.txt |
|
||||
| old | /नेपाली.txt |
|
||||
| old | s,a,m,p,l,e.txt |
|
||||
| new | /upload.txt |
|
||||
| new | /strängé file.txt |
|
||||
| new | /नेपाली.txt |
|
||||
| new | s,a,m,p,l,e.txt |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version | file_name |
|
||||
| spaces | /upload.txt |
|
||||
| spaces | /strängé file.txt |
|
||||
| spaces | /नेपाली.txt |
|
||||
| spaces | s,a,m,p,l,e.txt |
|
||||
|
||||
@issue-1296
|
||||
Scenario Outline: user sends a PROPFIND request on various file with '?, #, &, +' in its name
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file with content "uploaded content" to "<file_name>"
|
||||
When user "Alice" gets the properties of file "<file_name>" using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the properties response should contain an etag
|
||||
And there should be an entry with href containing "<expected_href>" in the response to user "Alice"
|
||||
Examples:
|
||||
| dav-path-version | file_name | expected_href |
|
||||
| old | /C++ file.cpp | remote.php/webdav/C++ file.cpp |
|
||||
| old | /file #2.txt | remote.php/webdav/file #2.txt |
|
||||
| old | /file ?2.txt | remote.php/webdav/file ?2.txt |
|
||||
| old | /file &2.txt | remote.php/webdav/file &2.txt |
|
||||
| new | /C++ file.cpp | remote.php/dav/files/%username%/C++ file.cpp |
|
||||
| new | /file #2.txt | remote.php/dav/files/%username%/file #2.txt |
|
||||
| new | /file ?2.txt | remote.php/dav/files/%username%/file ?2.txt |
|
||||
| new | /file &2.txt | remote.php/dav/files/%username%/file &2.txt |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version | file_name | expected_href |
|
||||
| spaces | /C++ file.cpp | dav/spaces/%spaceid%/C++ file.cpp |
|
||||
| spaces | /file #2.txt | dav/spaces/%spaceid%/file #2.txt |
|
||||
| spaces | /file ?2.txt | dav/spaces/%spaceid%/file ?2.txt |
|
||||
| spaces | /file &2.txt | dav/spaces/%spaceid%/file &2.txt |
|
||||
|
||||
@issue-1296
|
||||
Scenario Outline: user sends a PROPFIND request on various folder names
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "<folder_name>"
|
||||
And user "Alice" has uploaded file with content "uploaded content" to "<folder_name>/file1.txt"
|
||||
And user "Alice" has uploaded file with content "uploaded content" to "<folder_name>/file2.txt"
|
||||
When user "Alice" gets the properties of folder "<folder_name>" with depth 1 using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And there should be an entry with href containing "<expected_href>/" in the response to user "Alice"
|
||||
And there should be an entry with href containing "<expected_href>/file1.txt" in the response to user "Alice"
|
||||
And there should be an entry with href containing "<expected_href>/file2.txt" in the response to user "Alice"
|
||||
Examples:
|
||||
| dav-path-version | folder_name | expected_href |
|
||||
| old | /upload | remote.php/webdav/upload |
|
||||
| old | /strängé folder | remote.php/webdav/strängé folder |
|
||||
| old | /C++ folder | remote.php/webdav/C++ folder |
|
||||
| old | /नेपाली | remote.php/webdav/नेपाली |
|
||||
| old | /folder #2.txt | remote.php/webdav/folder #2.txt |
|
||||
| old | /folder ?2.txt | remote.php/webdav/folder ?2.txt |
|
||||
| old | /folder &2.txt | remote.php/webdav/folder &2.txt |
|
||||
| new | /upload | remote.php/dav/files/%username%/upload |
|
||||
| new | /strängé folder | remote.php/dav/files/%username%/strängé folder |
|
||||
| new | /C++ folder | remote.php/dav/files/%username%/C++ folder |
|
||||
| new | /नेपाली | remote.php/dav/files/%username%/नेपाली |
|
||||
| new | /folder #2.txt | remote.php/dav/files/%username%/folder #2.txt |
|
||||
| new | /folder ?2.txt | remote.php/dav/files/%username%/folder ?2.txt |
|
||||
| new | /folder &2.txt | remote.php/dav/files/%username%/folder &2.txt |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version | folder_name | expected_href |
|
||||
| spaces | /upload | dav/spaces/%spaceid%/upload |
|
||||
| spaces | /strängé folder | dav/spaces/%spaceid%/strängé folder |
|
||||
| spaces | /C++ folder | dav/spaces/%spaceid%/C++ folder |
|
||||
| spaces | /नेपाली | dav/spaces/%spaceid%/नेपाली |
|
||||
| spaces | /folder #2.txt | dav/spaces/%spaceid%/folder #2.txt |
|
||||
| spaces | /folder ?2.txt | dav/spaces/%spaceid%/folder ?2.txt |
|
||||
| spaces | /folder &2.txt | dav/spaces/%spaceid%/folder &2.txt |
|
||||
|
||||
|
||||
Scenario Outline: user sends a PROPFIND request on various files inside various folders
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "<folder_name>"
|
||||
And user "Alice" has uploaded file with content "uploaded content" to "<folder_name>/<file_name>"
|
||||
When user "Alice" gets the properties of file "<folder_name>/<file_name>" using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the properties response should contain an etag
|
||||
Examples:
|
||||
| dav-path-version | folder_name | file_name |
|
||||
| old | /upload | abc.txt |
|
||||
| old | /strängé folder | strängé file.txt |
|
||||
| old | /C++ folder | C++ file.cpp |
|
||||
| old | /नेपाली | नेपाली |
|
||||
| old | /folder #2.txt | file #2.txt |
|
||||
| new | /upload | abc.txt |
|
||||
| new | /strängé folder (duplicate #2 &) | strängé file (duplicate #2 &) |
|
||||
| new | /C++ folder | C++ file.cpp |
|
||||
| new | /नेपाली | नेपाली |
|
||||
| new | /folder #2.txt | file #2.txt |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version | folder_name | file_name |
|
||||
| spaces | /upload | abc.txt |
|
||||
| spaces | /strängé folder | strängé file.txt |
|
||||
| spaces | /C++ folder | C++ file.cpp |
|
||||
| spaces | /नेपाली | नेपाली |
|
||||
| spaces | /folder #2.txt | file #2.txt |
|
||||
|
||||
@issue-1259
|
||||
#after fixing all issues delete this Scenario and merge with the one above
|
||||
Scenario Outline: user sends a PROPFIND request on various files inside various folders with '?' character in its name
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "/folder ?2.txt"
|
||||
And user "Alice" has uploaded file with content "uploaded content" to "/folder ?2.txt/file ?2.txt"
|
||||
When user "Alice" gets the properties of file "/folder ?2.txt/file ?2.txt" using the WebDAV API
|
||||
Then the HTTP status code should be "207"
|
||||
And the properties response should contain an etag
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: file that is not shared does not have a share-types property
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "/test"
|
||||
When user "Alice" gets the following properties of folder "/test" using the WebDAV API
|
||||
| propertyName |
|
||||
| oc:share-types |
|
||||
Then the HTTP status code should be "207"
|
||||
And the response should contain an empty property "oc:share-types"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: file that is shared to a user has a share-types property
|
||||
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 "/test"
|
||||
And user "Alice" has created a share with settings
|
||||
| path | test |
|
||||
| shareType | user |
|
||||
| permissions | all |
|
||||
| shareWith | Brian |
|
||||
When user "Alice" gets the following properties of folder "/test" using the WebDAV API
|
||||
| propertyName |
|
||||
| oc:share-types |
|
||||
Then the HTTP status code should be "207"
|
||||
And the response should contain a share-types property with
|
||||
| 0 |
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: file that is shared to a group has a share-types property
|
||||
Given using <dav-path-version> DAV path
|
||||
And group "grp1" has been created
|
||||
And user "Alice" has created folder "/test"
|
||||
And user "Alice" has created a share with settings
|
||||
| path | test |
|
||||
| shareType | group |
|
||||
| permissions | all |
|
||||
| shareWith | grp1 |
|
||||
When user "Alice" gets the following properties of folder "/test" using the WebDAV API
|
||||
| propertyName |
|
||||
| oc:share-types |
|
||||
Then the HTTP status code should be "207"
|
||||
And the response should contain a share-types property with
|
||||
| 1 |
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: file that is shared by link has a share-types property
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "/test"
|
||||
And user "Alice" has created a public link share with settings
|
||||
| path | test |
|
||||
| permissions | all |
|
||||
| password | %public% |
|
||||
When user "Alice" gets the following properties of folder "/test" using the WebDAV API
|
||||
| propertyName |
|
||||
| oc:share-types |
|
||||
Then the HTTP status code should be "207"
|
||||
And the response should contain a share-types property with
|
||||
| 3 |
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: file that is shared by user,group and link has a share-types property
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And group "grp1" has been created
|
||||
And user "Alice" has created folder "/test"
|
||||
And user "Alice" has created a share with settings
|
||||
| path | test |
|
||||
| shareType | user |
|
||||
| permissions | all |
|
||||
| shareWith | Brian |
|
||||
And user "Alice" has created a share with settings
|
||||
| path | test |
|
||||
| shareType | group |
|
||||
| permissions | all |
|
||||
| shareWith | grp1 |
|
||||
And user "Alice" has created a public link share with settings
|
||||
| path | test |
|
||||
| permissions | all |
|
||||
| password | %public% |
|
||||
When user "Alice" gets the following properties of folder "/test" using the WebDAV API
|
||||
| propertyName |
|
||||
| oc:share-types |
|
||||
Then the HTTP status code should be "207"
|
||||
And the response should contain a share-types property with
|
||||
| 0 |
|
||||
| 1 |
|
||||
| 3 |
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
@smokeTest @issue-2809
|
||||
Scenario Outline: retrieving a private link
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "/somefile.txt"
|
||||
When user "Alice" gets the following properties of file "/somefile.txt" using the WebDAV API
|
||||
| propertyName |
|
||||
| oc:privatelink |
|
||||
Then the HTTP status code should be "207"
|
||||
And the single response should contain a property "oc:privatelink" with value like "%(/(index.php/)?f/[0-9]*)%"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: user sends a PROPFIND request on a nonexistent URL
|
||||
When user "Alice" requests "<url>" with "PROPFIND" using basic auth
|
||||
Then the HTTP status code should be "404"
|
||||
And the value of the item "/d:error/s:message" in the response about user "Alice" should be "<message1>" or "<message2>"
|
||||
And the value of the item "/d:error/s:exception" in the response about user "Alice" should be "Sabre\DAV\Exception\NotFound"
|
||||
|
||||
Examples:
|
||||
| url | message1 | message2 |
|
||||
| /remote.php/dav/files/does-not-exist | Resource not found | Resource not found |
|
||||
| /remote.php/dav/does-not-exist | File not found in root | |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| url | message1 | message2 |
|
||||
| /remote.php/dav/spaces/%spaceid%/does-not-exist | Resource not found | |
|
||||
| /remote.php/dav/spaces/%spaceid%/file1.txt | Resource not found | |
|
||||
|
||||
@issue-1297
|
||||
Scenario Outline: add, receive multiple custom meta properties to a file
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "/TestFolder"
|
||||
And user "Alice" has uploaded file with content "test data one" to "/TestFolder/test1.txt"
|
||||
And user "Alice" has set the following properties of file "/TestFolder/test1.txt" using the WebDav API
|
||||
| propertyName | propertyValue |
|
||||
| testprop1 | AAAAA |
|
||||
| testprop2 | BBBBB |
|
||||
When user "Alice" gets the following properties of file "/TestFolder/test1.txt" using the WebDAV API
|
||||
| propertyName |
|
||||
| oc:testprop1 |
|
||||
| oc:testprop2 |
|
||||
Then the HTTP status code should be "207"
|
||||
And as user "Alice" the last response should have the following properties
|
||||
| resource | propertyName | propertyValue |
|
||||
| /TestFolder/test1.txt | testprop1 | AAAAA |
|
||||
| /TestFolder/test1.txt | testprop2 | BBBBB |
|
||||
| /TestFolder/test1.txt | status | HTTP/1.1 200 OK |
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| new |
|
||||
| old |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
@issue-1297
|
||||
Scenario Outline: add multiple properties to files inside a folder and do a propfind of the parent folder
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "/TestFolder"
|
||||
And user "Alice" has uploaded file with content "test data one" to "/TestFolder/test1.txt"
|
||||
And user "Alice" has uploaded file with content "test data two" to "/TestFolder/test2.txt"
|
||||
And user "Alice" has set the following properties of file "/TestFolder/test1.txt" using the WebDav API
|
||||
| propertyName | propertyValue |
|
||||
| testprop1 | AAAAA |
|
||||
| testprop2 | BBBBB |
|
||||
And user "Alice" has set the following properties of file "/TestFolder/test2.txt" using the WebDav API
|
||||
| propertyName | propertyValue |
|
||||
| testprop1 | CCCCC |
|
||||
| testprop2 | DDDDD |
|
||||
When user "Alice" gets the following properties of folder "/TestFolder" using the WebDAV API
|
||||
| propertyName |
|
||||
| oc:testprop1 |
|
||||
| oc:testprop2 |
|
||||
Then the HTTP status code should be "207"
|
||||
And as user "Alice" the last response should have the following properties
|
||||
| resource | propertyName | propertyValue |
|
||||
| /TestFolder/test1.txt | testprop1 | AAAAA |
|
||||
| /TestFolder/test1.txt | testprop2 | BBBBB |
|
||||
| /TestFolder/test2.txt | testprop1 | CCCCC |
|
||||
| /TestFolder/test2.txt | testprop2 | DDDDD |
|
||||
| /TestFolder/ | status | HTTP/1.1 404 Not Found |
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| new |
|
||||
| old |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: user tries to get the last modified date of a folder using webdav api
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "/test"
|
||||
When user "Alice" gets the following properties of folder "/test" using the WebDAV API
|
||||
| propertyName |
|
||||
| d:getlastmodified |
|
||||
Then the HTTP status code should be "207"
|
||||
And the single response should contain a property "d:getlastmodified" with value like "/^[MTWFS][uedhfriatno]{2},\s(\d){2}\s[JFMAJSOND][anebrpyulgctov]{2}\s\d{4}\s\d{2}:\d{2}:\d{2} GMT$/"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: user tries to get the content type of a folder using webdav api
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "/test"
|
||||
When user "Alice" gets the following properties of folder "/test" using the WebDAV API
|
||||
| propertyName |
|
||||
| d:getcontenttype |
|
||||
Then the HTTP status code should be "207"
|
||||
And the single response should contain a property "d:getcontenttype" with value ""
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: user tries to get the content type of a file using webdav api
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file with content "uploaded content" to "file.txt"
|
||||
When user "Alice" gets the following properties of folder "file.txt" using the WebDAV API
|
||||
| propertyName |
|
||||
| d:getcontenttype |
|
||||
Then the HTTP status code should be "207"
|
||||
And the single response should contain a property "d:getcontenttype" with value "text/plain.*"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: user tries to get the etag of a file using webdav api
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file with content "uploaded content" to "file.txt"
|
||||
When user "Alice" gets the following properties of folder "file.txt" using the WebDAV API
|
||||
| propertyName |
|
||||
| d:getetag |
|
||||
Then the HTTP status code should be "207"
|
||||
And the single response should contain a property "d:getetag" with value like '%\"[a-z0-9:]{1,32}\"%'
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: user tries to get the resource type of a file using webdav api
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file with content "uploaded content" to "file.txt"
|
||||
When user "Alice" gets the following properties of folder "file.txt" using the WebDAV API
|
||||
| propertyName |
|
||||
| d:resourcetype |
|
||||
Then the HTTP status code should be "207"
|
||||
And the single response should contain a property "d:resourcetype" with value ""
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: user tries to get the size of a file using webdav api
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file with content "uploaded content" to "file.txt"
|
||||
When user "Alice" gets the following properties of folder "file.txt" using the WebDAV API
|
||||
| propertyName |
|
||||
| oc:size |
|
||||
Then the HTTP status code should be "207"
|
||||
And the single response should contain a property "oc:size" with value "16"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: user tries to get the size of a folder using webdav api
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "/test"
|
||||
When user "Alice" gets the following properties of folder "/test" using the WebDAV API
|
||||
| propertyName |
|
||||
| oc:size |
|
||||
Then the HTTP status code should be "207"
|
||||
And the single response should contain a property "oc:size" with value "0"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: user tries to get the file id of a file using webdav api
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file with content "uploaded content" to "file.txt"
|
||||
When user "Alice" gets the following properties of folder "file.txt" using the WebDAV API
|
||||
| propertyName |
|
||||
| oc:fileid |
|
||||
Then the HTTP status code should be "207"
|
||||
And the single response should contain a property "oc:fileid" with value like '/[a-zA-Z0-9]+/'
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: user tries to get the file id of a folder using webdav api
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "/test"
|
||||
When user "Alice" gets the following properties of folder "/test" using the WebDAV API
|
||||
| propertyName |
|
||||
| oc:fileid |
|
||||
Then the HTTP status code should be "207"
|
||||
And the single response should contain a property "oc:fileid" with value like '/[a-zA-Z0-9]+/'
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: user tries to get the owner display name of a file using webdav api
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file with content "uploaded content" to "file.txt"
|
||||
When user "Alice" gets the following properties of file "file.txt" using the WebDAV API
|
||||
| propertyName |
|
||||
| oc:owner-display-name |
|
||||
Then the HTTP status code should be "207"
|
||||
And the single response about the file owned by "Alice" should contain a property "oc:owner-display-name" with value "%displayname%"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: user tries to get the owner display name of a folder using webdav api
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "/test"
|
||||
When user "Alice" gets the following properties of folder "/test" using the WebDAV API
|
||||
| propertyName |
|
||||
| oc:owner-display-name |
|
||||
Then the HTTP status code should be "207"
|
||||
And the single response about the file owned by "Alice" should contain a property "oc:owner-display-name" with value "%displayname%"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: user tries to get the permissions on a file using webdav api
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file with content "uploaded content" to "file.txt"
|
||||
When user "Alice" gets the following properties of folder "file.txt" using the WebDAV API
|
||||
| propertyName |
|
||||
| oc:permissions |
|
||||
Then the HTTP status code should be "207"
|
||||
And the single response should contain a property "oc:permissions" with value like '/RM{0,1}DNVW/'
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: user tries to get the permissions on a folder using webdav api
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "/test"
|
||||
When user "Alice" gets the following properties of folder "/test" using the WebDAV API
|
||||
| propertyName |
|
||||
| oc:permissions |
|
||||
Then the HTTP status code should be "207"
|
||||
And the single response should contain a property "oc:permissions" with value like '/RM{0,1}DNVCK/'
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: user tries to get the size of a folder with files using webdav api
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has created folder "/test"
|
||||
And user "Alice" has uploaded file with content "a" to "/test/file.txt"
|
||||
And user "Alice" has uploaded file with content "b" to "/test/file1.txt"
|
||||
And user "Alice" has uploaded file with content "c" to "/test/file2.txt"
|
||||
And user "Alice" has uploaded file with content "d" to "/test/file3.txt"
|
||||
And user "Alice" has uploaded file with content "e" to "/test/file4.txt"
|
||||
When user "Alice" gets the following properties of folder "/test" using the WebDAV API
|
||||
| propertyName |
|
||||
| oc:size |
|
||||
Then the HTTP status code should be "207"
|
||||
And the single response should contain a property "oc:size" with value "5"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
@@ -0,0 +1,90 @@
|
||||
@issue-1313 @skipOnGraph
|
||||
Feature: get quota
|
||||
As a user
|
||||
I want to be able to find out my available storage quota
|
||||
So that I can manage the use of my allocated storage
|
||||
|
||||
Background:
|
||||
Given using OCS API version "1"
|
||||
And user "Alice" has been created with default attributes and without skeleton files
|
||||
|
||||
|
||||
Scenario Outline: retrieving folder quota when no quota is set
|
||||
Given using <dav-path-version> DAV path
|
||||
When the administrator gives unlimited quota to user "Alice" using the provisioning API
|
||||
Then the HTTP status code should be "200"
|
||||
And as user "Alice" folder "/" should contain a property "d:quota-available-bytes" with value "-3"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
@smokeTest
|
||||
Scenario Outline: retrieving folder quota when quota is set
|
||||
Given using <dav-path-version> DAV path
|
||||
When the administrator sets the quota of user "Alice" to "10 MB" using the provisioning API
|
||||
Then the HTTP status code should be "200"
|
||||
And as user "Alice" folder "/" should contain a property "d:quota-available-bytes" with value "10485406"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: retrieving folder quota of shared folder with quota when no quota is set for recipient
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Alice" has been given unlimited quota
|
||||
And the quota of user "Brian" has been set to "10 MB"
|
||||
And user "Brian" has created folder "/testquota"
|
||||
And user "Brian" has created a share with settings
|
||||
| path | testquota |
|
||||
| shareType | user |
|
||||
| permissions | all |
|
||||
| shareWith | Alice |
|
||||
When user "Alice" gets the following properties of folder "/testquota" using the WebDAV API
|
||||
| propertyName |
|
||||
| d:quota-available-bytes |
|
||||
Then the HTTP status code should be "200"
|
||||
And the single response should contain a property "d:quota-available-bytes" with value "10485406"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
|
||||
Scenario Outline: retrieving folder quota when quota is set and a file was uploaded
|
||||
Given using <dav-path-version> DAV path
|
||||
And the quota of user "Alice" has been set to "1 KB"
|
||||
And user "Alice" has uploaded file "/prueba.txt" of size 93 bytes
|
||||
When user "Alice" gets the following properties of folder "/" using the WebDAV API
|
||||
| propertyName |
|
||||
| d:quota-available-bytes |
|
||||
Then the HTTP status code should be "201"
|
||||
And the single response should contain a property "d:quota-available-bytes" with value "577"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
|
||||
@skipOnReva
|
||||
Scenario Outline: retrieving folder quota when quota is set and a file was received
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Brian" has been created with default attributes and without skeleton files
|
||||
And the quota of user "Brian" has been set to "1 KB"
|
||||
And user "Alice" has uploaded file "/Alice.txt" of size 93 bytes
|
||||
And user "Alice" has shared file "Alice.txt" with user "Brian"
|
||||
When user "Brian" gets the following properties of folder "/" using the WebDAV API
|
||||
| propertyName |
|
||||
| d:quota-available-bytes |
|
||||
Then the HTTP status code should be "200"
|
||||
And the single response should contain a property "d:quota-available-bytes" with value "670"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
| spaces |
|
||||
@@ -0,0 +1,104 @@
|
||||
Feature: set file properties
|
||||
As a user
|
||||
I want to be able to set meta-information about files
|
||||
So that I can record file meta-information (detailed requirement TBD)
|
||||
|
||||
Background:
|
||||
Given using OCS API version "1"
|
||||
And user "Alice" has been created with default attributes and without skeleton files
|
||||
|
||||
@smokeTest @issue-1263
|
||||
Scenario Outline: setting custom DAV property and reading it
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "/testcustomprop.txt"
|
||||
And user "Alice" has set property "very-custom-prop" with namespace "x1='http://whatever.org/ns'" of file "/testcustomprop.txt" to "veryCustomPropValue"
|
||||
When user "Alice" gets a custom property "very-custom-prop" with namespace "x1='http://whatever.org/ns'" of file "/testcustomprop.txt"
|
||||
Then the response should contain a custom "very-custom-prop" property with namespace "x1='http://whatever.org/ns'" and value "veryCustomPropValue"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
@issue-1297
|
||||
Scenario Outline: setting custom complex DAV property and reading it
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "/testcustomprop.txt"
|
||||
And user "Alice" has set property "very-custom-prop" with namespace "x1='http://whatever.org/ns'" of file "/testcustomprop.txt" to "<foo xmlns='http://bar'/>"
|
||||
When user "Alice" gets a custom property "very-custom-prop" with namespace "x1='http://whatever.org/ns'" of file "/testcustomprop.txt"
|
||||
Then the response should contain a custom "very-custom-prop" property with namespace "x1='http://whatever.org/ns'" and complex value "<x2:foo xmlns:x2=\"http://bar\"/>"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
@issue-1263
|
||||
Scenario Outline: setting custom DAV property and reading it after the file is renamed
|
||||
Given using <dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "/testcustompropwithmove.txt"
|
||||
And user "Alice" has set property "very-custom-prop" with namespace "x1='http://whatever.org/ns'" of file "/testcustompropwithmove.txt" to "valueForMovetest"
|
||||
And user "Alice" has moved file "/testcustompropwithmove.txt" to "/catchmeifyoucan.txt"
|
||||
When user "Alice" gets a custom property "very-custom-prop" with namespace "x1='http://whatever.org/ns'" of file "/catchmeifyoucan.txt"
|
||||
Then the response should contain a custom "very-custom-prop" property with namespace "x1='http://whatever.org/ns'" and value "valueForMovetest"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
@issue-1297
|
||||
Scenario Outline: setting custom DAV property on a shared file as an owner and reading as a recipient
|
||||
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 "filesForUpload/textfile.txt" to "/testcustompropshared.txt"
|
||||
And user "Alice" has created a share with settings
|
||||
| path | testcustompropshared.txt |
|
||||
| shareType | user |
|
||||
| permissions | all |
|
||||
| shareWith | Brian |
|
||||
And user "Alice" has set property "very-custom-prop" with namespace "x1='http://whatever.org/ns'" of file "/testcustompropshared.txt" to "valueForSharetest"
|
||||
When user "Brian" gets a custom property "very-custom-prop" with namespace "x1='http://whatever.org/ns'" of file "/testcustompropshared.txt"
|
||||
Then the response should contain a custom "very-custom-prop" property with namespace "x1='http://whatever.org/ns'" and value "valueForSharetest"
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| old |
|
||||
| new |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| dav-path-version |
|
||||
| spaces |
|
||||
|
||||
@issue-1263
|
||||
Scenario Outline: setting custom DAV property using one endpoint and reading it with other endpoint
|
||||
Given using <action-dav-path-version> DAV path
|
||||
And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "/testnewold.txt"
|
||||
And user "Alice" has set property "very-custom-prop" with namespace "x1='http://whatever.org/ns'" of file "/testnewold.txt" to "lucky"
|
||||
And using <other-dav-path-version> DAV path
|
||||
When user "Alice" gets a custom property "very-custom-prop" with namespace "x1='http://whatever.org/ns'" of file "/testnewold.txt"
|
||||
Then the response should contain a custom "very-custom-prop" property with namespace "x1='http://whatever.org/ns'" and value "lucky"
|
||||
Examples:
|
||||
| action-dav-path-version | other-dav-path-version |
|
||||
| old | new |
|
||||
| new | old |
|
||||
|
||||
@skipOnRevaMaster
|
||||
Examples:
|
||||
| action-dav-path-version | other-dav-path-version |
|
||||
| spaces | new |
|
||||
| spaces | old |
|
||||
| new | spaces |
|
||||
| old | spaces |
|
||||
Reference in New Issue
Block a user