Skip to content
Snippets Groups Projects
Commit b99bd7f4 authored by Sergio Bertolin's avatar Sergio Bertolin
Browse files

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

parent 97229350
No related branches found
No related tags found
No related merge requests found
......@@ -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"
}
}
......@@ -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");
}
}
}
......@@ -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, '/');
}
}
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment