mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-05-24 16:41:35 -04:00
Add more tests coverage (#6854)
This commit is contained in:
64
tests/acceptance/features/apiDownloads/download.feature
Normal file
64
tests/acceptance/features/apiDownloads/download.feature
Normal file
@@ -0,0 +1,64 @@
|
||||
@api
|
||||
Feature: Download file in project space
|
||||
As a user with different role
|
||||
I want to be able to download files
|
||||
So that I can have it in my local storage
|
||||
|
||||
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 using spaces DAV path
|
||||
And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API
|
||||
And user "Alice" has created a space "download file" with the default quota using the GraphApi
|
||||
And user "Alice" has uploaded a file inside space "download file" with content "some content" to "file.txt"
|
||||
And user "Alice" has shared a space "download file" with settings:
|
||||
| shareWith | Brian |
|
||||
| role | editor |
|
||||
And user "Alice" has shared a space "download file" with settings:
|
||||
| shareWith | Bob |
|
||||
| role | viewer |
|
||||
|
||||
|
||||
Scenario Outline: user downloads a file in the project space
|
||||
When user "<user>" downloads the file "file.txt" of the space "download file" using the WebDAV API
|
||||
Then the HTTP status code should be "200"
|
||||
And the following headers should be set
|
||||
| header | value |
|
||||
| Content-Length | 12 |
|
||||
Examples:
|
||||
| user |
|
||||
| Alice |
|
||||
| Brian |
|
||||
| Bob |
|
||||
|
||||
|
||||
Scenario Outline: users with role manager and editor can download an old version of the file in the project space
|
||||
Given user "Alice" has uploaded a file inside space "download file" with content "new content" to "file.txt"
|
||||
And user "Alice" has uploaded a file inside space "download file" with content "newest content" to "file.txt"
|
||||
When user "<user>" downloads version of the file "file.txt" with the index "1" of the space "download file" using the WebDAV API
|
||||
Then the HTTP status code should be "200"
|
||||
And the following headers should be set
|
||||
| header | value |
|
||||
| Content-Length | 11 |
|
||||
When user "<user>" downloads version of the file "file.txt" with the index "2" of the space "download file" using the WebDAV API
|
||||
Then the HTTP status code should be "200"
|
||||
And the following headers should be set
|
||||
| header | value |
|
||||
| Content-Length | 12 |
|
||||
Examples:
|
||||
| user |
|
||||
| Alice |
|
||||
| Brian |
|
||||
|
||||
|
||||
Scenario: user with role viewer cannot get the old version of the file in the project space
|
||||
Given user "Alice" has uploaded a file inside space "download file" with content "new content" to "file.txt"
|
||||
When user "Bob" tries to get version of the file "file.txt" with the index "1" of the space "download file" using the WebDAV API
|
||||
Then the HTTP status code should be "403"
|
||||
|
||||
62
tests/acceptance/features/apiDownloads/spaceDownload.feature
Normal file
62
tests/acceptance/features/apiDownloads/spaceDownload.feature
Normal file
@@ -0,0 +1,62 @@
|
||||
@api
|
||||
Feature: Download space
|
||||
As a user
|
||||
I want to download space
|
||||
So that I can store it locally
|
||||
|
||||
|
||||
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 assigned the role "Space Admin" to user "Alice" using the Graph API
|
||||
And user "Alice" has created a space "Project-space" with the default quota using the GraphApi
|
||||
And user "Alice" has uploaded a file inside space "Project-space" with content "some data" to "file1.txt"
|
||||
And user "Alice" has created a folder ".space" in space "Project-space"
|
||||
And user "Alice" has uploaded a file inside space "Project-space" with content "space description" to ".space/readme.md"
|
||||
|
||||
|
||||
Scenario: user downloads a space
|
||||
Given user "Alice" has uploaded a file inside space "Project-space" with content "other data" to "file2.txt"
|
||||
When user "Alice" downloads the space "Project-space" using the WebDAV API
|
||||
Then the HTTP status code should be "200"
|
||||
And the downloaded "tar" archive should contain these files:
|
||||
| name | content |
|
||||
| file1.txt | some data |
|
||||
| file2.txt | other data |
|
||||
| .space/readme.md | space description |
|
||||
|
||||
|
||||
Scenario Outline: user downloads a shared space (shared by others)
|
||||
Given user "Alice" has shared a space "Project-space" with settings:
|
||||
| shareWith | Brian |
|
||||
| role | <role> |
|
||||
When user "Brian" downloads the space "Project-space" using the WebDAV API
|
||||
Then the HTTP status code should be "200"
|
||||
And the downloaded "tar" archive should contain these files:
|
||||
| name | content |
|
||||
| file1.txt | some data |
|
||||
| .space/readme.md | space description |
|
||||
Examples:
|
||||
| role |
|
||||
| manager |
|
||||
| editor |
|
||||
| viewer |
|
||||
|
||||
|
||||
Scenario Outline: admin/space-admin tries to download a space that they do not have access to
|
||||
Given the administrator has assigned the role "<userRole>" to user "Brian" using the Graph API
|
||||
When user "Brian" tries to download the space "Project-space" owned by user "Alice" using the WebDAV API
|
||||
Then the HTTP status code should be "404"
|
||||
Examples:
|
||||
| userRole |
|
||||
| Admin |
|
||||
| Space Admin |
|
||||
|
||||
|
||||
Scenario: user tries to download disabled space
|
||||
Given user "Alice" has disabled a space "Project-space"
|
||||
When user "Alice" tries to download the space "Project-space" using the WebDAV API
|
||||
Then the HTTP status code should be "404"
|
||||
Reference in New Issue
Block a user