test: fix tests and issue tags
test: fix properties namespace
This commit is contained in:
@@ -146,7 +146,7 @@ class WebDavHelper {
|
|||||||
$property = $propertyParts[1];
|
$property = $propertyParts[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($namespacePrefix){
|
if ($namespacePrefix) {
|
||||||
$propertyBody .= "<$namespacePrefix:$property/>";
|
$propertyBody .= "<$namespacePrefix:$property/>";
|
||||||
} else {
|
} else {
|
||||||
$propertyBody .= "<$property/>";
|
$propertyBody .= "<$property/>";
|
||||||
@@ -418,7 +418,7 @@ class WebDavHelper {
|
|||||||
):ResponseInterface {
|
):ResponseInterface {
|
||||||
if (!$properties) {
|
if (!$properties) {
|
||||||
$properties = [
|
$properties = [
|
||||||
'getetag', 'resourcetype'
|
'd:getetag', 'd:resourcetype'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
return self::propfind(
|
return self::propfind(
|
||||||
@@ -940,7 +940,7 @@ class WebDavHelper {
|
|||||||
$user,
|
$user,
|
||||||
$password,
|
$password,
|
||||||
$resource,
|
$resource,
|
||||||
["getlastmodified"],
|
["d:getlastmodified"],
|
||||||
$xRequestId,
|
$xRequestId,
|
||||||
"0",
|
"0",
|
||||||
"files",
|
"files",
|
||||||
|
|||||||
@@ -8,16 +8,21 @@ Basic file management like up and download, move, copy, properties, trash, versi
|
|||||||
|
|
||||||
#### [COPY a folder to received share file/folder seems to work but no change in shares](https://github.com/owncloud/ocis/issues/6999)
|
#### [COPY a folder to received share file/folder seems to work but no change in shares](https://github.com/owncloud/ocis/issues/6999)
|
||||||
|
|
||||||
- [coreApiWebdavProperties/copyFile.feature:261](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L261)
|
- [coreApiWebdavProperties/copyFile.feature:284](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L284)
|
||||||
- [coreApiWebdavProperties/copyFile.feature:262](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L262)
|
- [coreApiWebdavProperties/copyFile.feature:285](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L285)
|
||||||
|
- [coreApiWebdavProperties/copyFile.feature:308](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L308)
|
||||||
|
- [coreApiWebdavProperties/copyFile.feature:309](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L309)
|
||||||
|
- [coreApiWebdavProperties/copyFile.feature:482](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L482)
|
||||||
|
- [coreApiWebdavProperties/copyFile.feature:483](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L483)
|
||||||
|
- [coreApiWebdavProperties/copyFile.feature:484](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L484)
|
||||||
|
|
||||||
#### [Custom dav properties with namespaces are rendered incorrectly](https://github.com/owncloud/ocis/issues/2140)
|
#### [Custom dav properties with namespaces are rendered incorrectly](https://github.com/owncloud/ocis/issues/2140)
|
||||||
|
|
||||||
_ocdav: double-check the webdav property parsing when custom namespaces are used_
|
_ocdav: double-check the webdav property parsing when custom namespaces are used_
|
||||||
|
|
||||||
- [coreApiWebdavProperties/setFileProperties.feature:120](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/setFileProperties.feature#L120)
|
- [coreApiWebdavProperties/setFileProperties.feature:128](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/setFileProperties.feature#L128)
|
||||||
- [coreApiWebdavProperties/setFileProperties.feature:121](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/setFileProperties.feature#L121)
|
- [coreApiWebdavProperties/setFileProperties.feature:129](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/setFileProperties.feature#L129)
|
||||||
- [coreApiWebdavProperties/setFileProperties.feature:122](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/setFileProperties.feature#L122)
|
- [coreApiWebdavProperties/setFileProperties.feature:130](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/setFileProperties.feature#L130)
|
||||||
|
|
||||||
#### [Cannot set custom webDav properties](https://github.com/owncloud/product/issues/264)
|
#### [Cannot set custom webDav properties](https://github.com/owncloud/product/issues/264)
|
||||||
|
|
||||||
@@ -187,14 +192,11 @@ And other missing implementation of favorites
|
|||||||
|
|
||||||
#### [copying the file inside Shares folder returns 412](https://github.com/owncloud/ocis/issues/3874)
|
#### [copying the file inside Shares folder returns 412](https://github.com/owncloud/ocis/issues/3874)
|
||||||
|
|
||||||
- [coreApiWebdavProperties/copyFile.feature:408](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L408)
|
|
||||||
- [coreApiWebdavProperties/copyFile.feature:409](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L409)
|
|
||||||
- [coreApiWebdavProperties/copyFile.feature:410](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L410)
|
|
||||||
- [coreApiWebdavProperties/copyFile.feature:435](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L435)
|
|
||||||
- [coreApiWebdavProperties/copyFile.feature:436](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L436)
|
|
||||||
- [coreApiWebdavProperties/copyFile.feature:437](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L437)
|
|
||||||
- [coreApiWebdavProperties/copyFile.feature:238](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L238)
|
- [coreApiWebdavProperties/copyFile.feature:238](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L238)
|
||||||
- [coreApiWebdavProperties/copyFile.feature:239](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L239)
|
- [coreApiWebdavProperties/copyFile.feature:239](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L239)
|
||||||
|
- [coreApiWebdavProperties/copyFile.feature:455](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L455)
|
||||||
|
- [coreApiWebdavProperties/copyFile.feature:456](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L456)
|
||||||
|
- [coreApiWebdavProperties/copyFile.feature:457](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties/copyFile.feature#L457)
|
||||||
|
|
||||||
### Won't fix
|
### Won't fix
|
||||||
|
|
||||||
|
|||||||
@@ -192,33 +192,6 @@ class FavoritesContext implements Context {
|
|||||||
$this->asUserFileOrFolderShouldBeFavorited($user, $path, 0);
|
$this->asUserFileOrFolderShouldBeFavorited($user, $path, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @Then /^as the user (?:file|folder|entry) "([^"]*)" should be favorited$/
|
|
||||||
*
|
|
||||||
* @param string $path
|
|
||||||
* @param integer $expectedValue 0|1
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function asTheUserFileOrFolderShouldBeFavorited(string $path, int $expectedValue = 1):void {
|
|
||||||
$this->asUserFileOrFolderShouldBeFavorited(
|
|
||||||
$this->featureContext->getCurrentUser(),
|
|
||||||
$path,
|
|
||||||
$expectedValue
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Then /^as the user (?:file|folder|entry) "([^"]*)" should not be favorited$/
|
|
||||||
*
|
|
||||||
* @param string $path
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function asTheUserFileOrFolderShouldNotBeFavorited(string $path):void {
|
|
||||||
$this->asTheUserFileOrFolderShouldBeFavorited($path, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the elements of a proppatch
|
* Set the elements of a proppatch
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -315,7 +315,7 @@ class FilesVersionsContext implements Context {
|
|||||||
$user = $this->featureContext->getActualUsername($user);
|
$user = $this->featureContext->getActualUsername($user);
|
||||||
$fileId = $this->featureContext->getFileIdForPath($user, $path);
|
$fileId = $this->featureContext->getFileIdForPath($user, $path);
|
||||||
Assert::assertNotNull($fileId, __METHOD__ . " fileid of file $path user $user not found (the file may not exist)");
|
Assert::assertNotNull($fileId, __METHOD__ . " fileid of file $path user $user not found (the file may not exist)");
|
||||||
$response = $this->listVersionFolder($user, $fileId, 1, ['getcontentlength']);
|
$response = $this->listVersionFolder($user, $fileId, 1, ['d:getcontentlength']);
|
||||||
$responseXml = HttpRequestHelper::getResponseXml(
|
$responseXml = HttpRequestHelper::getResponseXml(
|
||||||
$response,
|
$response,
|
||||||
__METHOD__
|
__METHOD__
|
||||||
@@ -504,7 +504,7 @@ class FilesVersionsContext implements Context {
|
|||||||
):ResponseInterface {
|
):ResponseInterface {
|
||||||
if (!$properties) {
|
if (!$properties) {
|
||||||
$properties = [
|
$properties = [
|
||||||
'getetag'
|
'd:getetag'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
$user = $this->featureContext->getActualUsername($user);
|
$user = $this->featureContext->getActualUsername($user);
|
||||||
|
|||||||
@@ -213,15 +213,15 @@ class WebDavPropertiesContext implements Context {
|
|||||||
$user = $this->featureContext->getActualUsername($user);
|
$user = $this->featureContext->getActualUsername($user);
|
||||||
$properties = [$propertyName];
|
$properties = [$propertyName];
|
||||||
$response = WebDavHelper::propfind(
|
$response = WebDavHelper::propfind(
|
||||||
$this->featureContext->getBaseUrl(),
|
$this->featureContext->getBaseUrl(),
|
||||||
$this->featureContext->getActualUsername($user),
|
$this->featureContext->getActualUsername($user),
|
||||||
$this->featureContext->getUserPassword($user),
|
$this->featureContext->getUserPassword($user),
|
||||||
$path,
|
$path,
|
||||||
$properties,
|
$properties,
|
||||||
$this->featureContext->getStepLineRef(),
|
$this->featureContext->getStepLineRef(),
|
||||||
"0",
|
"0",
|
||||||
"files",
|
"files",
|
||||||
$this->featureContext->getDavPathVersion()
|
$this->featureContext->getDavPathVersion()
|
||||||
);
|
);
|
||||||
$this->featureContext->setResponse($response);
|
$this->featureContext->setResponse($response);
|
||||||
}
|
}
|
||||||
@@ -248,15 +248,15 @@ class WebDavPropertiesContext implements Context {
|
|||||||
$namespace => $propertyName
|
$namespace => $propertyName
|
||||||
];
|
];
|
||||||
$response = WebDavHelper::propfind(
|
$response = WebDavHelper::propfind(
|
||||||
$this->featureContext->getBaseUrl(),
|
$this->featureContext->getBaseUrl(),
|
||||||
$this->featureContext->getActualUsername($user),
|
$this->featureContext->getActualUsername($user),
|
||||||
$this->featureContext->getUserPassword($user),
|
$this->featureContext->getUserPassword($user),
|
||||||
$path,
|
$path,
|
||||||
$properties,
|
$properties,
|
||||||
$this->featureContext->getStepLineRef(),
|
$this->featureContext->getStepLineRef(),
|
||||||
"0",
|
"0",
|
||||||
"files",
|
"files",
|
||||||
$this->featureContext->getDavPathVersion()
|
$this->featureContext->getDavPathVersion()
|
||||||
);
|
);
|
||||||
$this->featureContext->setResponse($response);
|
$this->featureContext->setResponse($response);
|
||||||
}
|
}
|
||||||
@@ -645,14 +645,12 @@ class WebDavPropertiesContext implements Context {
|
|||||||
public function checkResponseContainsProperty(ResponseInterface $response, string $key, string $namespaceString = null): SimpleXMLElement {
|
public function checkResponseContainsProperty(ResponseInterface $response, string $key, string $namespaceString = null): SimpleXMLElement {
|
||||||
$xmlPart = $this->featureContext->getResponseXml($response);
|
$xmlPart = $this->featureContext->getResponseXml($response);
|
||||||
|
|
||||||
$nsPrefix = "";
|
|
||||||
if ($namespaceString !== null) {
|
if ($namespaceString !== null) {
|
||||||
$ns = $this->parseNamespace($namespaceString);
|
$ns = $this->parseNamespace($namespaceString);
|
||||||
$xmlPart->registerXPathNamespace(
|
$xmlPart->registerXPathNamespace(
|
||||||
$ns->prefix,
|
$ns->prefix,
|
||||||
$ns->namespace
|
$ns->namespace
|
||||||
);
|
);
|
||||||
$nsPrefix = $ns->prefix . ":";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$match = $xmlPart->xpath("//d:prop/$key");
|
$match = $xmlPart->xpath("//d:prop/$key");
|
||||||
@@ -661,9 +659,12 @@ class WebDavPropertiesContext implements Context {
|
|||||||
isset($match[0]),
|
isset($match[0]),
|
||||||
"Cannot find property \"$key\""
|
"Cannot find property \"$key\""
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$property = \explode(":", $key);
|
||||||
|
$propertyName = $property[\count($property) - 1];
|
||||||
Assert::assertEquals(
|
Assert::assertEquals(
|
||||||
$nsPrefix.$match[0]->getName(),
|
$match[0]->getName(),
|
||||||
$key
|
$propertyName
|
||||||
);
|
);
|
||||||
return $match[0];
|
return $match[0];
|
||||||
}
|
}
|
||||||
@@ -1176,7 +1177,7 @@ class WebDavPropertiesContext implements Context {
|
|||||||
$storePath = $path;
|
$storePath = $path;
|
||||||
}
|
}
|
||||||
$user = $this->featureContext->getActualUsername($user);
|
$user = $this->featureContext->getActualUsername($user);
|
||||||
$propertiesTable = new TableNode([['propertyName'],['getetag']]);
|
$propertiesTable = new TableNode([['propertyName'],['d:getetag']]);
|
||||||
$response = $this->getPropertiesOfFolder(
|
$response = $this->getPropertiesOfFolder(
|
||||||
$user,
|
$user,
|
||||||
$path,
|
$path,
|
||||||
@@ -1322,7 +1323,7 @@ class WebDavPropertiesContext implements Context {
|
|||||||
*/
|
*/
|
||||||
public function getCurrentEtagOfElement(string $path, string $user):string {
|
public function getCurrentEtagOfElement(string $path, string $user):string {
|
||||||
$user = $this->featureContext->getActualUsername($user);
|
$user = $this->featureContext->getActualUsername($user);
|
||||||
$propertiesTable = new TableNode([['propertyName'],['getetag']]);
|
$propertiesTable = new TableNode([['propertyName'],['d:getetag']]);
|
||||||
$response = $this->getPropertiesOfFolder(
|
$response = $this->getPropertiesOfFolder(
|
||||||
$user,
|
$user,
|
||||||
$path,
|
$path,
|
||||||
|
|||||||
@@ -14,9 +14,17 @@ Feature: set file properties
|
|||||||
When user "Alice" sets property "very-custom-prop" of file "testcustomprop.txt" to "veryCustomPropValue"
|
When user "Alice" sets property "very-custom-prop" of file "testcustomprop.txt" to "veryCustomPropValue"
|
||||||
Then the HTTP status code should be "207"
|
Then the HTTP status code should be "207"
|
||||||
And the xml response should contain a property "very-custom-prop"
|
And the xml response should contain a property "very-custom-prop"
|
||||||
|
And the content in the response should include the following content:
|
||||||
|
"""
|
||||||
|
<d:prop><very-custom-prop></very-custom-prop></d:prop>
|
||||||
|
"""
|
||||||
When user "Alice" gets a custom property "very-custom-prop" of file "testcustomprop.txt"
|
When user "Alice" gets a custom property "very-custom-prop" of file "testcustomprop.txt"
|
||||||
Then the HTTP status code should be "207"
|
Then the HTTP status code should be "207"
|
||||||
And the response should contain a custom "very-custom-prop" property with value "veryCustomPropValue"
|
And the response should contain a custom "very-custom-prop" property with value "veryCustomPropValue"
|
||||||
|
And the content in the response should include the following content:
|
||||||
|
"""
|
||||||
|
<d:prop><very-custom-prop>veryCustomPropValue</very-custom-prop></d:prop>
|
||||||
|
"""
|
||||||
Examples:
|
Examples:
|
||||||
| dav-path-version |
|
| dav-path-version |
|
||||||
| old |
|
| old |
|
||||||
@@ -101,7 +109,7 @@ Feature: set file properties
|
|||||||
Scenario Outline: setting custom DAV property with custom namespace and reading it
|
Scenario Outline: setting custom DAV property with custom namespace and reading it
|
||||||
Given using <dav-path-version> DAV path
|
Given using <dav-path-version> DAV path
|
||||||
And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "testcustomprop.txt"
|
And user "Alice" has uploaded file "filesForUpload/textfile.txt" to "testcustomprop.txt"
|
||||||
When user "Alice" sets property "very-custom-prop" with namespace "x1='http://whatever.org/ns'" of file "testcustomprop.txt" to "customPropValue" using the WebDAV API
|
When user "Alice" sets property "very-custom-prop" with namespace "x1='http://whatever.org/ns'" of file "testcustomprop.txt" to "veryCustomPropValue" using the WebDAV API
|
||||||
Then the HTTP status code should be "207"
|
Then the HTTP status code should be "207"
|
||||||
And the xml response should contain a property "x1:very-custom-prop" with namespace "x1='http://whatever.org/ns'"
|
And the xml response should contain a property "x1:very-custom-prop" with namespace "x1='http://whatever.org/ns'"
|
||||||
And the content in the response should include the following content:
|
And the content in the response should include the following content:
|
||||||
@@ -110,10 +118,10 @@ Feature: set file properties
|
|||||||
"""
|
"""
|
||||||
When user "Alice" gets a custom property "x1:very-custom-prop" with namespace "x1='http://whatever.org/ns'" of file "testcustomprop.txt"
|
When user "Alice" gets a custom property "x1:very-custom-prop" with namespace "x1='http://whatever.org/ns'" of file "testcustomprop.txt"
|
||||||
Then the HTTP status code should be "207"
|
Then the HTTP status code should be "207"
|
||||||
And the response should contain a custom "x1:very-custom-prop" property with namespace "x1='http://whatever.org/ns'" and value "customPropValue"
|
And the response should contain a custom "x1:very-custom-prop" property with namespace "x1='http://whatever.org/ns'" and value "veryCustomPropValue"
|
||||||
And the content in the response should include the following content:
|
And the content in the response should include the following content:
|
||||||
"""
|
"""
|
||||||
<d:prop><x1:very-custom-prop xmlns:x1="http://whatever.org/ns">customPropValue</x1:very-custom-prop></d:prop>
|
<d:prop><x1:very-custom-prop xmlns:x1="http://whatever.org/ns">veryCustomPropValue</x1:very-custom-prop></d:prop>
|
||||||
"""
|
"""
|
||||||
Examples:
|
Examples:
|
||||||
| dav-path-version |
|
| dav-path-version |
|
||||||
|
|||||||
Reference in New Issue
Block a user