Added sabre dav in webdav, modified skeleton to have parent and child folders

This commit is contained in:
Sergio Bertolin 2015-11-27 12:55:48 +00:00
parent 9722935043
commit b99bd7f4fc
4 changed files with 77 additions and 6 deletions

View File

@ -3,6 +3,7 @@
"phpunit/phpunit": "~4.6",
"behat/behat": "^3.0",
"guzzlehttp/guzzle": "~5.0",
"jarnaiz/behat-junit-formatter": "^1.3"
"jarnaiz/behat-junit-formatter": "^1.3",
"sabre/dav": "3.0.x-dev"
}
}

View File

@ -152,6 +152,14 @@ trait BasicStructure{
if (!file_exists("../../core/skeleton/FOLDER")) {
mkdir("../../core/skeleton/FOLDER", 0777, true);
}
if (!file_exists("../../core/skeleton/PARENT")) {
mkdir("../../core/skeleton/PARENT", 0777, true);
}
file_put_contents("../../core/skeleton/PARENT/" . "parent.txt", "ownCloud test text file\n");
if (!file_exists("../../core/skeleton/PARENT/CHILD")) {
mkdir("../../core/skeleton/PARENT/CHILD", 0777, true);
}
file_put_contents("../../core/skeleton/PARENT/CHILD/" . "child.txt", "ownCloud test text file\n");
}
@ -165,6 +173,16 @@ trait BasicStructure{
if (is_dir("../../core/skeleton/FOLDER")) {
rmdir("../../core/skeleton/FOLDER");
}
self::removeFile("../../core/skeleton/PARENT/CHILD/", "child.txt");
if (is_dir("../../core/skeleton/PARENT/CHILD")) {
rmdir("../../core/skeleton/PARENT/CHILD");
}
self::removeFile("../../core/skeleton/PARENT/", "parent.txt");
if (is_dir("../../core/skeleton/PARENT")) {
rmdir("../../core/skeleton/PARENT");
}
}
}

View File

@ -2,8 +2,9 @@
use Behat\Behat\Context\Context;
use Behat\Behat\Context\SnippetAcceptingContext;
use GuzzleHttp\Client;
use GuzzleHttp\Client as GClient;
use GuzzleHttp\Message\ResponseInterface;
use Sabre\DAV\Client as SClient;
require __DIR__ . '/../../vendor/autoload.php';
@ -22,7 +23,7 @@ trait WebDav{
public function makeDavRequest($user, $method, $path, $headers){
$fullUrl = substr($this->baseUrl, 0, -4) . $this->davPath . "$path";
$client = new Client();
$client = new GClient();
$options = [];
if ($user === 'admin') {
$options['auth'] = $this->adminUser;
@ -30,10 +31,11 @@ trait WebDav{
$options['auth'] = [$user, $this->regularUser];
}
$request = $client->createRequest($method, $fullUrl, $options);
foreach ($headers as $key => $value) {
$request->addHeader($key, $value);
if (!is_null($headers)){
foreach ($headers as $key => $value) {
$request->addHeader($key, $value);
}
}
//$this->response = $client->send($request);
return $client->send($request);
}
@ -56,5 +58,43 @@ trait WebDav{
$this->response = $this->makeDavRequest($user, "MOVE", $fileSource, $headers);
}
public function listFolder($user, $path){
$fullUrl = substr($this->baseUrl, 0, -4);
$settings = array(
'baseUri' => $fullUrl,
'userName' => $user,
);
echo "password del admin: " . $this->adminUser[1] . "\n";
echo "fullUrl: " . $fullUrl . "\n";
if ($user === 'admin') {
$settings['password'] = $this->adminUser[1];
} else {
$settings['password'] = $this->regularUser;
}
$client = new SClient($settings);
$response = $client->propfind($this->davPath . "/", array(
'{DAV:}displayname',
));
print_r($response);
/*$features = $client->options();
print_r($features);*/
//return $this->response->xml();
}
/**
* @Then /^user "([^"]*)" should see following folders$/
*/
public function checkList($user){
$this->listFolder($user, '/');
}
}

View File

@ -363,6 +363,18 @@ Feature: sharing
Then the OCS status code should be "404"
And the HTTP status code should be "200"
Scenario: Share of folder and sub-folder to same user - core#20645
Given As an "admin"
And user "user0" exists
And user "user1" exists
And group "group0" exists
And user "user1" belongs to group "group0"
And file "/PARENT" from user "user0" is shared with user "user1"
When file "/PARENT/CHILD" from user "user0" is shared with group "group0"
And As an "admin"
Then user "user1" should see following folders
And the HTTP status code should be "200"
Scenario: Delete all group shares
Given As an "admin"
And user "user0" exists