diff options
author | Sergio Bertolin <sbertolin@solidgear.es> | 2015-11-04 12:16:00 +0000 |
---|---|---|
committer | Sergio Bertolin <sbertolin@solidgear.es> | 2015-11-04 12:16:00 +0000 |
commit | 05933815223043ddbe5bbcdaa7afb02801243739 (patch) | |
tree | 8d18502af83f9b4558bc22ba221ea7fa73ab47e8 /build/integration | |
parent | 0f27b719ea515e749fb26a90e1dd303e1e0733d7 (diff) | |
download | nextcloud-server-05933815223043ddbe5bbcdaa7afb02801243739.tar.gz nextcloud-server-05933815223043ddbe5bbcdaa7afb02801243739.zip |
Added general function to create shares in preconditions.
Diffstat (limited to 'build/integration')
-rw-r--r-- | build/integration/features/bootstrap/FeatureContext.php | 85 | ||||
-rw-r--r-- | build/integration/features/sharing-v1.feature | 19 |
2 files changed, 97 insertions, 7 deletions
diff --git a/build/integration/features/bootstrap/FeatureContext.php b/build/integration/features/bootstrap/FeatureContext.php index d4a5a45dc3a..a8ab5dc04e8 100644 --- a/build/integration/features/bootstrap/FeatureContext.php +++ b/build/integration/features/bootstrap/FeatureContext.php @@ -403,7 +403,6 @@ class FeatureContext implements Context, SnippetAcceptingContext { $this->response = $client->send($client->createRequest("POST", $fullUrl, $options)); $this->createdUsers[$user] = $user; - echo "Creating a user inside creatingTheuser\n"; } /** @@ -620,11 +619,83 @@ class FeatureContext implements Context, SnippetAcceptingContext { PHPUnit_Framework_Assert::assertEquals(200, $this->response->getStatusCode()); } - public static function createTextFile($path, $filename){ - $myfile = fopen("$path" . "$filename", "w") or die("Unable to open file!"); - $txt = "ownCloud test text file\n"; - fwrite($myfile, $txt); - fclose($myfile); + public function createShare($user, + $path = null, + $shareType = null, + $shareWith = null, + $publicUpload = null, + $password = null, + $permissions = null){ + $fullUrl = $this->baseUrl . "v{$this->apiVersion}.php/apps/files_sharing/api/v{$this->apiVersion}/shares"; + $client = new Client(); + $options = []; + + if ($user === 'admin') { + $options['auth'] = $this->adminUser; + } else { + $options['auth'] = [$user, $this->regularUser]; + } + $fd = []; + if (!is_null($path)){ + $fd['path'] = $path; + } + if (!is_null($shareType)){ + $fd['shareType'] = $shareType; + } + if (!is_null($shareWith)){ + $fd['shareWith'] = $shareWith; + } + if (!is_null($publicUpload)){ + $fd['publicUpload'] = $publicUpload; + } + if (!is_null($password)){ + $fd['password'] = $password; + } + if (!is_null($permissions)){ + $fd['permissions'] = $permissions; + } + + $options['body'] = $fd; + + try { + $this->response = $client->send($client->createRequest("POST", $fullUrl, $options)); + } catch (\GuzzleHttp\Exception\ClientException $ex) { + $this->response = $ex->getResponse(); + } + + } + + public function isUserInSharedData($user){ + $data = $this->response->xml()->data[0]; + foreach($data as $element) { + if ($element->share_with == $user){ + return True; + } + } + return False; + } + + /** + * @Given /^file "([^"]*)" from user "([^"]*)" is shared with user "([^"]*)"$/ + */ + public function assureFileIsShared($filepath, $user1, $user2){ + $fullUrl = $this->baseUrl . "v{$this->apiVersion}.php/apps/files_sharing/api/v{$this->apiVersion}/shares" . "?path=$filepath"; + $client = new Client(); + $options = []; + if ($user1 === 'admin') { + $options['auth'] = $this->adminUser; + } else { + $options['auth'] = [$user1, $this->regularUser]; + } + $this->response = $client->get($fullUrl, $options); + if ($this->isUserInSharedData($user2)){ + return; + } else { + $this->createShare($user1, $filepath, 0, $user2, null, null, null); + } + $this->response = $client->get($fullUrl, $options); + PHPUnit_Framework_Assert::assertEquals(True, $this->isUserInSharedData($user2)); + } public static function removeFile($path, $filename){ @@ -638,7 +709,7 @@ class FeatureContext implements Context, SnippetAcceptingContext { */ public static function addFilesToSkeleton(){ for ($i=0; $i<5; $i++){ - self::createTextFile("../../core/skeleton/", "textfile" . "$i" . ".txt"); + file_put_contents("../../core/skeleton/" . "textfile" . "$i" . ".txt", "ownCloud test text file\n"); } } diff --git a/build/integration/features/sharing-v1.feature b/build/integration/features/sharing-v1.feature index abf9fe1c8d8..0f9953bcccf 100644 --- a/build/integration/features/sharing-v1.feature +++ b/build/integration/features/sharing-v1.feature @@ -58,3 +58,22 @@ Feature: sharing And the HTTP status code should be "200" And Public shared file "welcome.txt" with password "publicpw" can be downloaded + Scenario: getting all shares of a user + Given user "user0" exists + And user "user1" exists + And file "textfile0.txt" from user "user0" is shared with user "user1" + And As an "admin" + When sending "GET" to "/apps/files_sharing/api/v1/shares" + Then the OCS status code should be "100" + And the HTTP status code should be "200" + + + + + + + + + + + |