Files
opencloud/tests/acceptance/features/apiSpaces/deleteSpaces.feature
2022-01-30 20:50:41 +01:00

80 lines
4.6 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 user "Alice" has been created with default attributes and without skeleton files
And user "Brian" has been created with default attributes and without skeleton files
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 |
When user "Brian" lists all available spaces via the GraphApi
Then the json responded should not contain a space with name "disable a 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 |