summaryrefslogtreecommitdiffstats
path: root/build/integration
diff options
context:
space:
mode:
authorDaniel Calviño Sánchez <danxuliu@gmail.com>2020-09-10 04:28:57 +0200
committerDaniel Calviño Sánchez <danxuliu@gmail.com>2020-09-10 04:34:33 +0200
commit58d57b35ea5c592b84e6d4f0b6e23d482b5a6579 (patch)
tree9dfc7e0f2e247bc2b4fbd8c63dc4068c55d3c9f7 /build/integration
parent0ce8096839d919bdecbcdb09157d5647895fdc05 (diff)
downloadnextcloud-server-58d57b35ea5c592b84e6d4f0b6e23d482b5a6579.tar.gz
nextcloud-server-58d57b35ea5c592b84e6d4f0b6e23d482b5a6579.zip
Add integration tests for transferring ownership of reshares
Currently only transferring ownership of a reshare with a group to a user in the group is possible. When transferring ownership of a reshare with another user or with a group to a user not in the group restoring the share fails (but the command succeeds, it only fails for the specific files that are reshares). When transferring ownership of a path that is a reshare the command fails (as when a specific path is provided the path tries to move the file, it does not take into account reshares). The added integration tests reflect the above behaviours. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Diffstat (limited to 'build/integration')
-rw-r--r--build/integration/features/transfer-ownership.feature100
1 files changed, 100 insertions, 0 deletions
diff --git a/build/integration/features/transfer-ownership.feature b/build/integration/features/transfer-ownership.feature
index 31f29298a4f..76e55af89a7 100644
--- a/build/integration/features/transfer-ownership.feature
+++ b/build/integration/features/transfer-ownership.feature
@@ -149,6 +149,91 @@ Feature: transfer-ownership
| uid_file_owner | test |
| share_with | test |
+ Scenario: transferring ownership of folder reshared with another user
+ Given user "user0" exists
+ And user "user1" exists
+ And user "user2" exists
+ And user "user3" exists
+ And User "user3" created a folder "/test"
+ And User "user3" uploads file "data/textfile.txt" to "/test/somefile.txt"
+ And folder "/test" of user "user3" is shared with user "user0" with permissions 31
+ And user "user0" accepts last share
+ And folder "/test" of user "user0" is shared with user "user2" with permissions 31
+ And user "user2" accepts last share
+ When transferring ownership from "user0" to "user1"
+ And the command was successful
+ And As an "user2"
+ Then Downloaded content when downloading file "/test/somefile.txt" with range "bytes=0-6" should be "This is"
+ And using old dav path
+ And as "user0" the folder "/test" exists
+ And using received transfer folder of "user1" as dav path
+ And as "user1" the folder "/test" does not exist
+ And As an "user0"
+ And Getting info of last share
+ And the OCS status code should be "100"
+ And Share fields of last share match with
+ | uid_owner | user0 |
+ | uid_file_owner | user3 |
+ | share_with | user2 |
+
+ Scenario: transferring ownership of folder reshared with group to a user in the group
+ Given user "user0" exists
+ And user "user1" exists
+ And user "user2" exists
+ And user "user3" exists
+ And group "group1" exists
+ And user "user1" belongs to group "group1"
+ And User "user3" created a folder "/test"
+ And User "user3" uploads file "data/textfile.txt" to "/test/somefile.txt"
+ And folder "/test" of user "user3" is shared with user "user0" with permissions 31
+ And user "user0" accepts last share
+ And folder "/test" of user "user0" is shared with group "group1" with permissions 31
+ And user "user1" accepts last share
+ When transferring ownership from "user0" to "user1"
+ And the command was successful
+ And As an "user1"
+ Then Downloaded content when downloading file "/test/somefile.txt" with range "bytes=0-6" should be "This is"
+ And using old dav path
+ And as "user0" the folder "/test" exists
+ And using received transfer folder of "user1" as dav path
+ And as "user1" the folder "/test" does not exist
+ And As an "user1"
+ And Getting info of last share
+ And the OCS status code should be "100"
+ And Share fields of last share match with
+ | uid_owner | user1 |
+ | uid_file_owner | user3 |
+ | share_with | group1 |
+
+ Scenario: transferring ownership of folder reshared with group to a user not in the group
+ Given user "user0" exists
+ And user "user1" exists
+ And user "user2" exists
+ And user "user3" exists
+ And group "group1" exists
+ And user "user2" belongs to group "group1"
+ And User "user3" created a folder "/test"
+ And User "user3" uploads file "data/textfile.txt" to "/test/somefile.txt"
+ And folder "/test" of user "user3" is shared with user "user0" with permissions 31
+ And user "user0" accepts last share
+ And folder "/test" of user "user0" is shared with group "group1" with permissions 31
+ And user "user2" accepts last share
+ When transferring ownership from "user0" to "user1"
+ And the command was successful
+ And As an "user2"
+ Then Downloaded content when downloading file "/test/somefile.txt" with range "bytes=0-6" should be "This is"
+ And using old dav path
+ And as "user0" the folder "/test" exists
+ And using received transfer folder of "user1" as dav path
+ And as "user1" the folder "/test" does not exist
+ And As an "user0"
+ And Getting info of last share
+ And the OCS status code should be "100"
+ And Share fields of last share match with
+ | uid_owner | user0 |
+ | uid_file_owner | user3 |
+ | share_with | group1 |
+
Scenario: transferring ownership does not transfer received shares
Given user "user0" exists
And user "user1" exists
@@ -316,6 +401,21 @@ Feature: transfer-ownership
| uid_file_owner | user1 |
| share_with | user2 |
+ Scenario: transferring ownership of path fails for reshares
+ Given user "user0" exists
+ And user "user1" exists
+ And user "user2" exists
+ And user "user3" exists
+ And User "user3" created a folder "/test"
+ And User "user3" uploads file "data/textfile.txt" to "/test/somefile.txt"
+ And folder "/test" of user "user3" is shared with user "user0" with permissions 31
+ And user "user0" accepts last share
+ And folder "/test" of user "user0" is shared with user "user2" with permissions 31
+ And user "user2" accepts last share
+ When transferring ownership of path "test" from "user0" to "user1"
+ Then the command failed with exit code 1
+ And the command error output contains the text "Could not transfer files."
+
Scenario: transferring ownership does not transfer received shares
Given user "user0" exists
And user "user1" exists