Files
deck/tests/integration/features/sharing.feature
Julius Härtl 39c59a3bd6 Add integration test for attachment handling on cards
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-10-31 12:48:50 +01:00

166 lines
6.5 KiB
Gherkin

Feature: File sharing
Background:
Given user "admin" exists
And user "user0" exists
And user "user1" exists
And user "user2" exists
And user "user3" exists
Given group "group0" exists
And group "group1" exists
Given user "user2" belongs to group "group1"
Given user "user3" belongs to group "group1"
Scenario: Share a file with a card by the board owner
Given acting as user "user0"
And creates a board named "Shared board" with color "fafafa"
And create a stack named "Stack"
And create a card named "Test"
And shares the board with user "user1"
Then the HTTP status code should be "200"
Given using new dav path
When User "user0" uploads file "../data/test.txt" to "/user0-file.txt"
Then the HTTP status code should be "201"
Given acting as user "user0"
When share the file "/user0-file.txt" with the card
Then the OCS status code should be "100"
And the HTTP status code should be "200"
And as "user1" the file "/Deck/user0-file.txt" exists
Scenario: Share a file with a card by another user
Given acting as user "user0"
And creates a board named "Shared board" with color "fafafa"
And create a stack named "Stack"
And create a card named "Test"
And shares the board with user "user1"
| permissionEdit | 1 |
| permissionShare | 1 |
| permissionManage | 1 |
Then the HTTP status code should be "200"
Given using new dav path
When User "user1" uploads file "../data/test.txt" to "/user1-file.txt"
Then the HTTP status code should be "201"
Given acting as user "user1"
And share the file "/user1-file.txt" with the card
Then the OCS status code should be "100"
And the HTTP status code should be "200"
And as "user0" the file "/Deck/user1-file.txt" exists
And as "user1" the file "/Deck/user1-file.txt" does not exist
Scenario: Share a file with a card by another user fails without edit permission
Given acting as user "user0"
And creates a board named "Shared board" with color "fafafa"
And create a stack named "Stack"
And create a card named "Test"
And shares the board with user "user1"
Then the HTTP status code should be "200"
Given using new dav path
When User "user1" uploads file "../data/test.txt" to "/user1-file.txt"
Then the HTTP status code should be "201"
Given acting as user "user1"
And share the file "/user1-file.txt" with the card
Then the OCS status code should be "404"
And the HTTP status code should be "200"
And as "user0" the file "/Deck/user1-file.txt" does not exist
Scenario: Share a file with a card by another user through a group
Given acting as user "user0"
And creates a board named "Shared board" with color "fafafa"
And create a stack named "Stack"
And create a card named "Test"
And shares the board with group "group1"
Then the HTTP status code should be "200"
Given using new dav path
When User "user0" uploads file "../data/test.txt" to "/user0-file2.txt"
Then the HTTP status code should be "201"
Given acting as user "user0"
When share the file "/user0-file2.txt" with the card
Then the OCS status code should be "100"
And the HTTP status code should be "200"
And as "user2" the file "/Deck/user0-file2.txt" exists
And as "user0" the file "/Deck/user0-file2.txt" does not exist
Scenario: Remove incoming group share as a user
Given acting as user "user0"
And creates a board named "Shared board" with color "fafafa"
And create a stack named "Stack"
And create a card named "Test"
And shares the board with group "group1"
Then the HTTP status code should be "200"
Given using new dav path
When User "user0" uploads file "../data/test.txt" to "/user0-file2.txt"
Then the HTTP status code should be "201"
Given acting as user "user0"
When share the file "/user0-file2.txt" with the card
Then the OCS status code should be "100"
And the HTTP status code should be "200"
And as "user2" the file "/Deck/user0-file2.txt" exists
And as "user3" the file "/Deck/user0-file2.txt" exists
And as "user0" the file "/Deck/user0-file2.txt" does not exist
Given User "user2" deletes file "/Deck/user0-file2.txt"
And as "user2" the file "/Deck/user0-file2.txt" does not exist
And as "user3" the file "/Deck/user0-file2.txt" exists
Scenario: Remove a share as the owner
Given acting as user "user0"
And creates a board named "Shared board" with color "fafafa"
And create a stack named "Stack"
And create a card named "Test"
And shares the board with group "group1"
Then the HTTP status code should be "200"
Given using new dav path
When User "user0" uploads file "../data/test.txt" to "/user0-file2.txt"
Then the HTTP status code should be "201"
Given acting as user "user0"
When share the file "/user0-file2.txt" with the card
Then the OCS status code should be "100"
And the HTTP status code should be "200"
And as "user2" the file "/Deck/user0-file2.txt" exists
And as "user3" the file "/Deck/user0-file2.txt" exists
And as "user0" the file "/Deck/user0-file2.txt" does not exist
Given acting as user "user0"
When Deleting last share
And as "user2" the file "/Deck/user0-file2.txt" does not exist
And as "user3" the file "/Deck/user0-file2.txt" does not exist
Scenario: Remove a share through the deck API
Given acting as user "user0"
When creates a board with example content
And remember the last card as "user0-card"
And uploads an attachment to the last used card
And remember the last attachment as "user0-attachment"
Given acting as user "user1"
When creates a board with example content
And remember the last card as "user1-card"
And uploads an attachment to the last used card
And remember the last attachment as "user1-attachment"
Given acting as user "user0"
When fetching the attachment "user1-attachment" for the card "user0-card"
Then the response should have a status code 403
When deleting the attachment "user1-attachment" for the card "user0-card"
Then the response should have a status code 403
When fetching the attachment "user0-attachment" for the card "user0-card"
Then the response should have a status code 200
When deleting the attachment "user0-attachment" for the card "user0-card"
Then the response should have a status code 200
Given acting as user "user1"
When deleting the attachment "user1-attachment" for the card "user1-card"
Then the response should have a status code 200