From 7aa6e9b6432462da606b12058297fda7fba56fe3 Mon Sep 17 00:00:00 2001 From: Sergio Bertolin Date: Tue, 10 Nov 2015 10:22:38 +0000 Subject: [PATCH] Added test to get info of a specific share id Check fields of the share response Added missing fields to check if their values are numbers --- .../features/bootstrap/FeatureContext.php | 29 +++++++++++++++++-- build/integration/features/sharing-v1.feature | 27 +++++++++++++++++ 2 files changed, 54 insertions(+), 2 deletions(-) diff --git a/build/integration/features/bootstrap/FeatureContext.php b/build/integration/features/bootstrap/FeatureContext.php index 69fa018d0e..4a0299d6e4 100644 --- a/build/integration/features/bootstrap/FeatureContext.php +++ b/build/integration/features/bootstrap/FeatureContext.php @@ -672,7 +672,10 @@ class FeatureContext implements Context, SnippetAcceptingContext { public function isFieldInResponse($field, $content_expected){ $data = $this->response->xml()->data[0]; foreach($data as $element) { - if ($element->$field == $content_expected){ + if ($content_expected == "A_NUMBER"){ + return is_numeric((string)$element->$field); + } + elseif ($element->$field == $content_expected){ return True; } } @@ -744,10 +747,32 @@ class FeatureContext implements Context, SnippetAcceptingContext { */ public function deletingLastShare(){ $share_id = $this->lastShareData->data[0]->id; - $url = "/apps/files_sharing/api/v{$this->apiVersion}/shares/$share_id"; + $url = "/apps/files_sharing/api/v{$this->sharingApiVersion}/shares/$share_id"; $this->sendingToWith("DELETE", $url, null); } + /** + * @When /^Getting info of last share$/ + */ + public function gettingInfoOfLastShare(){ + $share_id = $this->lastShareData->data[0]->id; + $url = "/apps/files_sharing/api/v{$this->sharingApiVersion}/shares/$share_id"; + $this->sendingToWith("GET", $url, null); + } + + /** + * @Then /^Share fields of last share match with$/ + * @param \Behat\Gherkin\Node\TableNode|null $formData + */ + public function checkShareFields($body){ + if ($body instanceof \Behat\Gherkin\Node\TableNode) { + $fd = $body->getRowsHash(); + foreach($fd as $field => $value) { + PHPUnit_Framework_Assert::assertEquals(True, $this->isFieldInResponse($field, $value)); + } + } + } + public static function removeFile($path, $filename){ if (file_exists("$path" . "$filename")) { unlink("$path" . "$filename"); diff --git a/build/integration/features/sharing-v1.feature b/build/integration/features/sharing-v1.feature index b73fb39d5d..36e729d2a1 100644 --- a/build/integration/features/sharing-v1.feature +++ b/build/integration/features/sharing-v1.feature @@ -108,6 +108,33 @@ Feature: sharing And User "user2" should be included in the response And User "user3" should not be included in the response + Scenario: getting share info of a share + Given user "user0" exists + And user "user1" exists + And file "textfile0.txt" from user "user0" is shared with user "user1" + And As an "user0" + When Getting info of last share + Then the OCS status code should be "100" + And the HTTP status code should be "200" + And Share fields of last share match with + | id | A_NUMBER | + | item_type | file | + | item_source | A_NUMBER | + | share_type | 0 | + | share_with | user1 | + | file_source | A_NUMBER | + | file_target | /textfile0.txt | + | path | /textfile0.txt | + | permissions | 23 | + | stime | A_NUMBER | + | storage | A_NUMBER | + | mail_send | 0 | + | uid_owner | user0 | + | storage_id | home::user0 | + | file_parent | A_NUMBER | + | share_with_displayname | user1 | + | displayname_owner | user0 | + Scenario: delete a share Given user "user0" exists And user "user1" exists