]> source.dussan.org Git - nextcloud-server.git/commitdiff
Add integration tests for transferring ownership of reshares 22761/head
authorDaniel Calviño Sánchez <danxuliu@gmail.com>
Thu, 10 Sep 2020 02:28:57 +0000 (04:28 +0200)
committerDaniel Calviño Sánchez <danxuliu@gmail.com>
Thu, 10 Sep 2020 02:34:33 +0000 (04:34 +0200)
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>
build/integration/features/transfer-ownership.feature

index 31f29298a4f8fb7050eff2531d685bb4ac36bff2..76e55af89a7ced39954454421529b69e9eff10d8 100644 (file)
@@ -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