aboutsummaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
authorSergio Bertolin <sbertolin@solidgear.es>2016-09-27 11:09:55 +0000
committerMorris Jobke <hey@morrisjobke.de>2016-11-02 22:49:44 +0100
commita642a40f3fb0a1d90df99578e78091dc7bf668ad (patch)
treec2b9dcb886e1361a525f12723b0d4e42a0368624 /build
parent39573e602d5e38e4b71b3d197d08798dd9558659 (diff)
downloadnextcloud-server-a642a40f3fb0a1d90df99578e78091dc7bf668ad.tar.gz
nextcloud-server-a642a40f3fb0a1d90df99578e78091dc7bf668ad.zip
Adapted favorites and dav2 features
Adapted sharing and external features, random failures in sharing:857 Added weddav related feature Removed forgotten leftovers
Diffstat (limited to 'build')
-rw-r--r--build/integration/features/bootstrap/WebDav.php66
-rw-r--r--build/integration/features/dav-v2.feature20
-rw-r--r--build/integration/features/external-storage.feature2
-rw-r--r--build/integration/features/favorites.feature16
-rw-r--r--build/integration/features/sharing-v1.feature134
-rw-r--r--build/integration/features/webdav-related.feature137
6 files changed, 248 insertions, 127 deletions
diff --git a/build/integration/features/bootstrap/WebDav.php b/build/integration/features/bootstrap/WebDav.php
index 69962a7282d..013afae4d5a 100644
--- a/build/integration/features/bootstrap/WebDav.php
+++ b/build/integration/features/bootstrap/WebDav.php
@@ -40,6 +40,8 @@ trait WebDav {
/** @var string*/
private $davPath = "remote.php/webdav";
+ /** @var boolean*/
+ private $usingOldDavPath = true;
/** @var ResponseInterface */
private $response;
/** @var map with user as key and another map as value, which has path as key and etag as value */
@@ -53,19 +55,35 @@ trait WebDav {
}
/**
- * @return string
+ * @Given /^using old dav path$/
*/
- public function getFilesPath($user) {
- if ($this->davPath === "remote.php/dav") {
- $basePath = '/files/' . $user . '/';
+ public function usingOldDavPath() {
+ $this->davPath = "remote.php/webdav";
+ $this->usingOldDavPath = true;
+ }
+
+ /**
+ * @Given /^using new dav path$/
+ */
+ public function usingNewDavPath() {
+ $this->davPath = "remote.php/dav";
+ $this->usingOldDavPath = false;
+ }
+
+ public function getDavFilesPath($user){
+ if ($this->usingOldDavPath === true){
+ return $this->davPath;
} else {
- $basePath = '/';
+ return $this->davPath . '/files/' . $user;
}
- return $basePath;
}
- public function makeDavRequest($user, $method, $path, $headers, $body = null){
- $fullUrl = substr($this->baseUrl, 0, -4) . $this->davPath . "$path";
+ public function makeDavRequest($user, $method, $path, $headers, $body = null, $type = "files"){
+ if ( $type === "files" ){
+ $fullUrl = substr($this->baseUrl, 0, -4) . $this->getDavFilesPath($user) . "$path";
+ } else if ( $type === "uploads" ){
+ $fullUrl = substr($this->baseUrl, 0, -4) . $this->davPath . "$path";
+ }
$client = new GClient();
$options = [];
if ($user === 'admin') {
@@ -95,7 +113,7 @@ trait WebDav {
* @param string $fileDestination
*/
public function userMovedFile($user, $entry, $fileSource, $fileDestination){
- $fullUrl = substr($this->baseUrl, 0, -4) . $this->davPath;
+ $fullUrl = substr($this->baseUrl, 0, -4) . $this->getDavFilesPath($user);
$headers['Destination'] = $fullUrl . $fileDestination;
$this->response = $this->makeDavRequest($user, "MOVE", $fileSource, $headers);
PHPUnit_Framework_Assert::assertEquals(201, $this->response->getStatusCode());
@@ -108,7 +126,7 @@ trait WebDav {
* @param string $fileDestination
*/
public function userMovesFile($user, $entry, $fileSource, $fileDestination){
- $fullUrl = substr($this->baseUrl, 0, -4) . $this->davPath;
+ $fullUrl = substr($this->baseUrl, 0, -4) . $this->getDavFilesPath($user);
$headers['Destination'] = $fullUrl . $fileDestination;
$this->response = $this->makeDavRequest($user, "MOVE", $fileSource, $headers);
}
@@ -120,7 +138,7 @@ trait WebDav {
* @param string $fileDestination
*/
public function userCopiesFileTo($user, $fileSource, $fileDestination) {
- $fullUrl = substr($this->baseUrl, 0, -4) . $this->davPath;
+ $fullUrl = substr($this->baseUrl, 0, -4) . $this->getDavFilesPath($user);
$headers['Destination'] = $fullUrl . $fileDestination;
try {
$this->response = $this->makeDavRequest($user, 'COPY', $fileSource, $headers);
@@ -246,7 +264,7 @@ trait WebDav {
}
/**
- * @Then /^as "([^"]*)" gets properties of folder "([^"]*)" with$/
+ * @Then /^as "([^"]*)" gets properties of (file|folder|entry) "([^"]*)" with$/
* @param string $user
* @param string $path
* @param \Behat\Gherkin\Node\TableNode|null $propertiesTable
@@ -371,7 +389,7 @@ trait WebDav {
}
public function makeSabrePath($user, $path) {
- return $this->encodePath($this->davPath . $this->getFilesPath($user) . ltrim($path, '/'));
+ return $this->encodePath($this->getDavFilesPath($user) . $path);
}
public function getSabreClient($user) {
@@ -402,7 +420,7 @@ trait WebDav {
$elementRows = $expectedElements->getRows();
$elementsSimplified = $this->simplifyArray($elementRows);
foreach($elementsSimplified as $expectedElement) {
- $webdavPath = "/" . $this->davPath . $expectedElement;
+ $webdavPath = "/" . $this->getDavFilesPath($user) . $expectedElement;
if (!array_key_exists($webdavPath,$elementList)){
PHPUnit_Framework_Assert::fail("$webdavPath" . " is not in propfind answer");
}
@@ -478,7 +496,7 @@ trait WebDav {
*/
public function userCreatedAFolder($user, $destination) {
try {
- $this->response = $this->makeDavRequest($user, "MKCOL", $this->getFilesPath($user) . ltrim($destination, $this->getFilesPath($user)), []);
+ $this->response = $this->makeDavRequest($user, "MKCOL", $destination, []);
} catch (\GuzzleHttp\Exception\ServerException $e) {
// 4xx and 5xx responses cause an exception
$this->response = $e->getResponse();
@@ -497,8 +515,8 @@ trait WebDav {
{
$num -= 1;
$data = \GuzzleHttp\Stream\Stream::factory($data);
- $file = $destination . '-chunking-42-'.$total.'-'.$num;
- $this->makeDavRequest($user, 'PUT', $file, ['OC-Chunked' => '1'], $data);
+ $file = $destination . '-chunking-42-' . $total . '-' . $num;
+ $this->makeDavRequest($user, 'PUT', $file, ['OC-Chunked' => '1'], $data, "uploads");
}
/**
@@ -507,7 +525,7 @@ trait WebDav {
public function userCreatesANewChunkingUploadWithId($user, $id)
{
$destination = '/uploads/'.$user.'/'.$id;
- $this->makeDavRequest($user, 'MKCOL', $destination, []);
+ $this->makeDavRequest($user, 'MKCOL', $destination, [], null, "uploads");
}
/**
@@ -516,8 +534,8 @@ trait WebDav {
public function userUploadsNewChunkFileOfWithToId($user, $num, $data, $id)
{
$data = \GuzzleHttp\Stream\Stream::factory($data);
- $destination = '/uploads/'.$user.'/'.$id.'/'.$num;
- $this->makeDavRequest($user, 'PUT', $destination, [], $data);
+ $destination = '/uploads/'. $user .'/'. $id .'/' . $num;
+ $this->makeDavRequest($user, 'PUT', $destination, [], $data, "uploads");
}
/**
@@ -525,11 +543,11 @@ trait WebDav {
*/
public function userMovesNewChunkFileWithIdToMychunkedfile($user, $id, $dest)
{
- $source = '/uploads/'.$user.'/'.$id.'/.file';
- $destination = substr($this->baseUrl, 0, -4) . $this->davPath . '/files/'.$user.$dest;
+ $source = '/uploads/' . $user . '/' . $id . '/.file';
+ $destination = substr($this->baseUrl, 0, -4) . $this->getDavFilesPath($user) . $dest;
$this->makeDavRequest($user, 'MOVE', $source, [
'Destination' => $destination
- ]);
+ ], null, "uploads");
}
@@ -588,7 +606,7 @@ trait WebDav {
];
}
- $response = $client->proppatch($this->davPath . $this->getFilesPath($user) . ltrim($path, '/'), $properties, $folderDepth);
+ $response = $client->proppatch($this->getDavFilesPath($user) . $path, $properties, $folderDepth);
return $response;
}
diff --git a/build/integration/features/dav-v2.feature b/build/integration/features/dav-v2.feature
index 85405cbf93e..3e85dc749d0 100644
--- a/build/integration/features/dav-v2.feature
+++ b/build/integration/features/dav-v2.feature
@@ -3,24 +3,24 @@ Feature: dav-v2
Given using api version "1"
Scenario: moving a file new endpoint way
- Given using dav path "remote.php/dav"
+ Given using new dav path
And As an "admin"
And user "user0" exists
- When User "user0" moves file "/files/user0/textfile0.txt" to "/files/user0/FOLDER/textfile0.txt"
+ When User "user0" moves file "/textfile0.txt" to "/FOLDER/textfile0.txt"
Then the HTTP status code should be "201"
Scenario: download a file with range using new endpoint
- Given using dav path "remote.php/dav"
+ Given using new dav path
And As an "admin"
And user "user0" exists
And As an "user0"
- When Downloading file "/files/user0/welcome.txt" with range "bytes=52-78"
+ When Downloading file "/welcome.txt" with range "bytes=52-78"
Then Downloaded content should be "example file for developers"
Scenario: Downloading a file on the new endpoint should serve security headers
- Given using dav path "remote.php/dav/files/admin/"
+ Given using new dav path
And As an "admin"
- When Downloading file "welcome.txt"
+ When Downloading file "/welcome.txt"
Then The following headers should be set
|Content-Disposition|attachment; filename*=UTF-8''welcome.txt; filename="welcome.txt"|
|Content-Security-Policy|default-src 'none';|
@@ -55,16 +55,16 @@ Feature: dav-v2
Then the HTTP status code should be "207"
Scenario: Uploading a file having 0B as quota
- Given using dav path "remote.php/dav"
+ Given using new dav path
And As an "admin"
And user "user0" exists
And user "user0" has a quota of "0 B"
And As an "user0"
- When User "user0" uploads file "data/textfile.txt" to "/files/user0/asdf.txt"
+ When User "user0" uploads file "data/textfile.txt" to "/asdf.txt"
Then the HTTP status code should be "507"
Scenario: Uploading a file as recipient using webdav new endpoint having quota
- Given using dav path "remote.php/dav"
+ Given using new dav path
And As an "admin"
And user "user0" exists
And user "user1" exists
@@ -78,5 +78,5 @@ Feature: dav-v2
| permissions | 31 |
| shareWith | user0 |
And As an "user0"
- When User "user0" uploads file "data/textfile.txt" to "/files/user0/testquota/asdf.txt"
+ When User "user0" uploads file "data/textfile.txt" to "/testquota/asdf.txt"
Then the HTTP status code should be "201"
diff --git a/build/integration/features/external-storage.feature b/build/integration/features/external-storage.feature
index 9e53b01346e..7fbdf828fb8 100644
--- a/build/integration/features/external-storage.feature
+++ b/build/integration/features/external-storage.feature
@@ -1,7 +1,7 @@
Feature: external-storage
Background:
Given using api version "1"
- Given using dav path "remote.php/webdav"
+ Given using old dav path
@local_storage
Scenario: Share by link a file inside a local external storage
diff --git a/build/integration/features/favorites.feature b/build/integration/features/favorites.feature
index baf4eadb166..5e31e1902f8 100644
--- a/build/integration/features/favorites.feature
+++ b/build/integration/features/favorites.feature
@@ -3,7 +3,7 @@ Feature: favorite
Given using api version "1"
Scenario: Favorite a folder
- Given using dav path "remote.php/webdav"
+ Given using old dav path
And As an "admin"
And user "user0" exists
When user "user0" favorites element "/FOLDER"
@@ -12,7 +12,7 @@ Feature: favorite
And the single response should contain a property "{http://owncloud.org/ns}favorite" with value "1"
Scenario: Favorite and unfavorite a folder
- Given using dav path "remote.php/webdav"
+ Given using old dav path
And As an "admin"
And user "user0" exists
When user "user0" favorites element "/FOLDER"
@@ -22,7 +22,7 @@ Feature: favorite
And the single response should contain a property "{http://owncloud.org/ns}favorite" with value ""
Scenario: Favorite a file
- Given using dav path "remote.php/webdav"
+ Given using old dav path
And As an "admin"
And user "user0" exists
When user "user0" favorites element "/textfile0.txt"
@@ -31,7 +31,7 @@ Feature: favorite
And the single response should contain a property "{http://owncloud.org/ns}favorite" with value "1"
Scenario: Favorite and unfavorite a file
- Given using dav path "remote.php/webdav"
+ Given using old dav path
And As an "admin"
And user "user0" exists
When user "user0" favorites element "/textfile0.txt"
@@ -41,7 +41,7 @@ Feature: favorite
And the single response should contain a property "{http://owncloud.org/ns}favorite" with value ""
Scenario: Favorite a folder new endpoint
- Given using dav path "remote.php/dav"
+ Given using new dav path
And As an "admin"
And user "user0" exists
When user "user0" favorites element "/FOLDER"
@@ -50,7 +50,7 @@ Feature: favorite
And the single response should contain a property "{http://owncloud.org/ns}favorite" with value "1"
Scenario: Favorite and unfavorite a folder new endpoint
- Given using dav path "remote.php/dav"
+ Given using new dav path
And As an "admin"
And user "user0" exists
When user "user0" favorites element "/FOLDER"
@@ -60,7 +60,7 @@ Feature: favorite
And the single response should contain a property "{http://owncloud.org/ns}favorite" with value ""
Scenario: Favorite a file new endpoint
- Given using dav path "remote.php/dav"
+ Given using new dav path
And As an "admin"
And user "user0" exists
When user "user0" favorites element "/textfile0.txt"
@@ -69,7 +69,7 @@ Feature: favorite
And the single response should contain a property "{http://owncloud.org/ns}favorite" with value "1"
Scenario: Favorite and unfavorite a file new endpoint
- Given using dav path "remote.php/dav"
+ Given using new dav path
And As an "admin"
And user "user0" exists
When user "user0" favorites element "/textfile0.txt"
diff --git a/build/integration/features/sharing-v1.feature b/build/integration/features/sharing-v1.feature
index 4d913876cc5..497d8554bc4 100644
--- a/build/integration/features/sharing-v1.feature
+++ b/build/integration/features/sharing-v1.feature
@@ -1,7 +1,7 @@
Feature: sharing
Background:
Given using api version "1"
- Given using dav path "remote.php/webdav"
+ Given using old dav path
Scenario: Creating a new share with user
Given user "user0" exists
@@ -570,7 +570,7 @@ Feature: sharing
| /myFOLDER/myTMP/ |
Scenario: Check quota of owners parent directory of a shared file
- Given using dav path "remote.php/webdav"
+ Given using old dav path
And As an "admin"
And user "user0" exists
And user "user1" exists
@@ -644,7 +644,7 @@ Feature: sharing
Given user "user0" exists
And user "user1" exists
And User "user0" uploads file with content "foo" to "/tmp.txt"
- And file "tmp.txt" of user "user0" is shared with user "user1"
+ And file "/tmp.txt" of user "user0" is shared with user "user1"
When as "user1" gets properties of folder "/tmp.txt" with
|{http://open-collaboration-services.org/ns}share-permissions |
Then the single response should contain a property "{http://open-collaboration-services.org/ns}share-permissions" with value "19"
@@ -779,16 +779,17 @@ Feature: sharing
And the HTTP status code should be "200"
Scenario: Merging shares for recipient when shared from outside with group and member
- Given As an "admin"
+ Given using old dav path
+ And As an "admin"
And user "user0" exists
And user "user1" exists
And group "group1" exists
And user "user1" belongs to group "group1"
- And user "user0" created a folder "merge-test-outside"
- When folder "merge-test-outside" of user "user0" is shared with group "group1"
- And folder "merge-test-outside" of user "user0" is shared with user "user1"
- Then as "user1" the folder "merge-test-outside" exists
- And as "user1" the folder "merge-test-outside (2)" does not exist
+ And user "user0" created a folder "/merge-test-outside"
+ When folder "/merge-test-outside" of user "user0" is shared with group "group1"
+ And folder "/merge-test-outside" of user "user0" is shared with user "user1"
+ Then as "user1" the folder "/merge-test-outside" exists
+ And as "user1" the folder "/merge-test-outside (2)" does not exist
Scenario: Merging shares for recipient when shared from outside with group and member with different permissions
Given As an "admin"
@@ -796,13 +797,13 @@ Feature: sharing
And user "user1" exists
And group "group1" exists
And user "user1" belongs to group "group1"
- And user "user0" created a folder "merge-test-outside-perms"
- When folder "merge-test-outside-perms" of user "user0" is shared with group "group1" with permissions 1
- And folder "merge-test-outside-perms" of user "user0" is shared with user "user1" with permissions 31
- Then as "user1" gets properties of folder "merge-test-outside-perms" with
+ And user "user0" created a folder "/merge-test-outside-perms"
+ When folder "/merge-test-outside-perms" of user "user0" is shared with group "group1" with permissions 1
+ And folder "/merge-test-outside-perms" of user "user0" is shared with user "user1" with permissions 31
+ Then as "user1" gets properties of folder "/merge-test-outside-perms" with
|{http://owncloud.org/ns}permissions|
And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRDNVCK"
- And as "user1" the folder "merge-test-outside-perms (2)" does not exist
+ And as "user1" the folder "/merge-test-outside-perms (2)" does not exist
Scenario: Merging shares for recipient when shared from outside with two groups
Given As an "admin"
@@ -812,11 +813,11 @@ Feature: sharing
And group "group2" exists
And user "user1" belongs to group "group1"
And user "user1" belongs to group "group2"
- And user "user0" created a folder "merge-test-outside-twogroups"
- When folder "merge-test-outside-twogroups" of user "user0" is shared with group "group1"
- And folder "merge-test-outside-twogroups" of user "user0" is shared with group "group2"
- Then as "user1" the folder "merge-test-outside-twogroups" exists
- And as "user1" the folder "merge-test-outside-twogroups (2)" does not exist
+ And user "user0" created a folder "/merge-test-outside-twogroups"
+ When folder "/merge-test-outside-twogroups" of user "user0" is shared with group "group1"
+ And folder "/merge-test-outside-twogroups" of user "user0" is shared with group "group2"
+ Then as "user1" the folder "/merge-test-outside-twogroups" exists
+ And as "user1" the folder "/merge-test-outside-twogroups (2)" does not exist
Scenario: Merging shares for recipient when shared from outside with two groups with different permissions
Given As an "admin"
@@ -826,13 +827,13 @@ Feature: sharing
And group "group2" exists
And user "user1" belongs to group "group1"
And user "user1" belongs to group "group2"
- And user "user0" created a folder "merge-test-outside-twogroups-perms"
- When folder "merge-test-outside-twogroups-perms" of user "user0" is shared with group "group1" with permissions 1
- And folder "merge-test-outside-twogroups-perms" of user "user0" is shared with group "group2" with permissions 31
- Then as "user1" gets properties of folder "merge-test-outside-twogroups-perms" with
+ And user "user0" created a folder "/merge-test-outside-twogroups-perms"
+ When folder "/merge-test-outside-twogroups-perms" of user "user0" is shared with group "group1" with permissions 1
+ And folder "/merge-test-outside-twogroups-perms" of user "user0" is shared with group "group2" with permissions 31
+ Then as "user1" gets properties of folder "/merge-test-outside-twogroups-perms" with
|{http://owncloud.org/ns}permissions|
And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRDNVCK"
- And as "user1" the folder "merge-test-outside-twogroups-perms (2)" does not exist
+ And as "user1" the folder "/merge-test-outside-twogroups-perms (2)" does not exist
Scenario: Merging shares for recipient when shared from outside with two groups and member
Given As an "admin"
@@ -842,24 +843,24 @@ Feature: sharing
And group "group2" exists
And user "user1" belongs to group "group1"
And user "user1" belongs to group "group2"
- And user "user0" created a folder "merge-test-outside-twogroups-member-perms"
- When folder "merge-test-outside-twogroups-member-perms" of user "user0" is shared with group "group1" with permissions 1
- And folder "merge-test-outside-twogroups-member-perms" of user "user0" is shared with group "group2" with permissions 31
- And folder "merge-test-outside-twogroups-member-perms" of user "user0" is shared with user "user1" with permissions 1
- Then as "user1" gets properties of folder "merge-test-outside-twogroups-member-perms" with
+ And user "user0" created a folder "/merge-test-outside-twogroups-member-perms"
+ When folder "/merge-test-outside-twogroups-member-perms" of user "user0" is shared with group "group1" with permissions 1
+ And folder "/merge-test-outside-twogroups-member-perms" of user "user0" is shared with group "group2" with permissions 31
+ And folder "/merge-test-outside-twogroups-member-perms" of user "user0" is shared with user "user1" with permissions 1
+ Then as "user1" gets properties of folder "/merge-test-outside-twogroups-member-perms" with
|{http://owncloud.org/ns}permissions|
And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRDNVCK"
- And as "user1" the folder "merge-test-outside-twogroups-member-perms (2)" does not exist
+ And as "user1" the folder "/merge-test-outside-twogroups-member-perms (2)" does not exist
Scenario: Merging shares for recipient when shared from inside with group
Given As an "admin"
And user "user0" exists
And group "group1" exists
And user "user0" belongs to group "group1"
- And user "user0" created a folder "merge-test-inside-group"
+ And user "user0" created a folder "/merge-test-inside-group"
When folder "/merge-test-inside-group" of user "user0" is shared with group "group1"
- Then as "user0" the folder "merge-test-inside-group" exists
- And as "user0" the folder "merge-test-inside-group (2)" does not exist
+ Then as "user0" the folder "/merge-test-inside-group" exists
+ And as "user0" the folder "/merge-test-inside-group (2)" does not exist
Scenario: Merging shares for recipient when shared from inside with two groups
Given As an "admin"
@@ -868,12 +869,12 @@ Feature: sharing
And group "group2" exists
And user "user0" belongs to group "group1"
And user "user0" belongs to group "group2"
- And user "user0" created a folder "merge-test-inside-twogroups"
- When folder "merge-test-inside-twogroups" of user "user0" is shared with group "group1"
- And folder "merge-test-inside-twogroups" of user "user0" is shared with group "group2"
- Then as "user0" the folder "merge-test-inside-twogroups" exists
- And as "user0" the folder "merge-test-inside-twogroups (2)" does not exist
- And as "user0" the folder "merge-test-inside-twogroups (3)" does not exist
+ And user "user0" created a folder "/merge-test-inside-twogroups"
+ When folder "/merge-test-inside-twogroups" of user "user0" is shared with group "group1"
+ And folder "/merge-test-inside-twogroups" of user "user0" is shared with group "group2"
+ Then as "user0" the folder "/merge-test-inside-twogroups" exists
+ And as "user0" the folder "/merge-test-inside-twogroups (2)" does not exist
+ And as "user0" the folder "/merge-test-inside-twogroups (3)" does not exist
Scenario: Merging shares for recipient when shared from inside with group with less permissions
Given As an "admin"
@@ -882,14 +883,14 @@ Feature: sharing
And group "group2" exists
And user "user0" belongs to group "group1"
And user "user0" belongs to group "group2"
- And user "user0" created a folder "merge-test-inside-twogroups-perms"
- When folder "merge-test-inside-twogroups-perms" of user "user0" is shared with group "group1"
- And folder "merge-test-inside-twogroups-perms" of user "user0" is shared with group "group2"
- Then as "user0" gets properties of folder "merge-test-inside-twogroups-perms" with
+ And user "user0" created a folder "/merge-test-inside-twogroups-perms"
+ When folder "/merge-test-inside-twogroups-perms" of user "user0" is shared with group "group1"
+ And folder "/merge-test-inside-twogroups-perms" of user "user0" is shared with group "group2"
+ Then as "user0" gets properties of folder "/merge-test-inside-twogroups-perms" with
|{http://owncloud.org/ns}permissions|
And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "RDNVCK"
- And as "user0" the folder "merge-test-inside-twogroups-perms (2)" does not exist
- And as "user0" the folder "merge-test-inside-twogroups-perms (3)" does not exist
+ And as "user0" the folder "/merge-test-inside-twogroups-perms (2)" does not exist
+ And as "user0" the folder "/merge-test-inside-twogroups-perms (3)" does not exist
Scenario: Merging shares for recipient when shared from outside with group then user and recipient renames in between
Given As an "admin"
@@ -897,29 +898,30 @@ Feature: sharing
And user "user1" exists
And group "group1" exists
And user "user1" belongs to group "group1"
- And user "user0" created a folder "merge-test-outside-groups-renamebeforesecondshare"
- When folder "merge-test-outside-groups-renamebeforesecondshare" of user "user0" is shared with group "group1"
+ And user "user0" created a folder "/merge-test-outside-groups-renamebeforesecondshare"
+ When folder "/merge-test-outside-groups-renamebeforesecondshare" of user "user0" is shared with group "group1"
+ And User "user1" moved folder "/merge-test-outside-groups-renamebeforesecondshare" to "/merge-test-outside-groups-renamebeforesecondshare-renamed"
+ And folder "/merge-test-outside-groups-renamebeforesecondshare" of user "user0" is shared with user "user1"
+ Then as "user1" gets properties of folder "/merge-test-outside-groups-renamebeforesecondshare-renamed" with
+ |{http://owncloud.org/ns}permissions|
+ And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRDNVCK"
+ And as "user1" the folder "/merge-test-outside-groups-renamebeforesecondshare" does not exist
+
+ Scenario: Merging shares for recipient when shared from outside with user then group and recipient renames in between
+ Given using old dav path
+ Given As an "admin"
+ And user "user0" exists
+ And user "user1" exists
+ And group "group1" exists
+ And user "user1" belongs to group "group1"
+ And user "user0" created a folder "/merge-test-outside-groups-renamebeforesecondshare"
+ When folder "/merge-test-outside-groups-renamebeforesecondshare" of user "user0" is shared with user "user1"
And User "user1" moved folder "/merge-test-outside-groups-renamebeforesecondshare" to "/merge-test-outside-groups-renamebeforesecondshare-renamed"
- And folder "merge-test-outside-groups-renamebeforesecondshare" of user "user0" is shared with user "user1"
- Then as "user1" gets properties of folder "merge-test-outside-groups-renamebeforesecondshare-renamed" with
+ And folder "/merge-test-outside-groups-renamebeforesecondshare" of user "user0" is shared with group "group1"
+ Then as "user1" gets properties of folder "/merge-test-outside-groups-renamebeforesecondshare-renamed" with
|{http://owncloud.org/ns}permissions|
And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRDNVCK"
- And as "user1" the folder "merge-test-outside-groups-renamebeforesecondshare" does not exist
-
-# Scenario: Merging shares for recipient when shared from outside with user then group and recipient renames in between
-# Given As an "admin"
-# And user "user0" exists
-# And user "user1" exists
-# And group "group1" exists
-# And user "user1" belongs to group "group1"
-# And user "user0" created a folder "merge-test-outside-groups-renamebeforesecondshare"
-# When folder "merge-test-outside-groups-renamebeforesecondshare" of user "user0" is shared with user "user1"
-# And User "user1" moved folder "/merge-test-outside-groups-renamebeforesecondshare" to "/merge-test-outside-groups-renamebeforesecondshare-renamed"
-# And folder "merge-test-outside-groups-renamebeforesecondshare" of user "user0" is shared with group "group1"
-# Then as "user1" gets properties of folder "merge-test-outside-groups-renamebeforesecondshare-renamed" with
-# |{http://owncloud.org/ns}permissions|
-# And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRDNVCK"
-# And as "user1" the folder "merge-test-outside-groups-renamebeforesecondshare" does not exist
+ And as "user1" the folder "/merge-test-outside-groups-renamebeforesecondshare" does not exist
Scenario: Empting trashbin
Given As an "admin"
@@ -937,7 +939,7 @@ Feature: sharing
And file "/common/sub" of user "user0" is shared with user "user1"
And User "user0" deletes folder "/common"
When User "user0" empties trashbin
- Then as "user1" the folder "sub" does not exist
+ Then as "user1" the folder "/sub" does not exist
Scenario: sharing again an own file while belonging to a group
Given As an "admin"
diff --git a/build/integration/features/webdav-related.feature b/build/integration/features/webdav-related.feature
index 01d437f519f..d90eb038e0b 100644
--- a/build/integration/features/webdav-related.feature
+++ b/build/integration/features/webdav-related.feature
@@ -2,21 +2,122 @@ Feature: webdav-related
Background:
Given using api version "1"
- Scenario: moving a file old way
- Given using dav path "remote.php/webdav"
+ Scenario: Moving a file
+ Given using old dav path
And As an "admin"
And user "user0" exists
- When User "user0" moves file "/textfile0.txt" to "/FOLDER/textfile0.txt"
+ And As an "user0"
+ When User "user0" moves file "/welcome.txt" to "/FOLDER/welcome.txt"
Then the HTTP status code should be "201"
+ And Downloaded content when downloading file "/FOLDER/welcome.txt" with range "bytes=0-6" should be "Welcome"
+
+ Scenario: Moving and overwriting a file old way
+ Given using old dav path
+ And As an "admin"
+ And user "user0" exists
+ And As an "user0"
+ When User "user0" moves file "/welcome.txt" to "/textfile0.txt"
+ Then the HTTP status code should be "204"
+ And Downloaded content when downloading file "/textfile0.txt" with range "bytes=0-6" should be "Welcome"
+
+ Scenario: Moving a file to a folder with no permissions
+ Given using old dav path
+ And As an "admin"
+ And user "user0" exists
+ And user "user1" exists
+ And As an "user1"
+ And user "user1" created a folder "/testshare"
+ And as "user1" creating a share with
+ | path | testshare |
+ | shareType | 0 |
+ | permissions | 1 |
+ | shareWith | user0 |
+ And As an "user0"
+ And User "user0" moves file "/textfile0.txt" to "/testshare/textfile0.txt"
+ And the HTTP status code should be "403"
+ When Downloading file "/testshare/textfile0.txt"
+ Then the HTTP status code should be "404"
+
+ Scenario: Moving a file to overwrite a file in a folder with no permissions
+ Given using old dav path
+ And As an "admin"
+ And user "user0" exists
+ And user "user1" exists
+ And As an "user1"
+ And user "user1" created a folder "/testshare"
+ And as "user1" creating a share with
+ | path | testshare |
+ | shareType | 0 |
+ | permissions | 1 |
+ | shareWith | user0 |
+ And User "user1" copies file "/welcome.txt" to "/testshare/overwritethis.txt"
+ And As an "user0"
+ When User "user0" moves file "/textfile0.txt" to "/testshare/overwritethis.txt"
+ Then the HTTP status code should be "403"
+ And Downloaded content when downloading file "/testshare/overwritethis.txt" with range "bytes=0-6" should be "Welcome"
+
+ Scenario: Copying a file
+ Given using old dav path
+ And As an "admin"
+ And user "user0" exists
+ And As an "user0"
+ When User "user0" copies file "/welcome.txt" to "/FOLDER/welcome.txt"
+ Then the HTTP status code should be "201"
+ And Downloaded content when downloading file "/FOLDER/welcome.txt" with range "bytes=0-6" should be "Welcome"
+
+ Scenario: Copying and overwriting a file
+ Given using old dav path
+ And As an "admin"
+ And user "user0" exists
+ And As an "user0"
+ When User "user0" copies file "/welcome.txt" to "/textfile1.txt"
+ Then the HTTP status code should be "204"
+ And Downloaded content when downloading file "/textfile1.txt" with range "bytes=0-6" should be "Welcome"
+
+ Scenario: Copying a file to a folder with no permissions
+ Given using old dav path
+ And As an "admin"
+ And user "user0" exists
+ And user "user1" exists
+ And As an "user1"
+ And user "user1" created a folder "/testshare"
+ And as "user1" creating a share with
+ | path | testshare |
+ | shareType | 0 |
+ | permissions | 1 |
+ | shareWith | user0 |
+ And As an "user0"
+ When User "user0" copies file "/textfile0.txt" to "/testshare/textfile0.txt"
+ Then the HTTP status code should be "403"
+ And Downloading file "/testshare/textfile0.txt"
+ And the HTTP status code should be "404"
+
+ Scenario: Copying a file to overwrite a file into a folder with no permissions
+ Given using old dav path
+ And As an "admin"
+ And user "user0" exists
+ And user "user1" exists
+ And As an "user1"
+ And user "user1" created a folder "/testshare"
+ And as "user1" creating a share with
+ | path | testshare |
+ | shareType | 0 |
+ | permissions | 1 |
+ | shareWith | user0 |
+ And User "user1" copies file "/welcome.txt" to "/testshare/overwritethis.txt"
+ And As an "user0"
+ When User "user0" copies file "/textfile0.txt" to "/testshare/overwritethis.txt"
+ Then the HTTP status code should be "403"
+ And Downloaded content when downloading file "/testshare/overwritethis.txt" with range "bytes=0-6" should be "Welcome"
Scenario: download a file with range
- Given using dav path "remote.php/webdav"
+ Given using old dav path
And As an "admin"
When Downloading file "/welcome.txt" with range "bytes=52-78"
Then Downloaded content should be "example file for developers"
Scenario: Upload forbidden if quota is 0
- Given using dav path "remote.php/webdav"
+ Given using old dav path
And As an "admin"
And user "user0" exists
And user "user0" has a quota of "0"
@@ -24,7 +125,7 @@ Feature: webdav-related
Then the HTTP status code should be "507"
Scenario: Retrieving folder quota when no quota is set
- Given using dav path "remote.php/webdav"
+ Given using old dav path
And As an "admin"
And user "user0" exists
When user "user0" has unlimited quota
@@ -33,7 +134,7 @@ Feature: webdav-related
And the single response should contain a property "{DAV:}quota-available-bytes" with value "-3"
Scenario: Retrieving folder quota when quota is set
- Given using dav path "remote.php/webdav"
+ Given using old dav path
And As an "admin"
And user "user0" exists
When user "user0" has a quota of "10 MB"
@@ -42,7 +143,7 @@ Feature: webdav-related
And the single response should contain a property "{DAV:}quota-available-bytes" with value "10485421"
Scenario: Retrieving folder quota of shared folder with quota when no quota is set for recipient
- Given using dav path "remote.php/webdav"
+ Given using old dav path
And As an "admin"
And user "user0" exists
And user "user1" exists
@@ -60,7 +161,7 @@ Feature: webdav-related
And the single response should contain a property "{DAV:}quota-available-bytes" with value "10485421"
Scenario: Uploading a file as recipient using webdav having quota
- Given using dav path "remote.php/webdav"
+ Given using old dav path
And As an "admin"
And user "user0" exists
And user "user1" exists
@@ -78,7 +179,7 @@ Feature: webdav-related
Then the HTTP status code should be "201"
Scenario: Retrieving folder quota when quota is set and a file was uploaded
- Given using dav path "remote.php/webdav"
+ Given using old dav path
And As an "admin"
And user "user0" exists
And user "user0" has a quota of "1 KB"
@@ -88,7 +189,7 @@ Feature: webdav-related
Then the single response should contain a property "{DAV:}quota-available-bytes" with value "592"
Scenario: Retrieving folder quota when quota is set and a file was recieved
- Given using dav path "remote.php/webdav"
+ Given using old dav path
And As an "admin"
And user "user0" exists
And user "user1" exists
@@ -118,7 +219,7 @@ Feature: webdav-related
Then Downloaded content should be "extcloud"
Scenario: Downloading a file on the old endpoint should serve security headers
- Given using dav path "remote.php/webdav"
+ Given using old dav path
And As an "admin"
When Downloading file "/welcome.txt"
Then The following headers should be set
@@ -255,7 +356,7 @@ Feature: webdav-related
| 3 |
Scenario: Upload chunked file asc with new chunking
- Given using dav path "remote.php/dav"
+ Given using new dav path
And user "user0" exists
And user "user0" creates a new chunking upload with id "chunking-42"
And user "user0" uploads new chunk file "1" with "AAAAA" to id "chunking-42"
@@ -263,11 +364,11 @@ Feature: webdav-related
And user "user0" uploads new chunk file "3" with "CCCCC" to id "chunking-42"
And user "user0" moves new chunk file with id "chunking-42" to "/myChunkedFile.txt"
When As an "user0"
- And Downloading file "/files/user0/myChunkedFile.txt"
+ And Downloading file "/myChunkedFile.txt"
Then Downloaded content should be "AAAAABBBBBCCCCC"
Scenario: Upload chunked file desc with new chunking
- Given using dav path "remote.php/dav"
+ Given using new dav path
And user "user0" exists
And user "user0" creates a new chunking upload with id "chunking-42"
And user "user0" uploads new chunk file "3" with "CCCCC" to id "chunking-42"
@@ -275,11 +376,11 @@ Feature: webdav-related
And user "user0" uploads new chunk file "1" with "AAAAA" to id "chunking-42"
And user "user0" moves new chunk file with id "chunking-42" to "/myChunkedFile.txt"
When As an "user0"
- And Downloading file "/files/user0/myChunkedFile.txt"
+ And Downloading file "/myChunkedFile.txt"
Then Downloaded content should be "AAAAABBBBBCCCCC"
Scenario: Upload chunked file random with new chunking
- Given using dav path "remote.php/dav"
+ Given using new dav path
And user "user0" exists
And user "user0" creates a new chunking upload with id "chunking-42"
And user "user0" uploads new chunk file "2" with "BBBBB" to id "chunking-42"
@@ -287,7 +388,7 @@ Feature: webdav-related
And user "user0" uploads new chunk file "1" with "AAAAA" to id "chunking-42"
And user "user0" moves new chunk file with id "chunking-42" to "/myChunkedFile.txt"
When As an "user0"
- And Downloading file "/files/user0/myChunkedFile.txt"
+ And Downloading file "/myChunkedFile.txt"
Then Downloaded content should be "AAAAABBBBBCCCCC"
Scenario: A disabled user cannot use webdav