From 7744cb5240c4aa9f974ae7198a1c0a31c92d19a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20Bertol=C3=ADn?= Date: Tue, 30 Aug 2016 06:47:39 +0000 Subject: [PATCH] Orphaned shares test and some requirements Signed-off-by: Lukas Reschke --- .../features/bootstrap/BasicStructure.php | 31 +++++++++++++++++++ .../integration/features/bootstrap/WebDav.php | 2 +- build/integration/features/sharing-v1.feature | 18 +++++++++++ 3 files changed, 50 insertions(+), 1 deletion(-) diff --git a/build/integration/features/bootstrap/BasicStructure.php b/build/integration/features/bootstrap/BasicStructure.php index 30d78ebd23..a843892773 100644 --- a/build/integration/features/bootstrap/BasicStructure.php +++ b/build/integration/features/bootstrap/BasicStructure.php @@ -179,6 +179,27 @@ trait BasicStructure { } } + public function sendingToWithDirectUrl($verb, $url, $body) { + $fullUrl = substr($this->baseUrl, 0, -5) . $url; + $client = new Client(); + $options = []; + if ($this->currentUser === 'admin') { + $options['auth'] = $this->adminUser; + } else { + $options['auth'] = [$this->currentUser, $this->regularUser]; + } + if ($body instanceof \Behat\Gherkin\Node\TableNode) { + $fd = $body->getRowsHash(); + $options['body'] = $fd; + } + + try { + $this->response = $client->send($client->createRequest($verb, $fullUrl, $options)); + } catch (\GuzzleHttp\Exception\ClientException $ex) { + $this->response = $ex->getResponse(); + } + } + public function isExpectedUrl($possibleUrl, $finalPart){ $baseUrlChopped = substr($this->baseUrl, 0, -4); $endCharacter = strlen($baseUrlChopped) + strlen($finalPart); @@ -320,6 +341,16 @@ trait BasicStructure { fclose($file); } + /** + * @When User :user empties trashbin + * @param string $user + */ + public function emptyTrashbin($user) { + $body = new \Behat\Gherkin\Node\TableNode([['allfiles', 'true'], ['dir', '%2F']]); + $this->sendingToWithDirectUrl('POST', "/index.php/apps/files_trashbin/ajax/delete.php", $body); + $this->theHTTPStatusCodeShouldBe('200'); + } + /** * @BeforeSuite */ diff --git a/build/integration/features/bootstrap/WebDav.php b/build/integration/features/bootstrap/WebDav.php index ad29f28e10..5eccfdf2f8 100644 --- a/build/integration/features/bootstrap/WebDav.php +++ b/build/integration/features/bootstrap/WebDav.php @@ -455,7 +455,7 @@ trait WebDav { } /** - * @When User :user deletes file :file + * @When User :user deletes (file|folder) :file * @param string $user * @param string $file */ diff --git a/build/integration/features/sharing-v1.feature b/build/integration/features/sharing-v1.feature index 3c769fba3d..ab1b9c63cc 100644 --- a/build/integration/features/sharing-v1.feature +++ b/build/integration/features/sharing-v1.feature @@ -920,3 +920,21 @@ Feature: sharing # |{http://owncloud.org/ns}permissions| # And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRDNVCK" # And as "user1" the folder "merge-test-outside-groups-renamebeforesecondshare" does not exist + + Scenario: Empting trashbin + Given As an "admin" + And user "user0" exists + And User "user0" deletes file "/textfile0.txt" + When User "user0" empties trashbin + Then the HTTP status code should be "200" + + Scenario: orphaned shares + Given As an "admin" + And user "user0" exists + And user "user1" exists + And user "user0" created a folder "/common" + And user "user0" created a folder "/common/sub" + And file "/common/sub" of user "user0" is shared with user "user1" + And User "user0" deletes folder "/common" + When User "user0" empties trashbin + Then as "user1" the folder "sub" does not exist