Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
authorSergio Bertolin <sbertolin@solidgear.es>2015-11-27 15:55:48 +0300
committerSergio Bertolin <sbertolin@solidgear.es>2015-11-27 15:55:48 +0300
commitb99bd7f4fce127e556532d5e0d289957d9548e83 (patch)
tree2292a9e876a19f4cd5c1027a877e0150b214ba59 /build
parent97229350433cd23e4bc5ece7e9242991582b87f8 (diff)
Added sabre dav in webdav, modified skeleton to have parent and child folders
Diffstat (limited to 'build')
-rw-r--r--build/integration/composer.json3
-rw-r--r--build/integration/features/bootstrap/BasicStructure.php18
-rw-r--r--build/integration/features/bootstrap/WebDav.php50
-rw-r--r--build/integration/features/sharing-v1.feature12
4 files changed, 77 insertions, 6 deletions
diff --git a/build/integration/composer.json b/build/integration/composer.json
index 2f0f8a815ce..a9516391a41 100644
--- a/build/integration/composer.json
+++ b/build/integration/composer.json
@@ -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"
}
}
diff --git a/build/integration/features/bootstrap/BasicStructure.php b/build/integration/features/bootstrap/BasicStructure.php
index 01a288a6c6a..bf3b1d50814 100644
--- a/build/integration/features/bootstrap/BasicStructure.php
+++ b/build/integration/features/bootstrap/BasicStructure.php
@@ -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");
+ }
+
+
}
}
diff --git a/build/integration/features/bootstrap/WebDav.php b/build/integration/features/bootstrap/WebDav.php
index 1bda8175eeb..f38c7bec754 100644
--- a/build/integration/features/bootstrap/WebDav.php
+++ b/build/integration/features/bootstrap/WebDav.php
@@ -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, '/');
+ }
+
+
}
diff --git a/build/integration/features/sharing-v1.feature b/build/integration/features/sharing-v1.feature
index 32bb943d2d7..fc2da430663 100644
--- a/build/integration/features/sharing-v1.feature
+++ b/build/integration/features/sharing-v1.feature
@@ -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