Added general function to create shares in preconditions.
This commit is contained in:
parent
0f27b719ea
commit
0593381522
|
@ -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");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue