Merge pull request #22948 from nextcloud/add-more-integration-tests-for-files-transfer-ownership-command

Add more integration tests for "files:transfer-ownership" command
This commit is contained in:
Roeland Jago Douma 2020-09-24 14:45:36 +02:00 committed by GitHub
commit acba3da7c8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 106 additions and 1 deletions

View File

@ -27,6 +27,7 @@
require __DIR__ . '/../../vendor/autoload.php'; require __DIR__ . '/../../vendor/autoload.php';
use Behat\Behat\Hook\Scope\BeforeScenarioScope; use Behat\Behat\Hook\Scope\BeforeScenarioScope;
use PHPUnit\Framework\Assert;
class CommandLineContext implements \Behat\Behat\Context\Context { class CommandLineContext implements \Behat\Behat\Context\Context {
use CommandLine; use CommandLine;
@ -129,4 +130,11 @@ class CommandLineContext implements \Behat\Behat\Context\Context {
$davPath = rtrim($davPath, '/') . $this->lastTransferPath; $davPath = rtrim($davPath, '/') . $this->lastTransferPath;
$this->featureContext->usingDavPath($davPath); $this->featureContext->usingDavPath($davPath);
} }
/**
* @Then /^transfer folder name contains "([^"]+)"$/
*/
public function transferFolderNameContains($text) {
Assert::assertContains($text, $this->lastTransferPath);
}
} }

View File

@ -70,7 +70,7 @@ trait Provisioning {
} }
/** /**
* @Given /^user "([^"]*)" with displayname "([^"]*)" exists$/ * @Given /^user "([^"]*)" with displayname "((?:[^"]|\\")*)" exists$/
* @param string $user * @param string $user
*/ */
public function assureUserWithDisplaynameExists($user, $displayname) { public function assureUserWithDisplaynameExists($user, $displayname) {

View File

@ -29,6 +29,22 @@ Feature: transfer-ownership
And using received transfer folder of "user1" as dav path And using received transfer folder of "user1" as dav path
And as "user1" the folder "/test" exists And as "user1" the folder "/test" exists
Scenario: transferring ownership from user with risky display name
Given user "user0" with displayname "user0 \"risky\"? spay 'na|\/|e':.#" exists
And user "user1" exists
And User "user0" created a folder "/test"
And User "user0" uploads file "data/textfile.txt" to "/test/somefile.txt"
When transferring ownership from "user0" to "user1"
And the command was successful
And As an "user1"
And using received transfer folder of "user1" as dav path
Then Downloaded content when downloading file "/test/somefile.txt" with range "bytes=0-6" should be "This is"
And transfer folder name contains "transferred from user0 -risky- spay -na|-|e- on"
And using old dav path
And as "user0" the folder "/test" does not exist
And using received transfer folder of "user1" as dav path
And as "user1" the folder "/test" exists
Scenario: transferring ownership of file shares Scenario: transferring ownership of file shares
Given user "user0" exists Given user "user0" exists
And user "user1" exists And user "user1" exists
@ -290,6 +306,20 @@ Feature: transfer-ownership
Then the command error output contains the text "Unknown target user" Then the command error output contains the text "Unknown target user"
And the command failed with exit code 1 And the command failed with exit code 1
Scenario: transferring ownership of a file
Given user "user0" exists
And user "user1" exists
And User "user0" uploads file "data/textfile.txt" to "/somefile.txt"
When transferring ownership of path "somefile.txt" from "user0" to "user1"
And the command was successful
And As an "user1"
And using received transfer folder of "user1" as dav path
Then Downloaded content when downloading file "/somefile.txt" with range "bytes=0-6" should be "This is"
And using old dav path
And as "user0" the file "/somefile.txt" does not exist
And using received transfer folder of "user1" as dav path
And as "user1" the file "/somefile.txt" exists
Scenario: transferring ownership of a folder Scenario: transferring ownership of a folder
Given user "user0" exists Given user "user0" exists
And user "user1" exists And user "user1" exists
@ -305,6 +335,73 @@ Feature: transfer-ownership
And using received transfer folder of "user1" as dav path And using received transfer folder of "user1" as dav path
And as "user1" the folder "/test" exists And as "user1" the folder "/test" exists
Scenario: transferring ownership from user with risky display name
Given user "user0" with displayname "user0 \"risky\"? spay 'na|\/|e':.#" exists
And user "user1" exists
And User "user0" created a folder "/test"
And User "user0" uploads file "data/textfile.txt" to "/test/somefile.txt"
When transferring ownership of path "test" from "user0" to "user1"
And the command was successful
And As an "user1"
And using received transfer folder of "user1" as dav path
Then Downloaded content when downloading file "/test/somefile.txt" with range "bytes=0-6" should be "This is"
And transfer folder name contains "transferred from user0 -risky- spay -na|-|e- on"
And using old dav path
And as "user0" the folder "/test" does not exist
And using received transfer folder of "user1" as dav path
And as "user1" the folder "/test" exists
Scenario: transferring ownership of path does not affect other files
Given user "user0" exists
And user "user1" exists
And User "user0" created a folder "/test"
And User "user0" uploads file "data/textfile.txt" to "/test/somefile.txt"
And User "user0" created a folder "/test2"
And User "user0" uploads file "data/textfile.txt" to "/test2/somefile.txt"
When transferring ownership of path "test" from "user0" to "user1"
And the command was successful
And As an "user1"
And using received transfer folder of "user1" as dav path
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" does not exist
And as "user0" the folder "/test2" exists
And as "user0" the file "/test2/somefile.txt" exists
And using received transfer folder of "user1" as dav path
And as "user1" the folder "/test" exists
And as "user1" the folder "/test2" does not exist
Scenario: transferring ownership of path does not affect other shares
Given user "user0" exists
And user "user1" exists
And User "user0" created a folder "/test"
And User "user0" uploads file "data/textfile.txt" to "/test/somefile.txt"
And User "user0" created a folder "/test2"
And User "user0" uploads file "data/textfile.txt" to "/test2/sharedfile.txt"
And file "/test2/sharedfile.txt" of user "user0" is shared with user "user1" with permissions 19
And user "user1" accepts last share
When transferring ownership of path "test" from "user0" to "user1"
And the command was successful
And As an "user1"
And using received transfer folder of "user1" as dav path
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" does not exist
And as "user0" the folder "/test2" exists
And as "user0" the file "/test2/sharedfile.txt" exists
And using received transfer folder of "user1" as dav path
And as "user1" the folder "/test" exists
And as "user1" the folder "/test2" does not exist
And using old dav path
And as "user1" the file "/sharedfile.txt" exists
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 | user0 |
| uid_file_owner | user0 |
| share_with | user1 |
Scenario: transferring ownership of file shares Scenario: transferring ownership of file shares
Given user "user0" exists Given user "user0" exists
And user "user1" exists And user "user1" exists