diff options
author | Sergio Bertolin <sbertolin@solidgear.es> | 2015-11-27 15:55:48 +0300 |
---|---|---|
committer | Sergio Bertolin <sbertolin@solidgear.es> | 2015-11-27 15:55:48 +0300 |
commit | b99bd7f4fce127e556532d5e0d289957d9548e83 (patch) | |
tree | 2292a9e876a19f4cd5c1027a877e0150b214ba59 /build | |
parent | 97229350433cd23e4bc5ece7e9242991582b87f8 (diff) |
Added sabre dav in webdav, modified skeleton to have parent and child folders
Diffstat (limited to 'build')
-rw-r--r-- | build/integration/composer.json | 3 | ||||
-rw-r--r-- | build/integration/features/bootstrap/BasicStructure.php | 18 | ||||
-rw-r--r-- | build/integration/features/bootstrap/WebDav.php | 50 | ||||
-rw-r--r-- | build/integration/features/sharing-v1.feature | 12 |
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 |