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>
This commit is contained in:
Daniel Calviño Sánchez 2020-09-10 04:28:57 +02:00 committed by Julius Härtl
parent 6d1374738f
commit 1375a42a84
No known key found for this signature in database
GPG Key ID: 4C614C6ED2CDE6DF
1 changed files with 100 additions and 0 deletions

View File

@ -149,6 +149,91 @@ Feature: transfer-ownership
| uid_file_owner | test | | uid_file_owner | test |
| share_with | test | | share_with | test |
Scenario: transfering 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 transfering 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: transfering 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 transfering 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: transfering 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 transfering 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: transfering ownership does not transfer received shares Scenario: transfering ownership does not transfer received shares
Given user "user0" exists Given user "user0" exists
And user "user1" exists And user "user1" exists
@ -316,6 +401,21 @@ Feature: transfer-ownership
| uid_file_owner | user1 | | uid_file_owner | user1 |
| share_with | user2 | | share_with | user2 |
Scenario: transfering 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 transfering 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: transfering ownership does not transfer received shares Scenario: transfering ownership does not transfer received shares
Given user "user0" exists Given user "user0" exists
And user "user1" exists And user "user1" exists