@api @skipOnOcV10 Feature: Remove files, folder As a user I want to be able to remove files, folders So that I can remove unnecessary objects Note - this feature is run in CI with ACCOUNTS_HASH_DIFFICULTY set to the default for production See https://github.com/owncloud/ocis/issues/1542 and https://github.com/owncloud/ocis/pull/839 Background: Given these users have been created with default attributes and without skeleton files: | username | | Alice | | Brian | And using spaces DAV path And the administrator has given "Alice" the role "Space Admin" using the settings api And user "Alice" has created a space "delete objects" with the default quota using the GraphApi And user "Alice" has created a folder "folderForDeleting/sub1/sub2" in space "delete objects" And user "Alice" has uploaded a file inside space "delete objects" with content "some content" to "text.txt" Scenario Outline: user deletes a folder with some subfolders in a space via the webDav API Given user "Alice" has shared a space "delete objects" with settings: | shareWith | Brian | | role | | When user "" removes the folder "folderForDeleting" from space "delete objects" Then the HTTP status code should be "" And for user "" the space "delete objects" contain these entries: | folderForDeleting | And as "" folder "folderForDeleting" exist in the trashbin of the space "delete objects" Examples: | user | role | code | shouldOrNotBeInSpace | shouldOrNotBeInTrash | | Alice | manager | 204 | should not | should | | Brian | manager | 204 | should not | should | | Brian | editor | 204 | should not | should | | Brian | viewer | 403 | should | should not | Scenario Outline: user deletes a subfolder in a space via the webDav API Given user "Alice" has shared a space "delete objects" with settings: | shareWith | Brian | | role | | When user "" removes the folder "folderForDeleting/sub1" from space "delete objects" Then the HTTP status code should be "" And for user "" the space "delete objects" should contain these entries: | folderForDeleting | And for user "" folder "folderForDeleting/" of the space "delete objects" contain these entries: | sub1 | And as "" folder "sub1" exist in the trashbin of the space "delete objects" Examples: | user | role | code | shouldOrNotBeInSpace | shouldOrNotBeInTrash | | Alice | manager | 204 | should not | should | | Brian | manager | 204 | should not | should | | Brian | editor | 204 | should not | should | | Brian | viewer | 403 | should | should not | Scenario Outline: user deletes a file in a space via the webDav API Given user "Alice" has shared a space "delete objects" with settings: | shareWith | Brian | | role | | When user "" removes the file "text.txt" from space "delete objects" Then the HTTP status code should be "" And for user "" the space "delete objects" contain these entries: | text.txt | And as "" file "text.txt" exist in the trashbin of the space "delete objects" And for user "" the JSON response should contain space called "delete objects" and match """ { "type": "object", "required": [ "name", "quota" ], "properties": { "name": { "type": "string", "enum": ["delete objects"] }, "quota": { "type": "object", "required": [ "used" ], "properties": { "used": { "type": "number", "enum": [] } } } } } """ Examples: | user | role | code | shouldOrNotBeInSpace | shouldOrNotBeInTrash | quotaValue | | Alice | manager | 204 | should not | should | 0 | | Brian | manager | 204 | should not | should | 0 | | Brian | editor | 204 | should not | should | 0 | | Brian | viewer | 403 | should | should not | 12 | Scenario: user is unable to delete a space via the webDav API When user "Alice" removes the folder "" from space "delete objects" Then the HTTP status code should be "405" And for user "Alice" the JSON response should contain space called "delete objects" and match """ { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "enum": ["delete objects"] } } } """