Merge pull request #1525 from nextcloud/newdav-tagsplugin
Newdav tagsplugin
This commit is contained in:
commit
f6e8da186d
3 changed files with 55 additions and 10 deletions
|
@ -47,6 +47,7 @@ use OCP\IRequest;
|
|||
use OCP\SabrePluginEvent;
|
||||
use Sabre\CardDAV\VCFExportPlugin;
|
||||
use Sabre\DAV\Auth\Plugin;
|
||||
use OCA\DAV\Connector\Sabre\TagsPlugin;
|
||||
|
||||
class Server {
|
||||
|
||||
|
@ -190,6 +191,11 @@ class Server {
|
|||
$this->server->addPlugin(
|
||||
new QuotaPlugin($view)
|
||||
);
|
||||
$this->server->addPlugin(
|
||||
new TagsPlugin(
|
||||
$this->server->tree, \OC::$server->getTagManager()
|
||||
)
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -53,9 +53,9 @@ trait WebDav {
|
|||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getFilesPath() {
|
||||
if ($this->davPath === 'remote.php/dav') {
|
||||
$basePath = '/files/' . $this->currentUser . '/';
|
||||
public function getFilesPath($user) {
|
||||
if ($this->davPath === "remote.php/dav") {
|
||||
$basePath = '/files/' . $user . '/';
|
||||
} else {
|
||||
$basePath = '/';
|
||||
}
|
||||
|
@ -262,12 +262,13 @@ trait WebDav {
|
|||
/**
|
||||
* @Then /^as "([^"]*)" the (file|folder|entry) "([^"]*)" does not exist$/
|
||||
* @param string $user
|
||||
* @param string $entry
|
||||
* @param string $path
|
||||
* @param \Behat\Gherkin\Node\TableNode|null $propertiesTable
|
||||
*/
|
||||
public function asTheFileOrFolderDoesNotExist($user, $entry, $path) {
|
||||
$client = $this->getSabreClient($user);
|
||||
$response = $client->request('HEAD', $this->makeSabrePath($path));
|
||||
$response = $client->request('HEAD', $this->makeSabrePath($user, $path));
|
||||
if ($response['statusCode'] !== 404) {
|
||||
throw new \Exception($entry . ' "' . $path . '" expected to not exist (status code ' . $response['statusCode'] . ', expected 404)');
|
||||
}
|
||||
|
@ -278,8 +279,8 @@ trait WebDav {
|
|||
/**
|
||||
* @Then /^as "([^"]*)" the (file|folder|entry) "([^"]*)" exists$/
|
||||
* @param string $user
|
||||
* @param string $entry
|
||||
* @param string $path
|
||||
* @param \Behat\Gherkin\Node\TableNode|null $propertiesTable
|
||||
*/
|
||||
public function asTheFileOrFolderExists($user, $entry, $path) {
|
||||
$this->response = $this->listFolder($user, $path, 0);
|
||||
|
@ -362,13 +363,13 @@ trait WebDav {
|
|||
];
|
||||
}
|
||||
|
||||
$response = $client->propfind($this->makeSabrePath($path), $properties, $folderDepth);
|
||||
$response = $client->propfind($this->makeSabrePath($user, $path), $properties, $folderDepth);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function makeSabrePath($path) {
|
||||
return $this->encodePath($this->davPath . '/' . ltrim($path, '/'));
|
||||
public function makeSabrePath($user, $path) {
|
||||
return $this->encodePath($this->davPath . $this->getFilesPath($user) . ltrim($path, '/'));
|
||||
}
|
||||
|
||||
public function getSabreClient($user) {
|
||||
|
@ -474,7 +475,7 @@ trait WebDav {
|
|||
*/
|
||||
public function userCreatedAFolder($user, $destination) {
|
||||
try {
|
||||
$this->response = $this->makeDavRequest($user, "MKCOL", $this->getFilesPath() . ltrim($destination, $this->getFilesPath()), []);
|
||||
$this->response = $this->makeDavRequest($user, "MKCOL", $this->getFilesPath($user) . ltrim($destination, $this->getFilesPath($user)), []);
|
||||
} catch (\GuzzleHttp\Exception\ServerException $e) {
|
||||
// 4xx and 5xx responses cause an exception
|
||||
$this->response = $e->getResponse();
|
||||
|
@ -584,7 +585,7 @@ trait WebDav {
|
|||
];
|
||||
}
|
||||
|
||||
$response = $client->proppatch($this->davPath . '/' . ltrim($path, '/'), $properties, $folderDepth);
|
||||
$response = $client->proppatch($this->davPath . $this->getFilesPath($user) . ltrim($path, '/'), $properties, $folderDepth);
|
||||
return $response;
|
||||
}
|
||||
|
||||
|
|
|
@ -40,3 +40,41 @@ Feature: favorite
|
|||
|{http://owncloud.org/ns}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"
|
||||
And As an "admin"
|
||||
And user "user0" exists
|
||||
When user "user0" favorites element "/FOLDER"
|
||||
Then as "user0" gets properties of folder "/FOLDER" with
|
||||
|{http://owncloud.org/ns}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"
|
||||
And As an "admin"
|
||||
And user "user0" exists
|
||||
When user "user0" favorites element "/FOLDER"
|
||||
And user "user0" unfavorites element "/FOLDER"
|
||||
Then as "user0" gets properties of folder "/FOLDER" with
|
||||
|{http://owncloud.org/ns}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"
|
||||
And As an "admin"
|
||||
And user "user0" exists
|
||||
When user "user0" favorites element "/textfile0.txt"
|
||||
Then as "user0" gets properties of file "/textfile0.txt" with
|
||||
|{http://owncloud.org/ns}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"
|
||||
And As an "admin"
|
||||
And user "user0" exists
|
||||
When user "user0" favorites element "/textfile0.txt"
|
||||
And user "user0" unfavorites element "/textfile0.txt"
|
||||
Then as "user0" gets properties of file "/textfile0.txt" with
|
||||
|{http://owncloud.org/ns}favorite|
|
||||
And the single response should contain a property "{http://owncloud.org/ns}favorite" with value ""
|
||||
|
||||
|
|
Loading…
Reference in a new issue