Feature: COPY file/folder As a user I want to copy a file or folder So that I can duplicate it Background: Given these users have been created with default attributes and without skeleton files: | username | | Alice | | Brian | And user "Alice" has uploaded file with content "some data" to "/textfile0.txt" And user "Alice" has created folder "/PARENT" And user "Alice" has created folder "/FOLDER" And user "Alice" has uploaded file with content "some data" to "/PARENT/parent.txt" @smokeTest Scenario: send COPY requests to webDav endpoints as normal user with wrong password When user "Alice" requests these endpoints with "COPY" using password "invalid" about user "Alice" | endpoint | | /remote.php/webdav/textfile0.txt | | /remote.php/dav/files/%username%/textfile0.txt | | /remote.php/webdav/PARENT | | /remote.php/dav/files/%username%/PARENT | | /remote.php/dav/files/%username%/PARENT/parent.txt | | /remote.php/dav/spaces/%spaceid%/textfile0.txt | | /remote.php/dav/spaces/%spaceid%/PARENT | | /remote.php/dav/spaces/%spaceid%/PARENT/parent.txt | Then the HTTP status code of responses on all endpoints should be "401" @smokeTest Scenario: send COPY requests to webDav endpoints as normal user with no password When user "Alice" requests these endpoints with "COPY" using password "" about user "Alice" | endpoint | | /remote.php/webdav/textfile0.txt | | /remote.php/dav/files/%username%/textfile0.txt | | /remote.php/webdav/PARENT | | /remote.php/dav/files/%username%/PARENT | | /remote.php/dav/files/%username%/PARENT/parent.txt | | /remote.php/dav/spaces/%spaceid%/textfile0.txt | | /remote.php/dav/spaces/%spaceid%/PARENT | | /remote.php/dav/spaces/%spaceid%/PARENT/parent.txt | Then the HTTP status code of responses on all endpoints should be "401" Scenario: send COPY requests to another user's webDav endpoints as normal user When user "Brian" requests these endpoints with "COPY" about user "Alice" | endpoint | | /remote.php/dav/files/%username%/textfile0.txt | | /remote.php/dav/files/%username%/PARENT | | /remote.php/dav/files/%username%/PARENT/parent.txt | Then the HTTP status code of responses on all endpoints should be "403" @skipOnRevaMaster Scenario: send COPY requests to another user's webDav endpoints as normal user using the spaces WebDAV API When user "Brian" requests these endpoints with "COPY" about user "Alice" | endpoint | | /remote.php/dav/spaces/%spaceid%/textfile0.txt | | /remote.php/dav/spaces/%spaceid%/PARENT | | /remote.php/dav/spaces/%spaceid%/PARENT/parent.txt | Then the HTTP status code of responses on all endpoints should be "403" Scenario: send COPY requests to webDav endpoints using invalid username but correct password When user "usero" requests these endpoints with "COPY" using the password of user "Alice" | endpoint | | /remote.php/webdav/textfile0.txt | | /remote.php/dav/files/%username%/textfile0.txt | | /remote.php/webdav/PARENT | | /remote.php/dav/files/%username%/PARENT | | /remote.php/dav/files/%username%/PARENT/parent.txt | | /remote.php/dav/spaces/%spaceid%/textfile0.txt | | /remote.php/dav/spaces/%spaceid%/PARENT | | /remote.php/dav/spaces/%spaceid%/PARENT/parent.txt | Then the HTTP status code of responses on all endpoints should be "401" Scenario: send COPY requests to webDav endpoints using valid password and username of different user When user "Brian" requests these endpoints with "COPY" using the password of user "Alice" | endpoint | | /remote.php/webdav/textfile0.txt | | /remote.php/dav/files/%username%/textfile0.txt | | /remote.php/webdav/PARENT | | /remote.php/dav/files/%username%/PARENT | | /remote.php/dav/files/%username%/PARENT/parent.txt | | /remote.php/dav/spaces/%spaceid%/textfile0.txt | | /remote.php/dav/spaces/%spaceid%/PARENT | | /remote.php/dav/spaces/%spaceid%/PARENT/parent.txt | Then the HTTP status code of responses on all endpoints should be "401" @smokeTest Scenario: send COPY requests to webDav endpoints without any authentication When a user requests these endpoints with "COPY" with no authentication about user "Alice" | endpoint | | /remote.php/webdav/textfile0.txt | | /remote.php/dav/files/%username%/textfile0.txt | | /remote.php/webdav/PARENT | | /remote.php/dav/files/%username%/PARENT | | /remote.php/dav/files/%username%/PARENT/parent.txt | | /remote.php/dav/spaces/%spaceid%/textfile0.txt | | /remote.php/dav/spaces/%spaceid%/PARENT | | /remote.php/dav/spaces/%spaceid%/PARENT/parent.txt | Then the HTTP status code of responses on all endpoints should be "401" Scenario: send COPY requests to webDav endpoints with body as normal user When user "Alice" requests these endpoints with "COPY" including body "doesnotmatter" about user "Alice" | endpoint | | /remote.php/webdav/textfile0.txt | | /remote.php/dav/files/%username%/textfile0.txt | | /remote.php/webdav/PARENT | | /remote.php/dav/files/%username%/PARENT | | /remote.php/webdav/PARENT/parent.txt | | /remote.php/dav/files/%username%/PARENT/parent.txt | Then the HTTP status code of responses on all endpoints should be "415" @skipOnRevaMaster Scenario: send COPY requests to webDav endpoints with body as normal user using the spaces WebDAV API When user "Alice" requests these endpoints with "COPY" including body "doesnotmatter" about user "Alice" | endpoint | | /remote.php/dav/spaces/%spaceid%/textfile0.txt | | /remote.php/dav/spaces/%spaceid%/PARENT | | /remote.php/dav/spaces/%spaceid%/PARENT/parent.txt | Then the HTTP status code of responses on all endpoints should be "415"