diff --git a/tests/acceptance/config/behat.yml b/tests/acceptance/config/behat.yml index 5add91e69ac..a7be3067add 100644 --- a/tests/acceptance/config/behat.yml +++ b/tests/acceptance/config/behat.yml @@ -294,6 +294,7 @@ default: - TUSContext: - OcisConfigContext: - SharingNgContext: + - WebDavPropertiesContext: apiReshare: paths: diff --git a/tests/acceptance/features/apiSearchContent/propfindExtractedProps.feature b/tests/acceptance/features/apiSearchContent/propfindExtractedProps.feature new file mode 100644 index 00000000000..119103dbf68 --- /dev/null +++ b/tests/acceptance/features/apiSearchContent/propfindExtractedProps.feature @@ -0,0 +1,42 @@ +@tikaServiceNeeded +Feature: propfind extracted props + As a user + I want to get extracted properties of resource + So that I can make sure that the response contains audio, location, image and photo properties + + + Scenario: check extracted properties of a file from project space + Given user "Alice" has been created with default attributes and without skeleton files + And using spaces DAV path + And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API + And user "Alice" has created a space "new-space" with the default quota using the Graph API + And user "Alice" has uploaded a file "filesForUpload/testaudio.mp3" to "testaudio.mp3" in space "new-space" + And user "Alice" has uploaded a file "filesForUpload/testavatar.jpg" to "testavatar.jpg" in space "new-space" + When user "Alice" gets the following extracted properties of resource "testaudio.mp3" inside space "new-space" using the WebDAV API + | propertyName | + | oc:audio | + Then the HTTP status code should be "207" + And the "PROPFIND" response should contain a space "new-space" with these key and value pairs: + | key | value | + | oc:audio/oc:album | ALBUM1234567890123456789012345 | + | oc:audio/oc:artist | ARTIST123456789012345678901234 | + | oc:audio/oc:genre | Pop | + | oc:audio/oc:title | TITLE1234567890123456789012345 | + | oc:audio/oc:track | 1 | + | oc:audio/oc:year | 2001 | + When user "Alice" gets the following extracted properties of resource "testavatar.jpg" inside space "new-space" using the WebDAV API + | propertyName | + | oc:image | + | oc:location | + | oc:photo | + Then the HTTP status code should be "207" + And the "PROPFIND" response should contain a space "new-space" with these key and value pairs: + | key | value | + | oc:image/oc:width | 640 | + | oc:image/oc:height | 480 | + | oc:location/oc:latitude | 43.467157 | + | oc:location/oc:longitude | 11.885395 | + | oc:photo/oc:camera-make | NIKON | + | oc:photo/oc:camera-model | COOLPIX P6000 | + | oc:photo/oc:f-number | 4.5 | + | oc:photo/oc:focal-length | 6 | diff --git a/tests/acceptance/features/bootstrap/SpacesContext.php b/tests/acceptance/features/bootstrap/SpacesContext.php index 2f690673dae..e139c05a934 100644 --- a/tests/acceptance/features/bootstrap/SpacesContext.php +++ b/tests/acceptance/features/bootstrap/SpacesContext.php @@ -3510,6 +3510,32 @@ public function userGetsTheFollowingPropertiesOfFileInsideSpaceUsingTheWebdavApi $this->featureContext->setResponse($response); } + /** + * @When /^user "([^"]*)" gets the following extracted properties of (?:file|folder|entry|resource) "([^"]*)" inside space "([^"]*)" using the WebDAV API$/ + * + * @param string $user + * @param string $resourceName + * @param string $spaceName + * @param TableNode|null $propertiesTable + * + * @return void + * + * @throws Exception|GuzzleException + */ + public function userGetsTheFollowingExtractedPropertiesOfFileInsideSpaceUsingTheWebdavApi( + string $user, + string $resourceName, + string $spaceName, + TableNode $propertiesTable + ):void { + // NOTE: extracting properties occurs asynchronously + // short wait is necessary before getting those properties + sleep(2); + $this->setSpaceIDByName($user, $spaceName); + $response = $this->webDavPropertiesContext->getPropertiesOfFolder($user, $resourceName, $propertiesTable); + $this->featureContext->setResponse($response); + } + /** * @Then /^as user "([^"]*)" (?:file|folder|entry|resource) "([^"]*)" inside space "([^"]*)" should contain a property "([^"]*)" with value "([^"]*)"$/ * diff --git a/tests/acceptance/filesForUpload/testaudio.mp3 b/tests/acceptance/filesForUpload/testaudio.mp3 new file mode 100644 index 00000000000..d2eea3cc4e5 Binary files /dev/null and b/tests/acceptance/filesForUpload/testaudio.mp3 differ diff --git a/tests/acceptance/filesForUpload/testavatar.jpg b/tests/acceptance/filesForUpload/testavatar.jpg index fb9e54042cb..eae213b8272 100644 Binary files a/tests/acceptance/filesForUpload/testavatar.jpg and b/tests/acceptance/filesForUpload/testavatar.jpg differ