mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-01-07 04:40:05 -06:00
* test: add more COPY/MOVE tests * test: add sharing to group edgecase tests * test: new line * test: fix typo * test: update expected failure
883 lines
44 KiB
Gherkin
883 lines
44 KiB
Gherkin
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 |
|
|
|
|
|
|
Scenario Outline: copy a file into a folder with special characters
|
|
Given using <dav-path-version> DAV path
|
|
And user "Alice" has created folder <folder-name>
|
|
And user "Alice" has uploaded file with content "test file" to <file-name>
|
|
When user "Alice" copies file <file-name> to <destination> using the WebDAV API
|
|
Then the HTTP status code should be "201"
|
|
And as "Alice" file <file-name> should exist
|
|
And as "Alice" file <destination> should exist
|
|
And as "Alice" folder <folder-name> should exist
|
|
Examples:
|
|
| dav-path-version | file-name | folder-name | destination |
|
|
| old | "'single'" | "folder-'single'" | "folder-'single'/'single'" |
|
|
| old | "question?" | "folder-question?" | "folder-question?/question?" |
|
|
| old | "&and#hash" | "folder-&and#hash" | "folder-&and#hash/&and#hash" |
|
|
| new | "'single'" | "folder-'single'" | "folder-'single'/'single'" |
|
|
| new | "question?" | "folder-question?" | "folder-question?/question?" |
|
|
| new | "&and#hash" | "folder-&and#hash" | "folder-&and#hash/&and#hash" |
|
|
|
|
@skipOnRevaMaster
|
|
Examples:
|
|
| dav-path-version | file-name | folder-name | destination |
|
|
| spaces | "'single'" | "folder-'single'" | "folder-'single'/'single'" |
|
|
| spaces | "question?" | "folder-question?" | "folder-question?/question?" |
|
|
| spaces | "&and#hash" | "folder-&and#hash" | "folder-&and#hash/&and#hash" |
|