Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[tests-only][full-ci] Api test for user trying to set own personal space quota #5953

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -105,9 +105,6 @@ The expected failures in this file are from features in the owncloud/ocis repo.
#### [Sharing to a group with an expiration date does not work #5442](https://github.com/owncloud/ocis/issues/5442)
- [apiSpacesShares/shareSubItemOfSpace.feature:105](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpacesShares/shareSubItemOfSpace.feature#L105)

#### [Space admin should not not be able to change the user quota](https://github.com/owncloud/ocis/issues/5475)
- [apiSpaces/spaceManagement.feature:149](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpaces/spaceManagement.feature#L149)

#### [Same users can be added in a group multiple time](https://github.com/owncloud/ocis/issues/5702)
- [apiGraph/addUserToGroup.feature:222](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiGraph/addUserToGroup.feature#L222)

Expand All @@ -123,6 +120,11 @@ The expected failures in this file are from features in the owncloud/ocis repo.
- [apiSpaces/setQuota.feature:81](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpaces/setQuota.feature#L81)
- [apiSpaces/setQuota.feature:82](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpaces/setQuota.feature#L82)
- [apiSpaces/setQuota.feature:83](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpaces/setQuota.feature#L83)
- [apiSpaces/setQuota.feature:239](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpaces/setQuota.feature#L239)

### [API requests from an unauthorized user should return 403](https://github.com/owncloud/ocis/issues/5938)
- [apiSpaces/setQuota.feature:50](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpaces/setQuota.feature#L50)
- [apiSpaces/setQuota.feature:134](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpaces/setQuota.feature#L134)
- [apiSpaces/setQuota.feature:210](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpaces/setQuota.feature#L210)
Note: always have an empty line at the end of this file.
The bash script that processes this file requires that the last line has a newline on the end.
71 changes: 67 additions & 4 deletions tests/acceptance/features/apiSpaces/setQuota.feature
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,12 @@ Feature: Set quota
| User |
| Guest |


@issue-5938
Scenario Outline: non-admin user tries to set the personal space quota of other users
Given the administrator has given "Alice" the role "<role>" using the settings api
And the administrator has given "Brian" the role "<userRole>" using the settings api
When user "Alice" changes the quota of the "Brian Murphy" space to "100" owned by user "Brian"
Then the HTTP status code should be "401"
Then the HTTP status code should be "403"
And for user "Brian" the JSON response should contain space called "Brian Murphy" and match
"""
{
Expand Down Expand Up @@ -130,7 +130,7 @@ Feature: Set quota
| Admin |
| Space Admin |


@issue-5938
Scenario Outline: normal or guest user tries to set quota of a space
Given the administrator has given "Alice" the role "Space Admin" using the settings api
And the administrator has given "Brian" the role "<userRole>" using the settings api
Expand All @@ -139,7 +139,7 @@ Feature: Set quota
| shareWith | Brian |
| role | <spaceRole> |
When user "Brian" changes the quota of the "Project Jupiter" space to "100"
Then the HTTP status code should be "401"
Then the HTTP status code should be "403"
And for user "Alice" the JSON response should contain space called "Project Jupiter" and match
"""
{
Expand Down Expand Up @@ -176,3 +176,66 @@ Feature: Set quota
| Guest | viewer |
| Guest | editor |
| Guest | manager |


Scenario: admin user can set their own personal space quota
Given the administrator has given "Alice" the role "Admin" using the settings api
When user "Alice" changes the quota of the "Alice Hansen" space to "100" owned by user "Alice"
Then the HTTP status code should be "200"
And for user "Alice" the JSON response should contain space called "Alice Hansen" and match
"""
{
"type": "object",
"required": [
"quota"
],
"properties": {
"quota": {
"type": "object",
"required": [
"total"
],
"properties": {
"total" : {
"type": "number",
"enum": [100]
}
}
}
}
}
"""

@issue-5938
Scenario Outline: non-admin user tries to set their own personal space quota
Given the administrator has given "Alice" the role "<userRole>" using the settings api
When user "Alice" changes the quota of the "Alice Hansen" space to "100" owned by user "Alice"
Then the HTTP status code should be "403"
And for user "Alice" the JSON response should contain space called "Alice Hansen" and match
"""
{
"type": "object",
"required": [
"quota"
],
"properties": {
"quota": {
"type": "object",
"required": [
"total"
],
"properties": {
"total" : {
"type": "number",
"enum": [0]
}
}
}
}
}
"""
Examples:
| userRole |
| Space Admin |
| User |
| Guest |
112 changes: 0 additions & 112 deletions tests/acceptance/features/apiSpaces/spaceManagement.feature
Original file line number Diff line number Diff line change
Expand Up @@ -89,118 +89,6 @@ Feature: Space management
And the json responded should not contain a space with name "Project"
And the json responded should not contain a space with name "Alice Hansen"


Scenario: The space admin user changes the quota of the project space
When user "Brian" changes the quota of the "Project" space to "20" owned by user "Alice"
Then the HTTP status code should be "200"
And for user "Alice" the JSON response should contain space called "Project" and match
"""
{
"type": "object",
"required": [
"quota"
],
"properties": {
"quota": {
"type": "object",
"required": [
"total"
],
"properties": {
"total": {
"type": "number",
"enum": [20]
}
}
}
}
}
"""


Scenario: The user without space admin permissions tries to change the quota of the project space
When user "Carol" tries to change the quota of the "Project" space to "20" owned by user "Alice"
Then the HTTP status code should be "401"
And for user "Alice" the JSON response should contain space called "Project" and match
"""
{
"type": "object",
"required": [
"quota"
],
"properties": {
"quota": {
"type": "object",
"required": [
"total"
],
"properties": {
"total": {
"type": "number",
"enum": [10]
}
}
}
}
}
"""


Scenario: The space admin user tries to change the quota of the personal space
When user "Brian" tries to change the quota of the "Alice Hansen" space to "20" owned by user "Alice"
Then the HTTP status code should be "401"
And for user "Alice" the JSON response should contain space called "Project" and match
"""
{
"type": "object",
"required": [
"quota"
],
"properties": {
"quota": {
"type": "object",
"required": [
"total"
],
"properties": {
"total": {
"type": "number",
"enum": [10]
}
}
}
}
}
"""


Scenario: The user without space admin permissions tries to change the quota of the personal space
When user "Carol" tries to change the quota of the "Alice Hansen" space to "20" owned by user "Alice"
Then the HTTP status code should be "401"
And for user "Alice" the JSON response should contain space called "Project" and match
"""
{
"type": "object",
"required": [
"quota"
],
"properties": {
"quota": {
"type": "object",
"required": [
"total"
],
"properties": {
"total": {
"type": "number",
"enum": [10]
}
}
}
}
}
"""

@skipOnStable2.0
Scenario: The space admin user changes the name of the project space
When user "Brian" changes the name of the "Project" space to "New Name" owned by user "Alice"
Expand Down