Files
opencloud/tests/acceptance/features/apiSpaces/deleteSpaces.feature
2022-02-07 18:30:28 +01:00

93 lines
5.2 KiB
Gherkin

@api @skipOnOcV10
Feature: Disabling and deleting space
As a manager of space
I want to be able to disable the space first, then delete it.
I want to make sure that a disabled spaces isn't accessible by shared users.
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 |
| Bob |
And the administrator has given "Alice" the role "Admin" using the settings api
Scenario: An owner can disable a Space via the Graph API
Given user "Alice" has created a space "disable a space" of type "project" with quota "10"
And user "Alice" has shared a space "disable a space" to user "Brian" with role "editor"
When user "Alice" disables a space "disable a space"
Then the HTTP status code should be "204"
When user "Alice" lists all available spaces via the GraphApi
Then the json responded should contain a space "disable a space" with these key and value pairs:
| key | value |
| name | disable a space |
| root@@@deleted@@@state | trashed |
Scenario: Participants without a manager role cannot see the disabled space
Given user "Alice" has created a space "cannot see space" of type "project" with quota "10"
And user "Alice" has shared a space "cannot see space" to user "Brian" with role "editor"
And user "Alice" has shared a space "cannot see space" to user "Bob" with role "viewer"
And user "Alice" has disabled a space "cannot see space"
When user "Brian" lists all available spaces via the GraphApi
Then the json responded should not contain a space with name "cannot see space"
When user "Bob" lists all available spaces via the GraphApi
Then the json responded should not contain a space with name "cannot see space"
Scenario: An owner can delete a disabled Space via the webDav API
Given user "Alice" has created a space "delete a space" of type "project" with quota "10"
And user "Alice" has disabled a space "delete a space"
When user "Alice" deletes a space "delete a space"
Then the HTTP status code should be "204"
When user "Alice" lists all available spaces via the GraphApi
Then the json responded should not contain a space with name "delete a space"
Scenario: An owner can disable and delete Space in which files and folders exist via the webDav API
Given user "Alice" has created a space "delete a space with content" of type "project" with quota "10"
And user "Alice" has uploaded a file inside space "delete a space with content" with content "test" to "test.txt"
And user "Alice" has created a folder "MainFolder" in space "delete a space with content"
When user "Alice" disables a space "delete a space with content"
Then the HTTP status code should be "204"
When user "Alice" deletes a space "delete a space with content"
Then the HTTP status code should be "204"
When user "Alice" lists all available spaces via the GraphApi
Then the json responded should not contain a space with name "delete a space with content"
Scenario: An owner cannot delete a space via the webDav API without first disabling it
Given user "Alice" has created a space "delete without disabling" of type "project" with quota "10"
When user "Alice" deletes a space "delete without disabling"
Then the HTTP status code should be "400"
When user "Alice" lists all available spaces via the GraphApi
Then the json responded should contain a space "delete without disabling" with these key and value pairs:
| key | value |
| name | delete without disabling |
Scenario: An user with editor role cannot disable a Space via the Graph API
Given user "Alice" has created a space "editor tries to disable a space" of type "project" with quota "10"
And user "Alice" has shared a space "editor tries to disable a space" to user "Brian" with role "editor"
When user "Brian" disables a space "editor tries to disable a space"
Then the HTTP status code should be "403"
When user "Brian" lists all available spaces via the GraphApi
Then the json responded should contain a space "editor tries to disable a space" with these key and value pairs:
| key | value |
| name | editor tries to disable a space |
Scenario: An user with viewer role cannot disable a Space via the Graph API
Given user "Alice" has created a space "viewer tries to disable a space" of type "project" with quota "10"
And user "Alice" has shared a space "viewer tries to disable a space" to user "Brian" with role "viewer"
When user "Brian" disables a space "viewer tries to disable a space"
Then the HTTP status code should be "403"
When user "Brian" lists all available spaces via the GraphApi
Then the json responded should contain a space "viewer tries to disable a space" with these key and value pairs:
| key | value |
| name | viewer tries to disable a space |