get resource id as public

This commit is contained in:
Swikriti Tripathi
2022-12-19 15:46:51 +05:45
committed by Phil Davis
parent ea9bf8d80b
commit 03139c3ac2
2 changed files with 14 additions and 9 deletions

View File

@@ -20,7 +20,7 @@ Feature: Public can download folders from project space public link
And user "Alice" has created a public link share of the space "new-space" with settings:
| permissions | 1 |
| name | someName |
When public downloads the folder "NewFolder" of space "new-space" from the last created public link of "Alice"
When public downloads the folder "NewFolder" from the last created public link using the public files API
Then the HTTP status code should be "200"
And the downloaded tar archive should contain these files:
| name | content |
@@ -36,7 +36,7 @@ Feature: Public can download folders from project space public link
| shareType | 3 |
| permissions | 1 |
| name | public link |
When public downloads the folder "NewFolder/folder" of space "new-space" from the last created public link of "Alice"
When public downloads the folder "folder" from the last created public link using the public files API
Then the HTTP status code should be "200"
And the downloaded tar archive should contain these files:
| name | content |

View File

@@ -3091,19 +3091,24 @@ class SpacesContext implements Context {
}
/**
* @When /^public downloads the folder "([^"]*)" of space "([^"]*)" from the last created public link of "([^"]*)"$/
* @When /^public downloads the folder "([^"]*)" from the last created public link using the public files API$/
*
* @param string $resource
* @param string $space
* @param string $owner
*
* @return void
* @throws GuzzleException
* @throws GuzzleException|JsonException
*/
public function publicDownloadsTheFolderFromTheLastCreatedPublicLink(string $resource, string $space, string $owner) {
public function publicDownloadsTheFolderFromTheLastCreatedPublicLink(string $resource) {
$token = $this->featureContext->getLastPublicShareToken();
$resourceId = $this->getFolderId($owner, $space, $resource);
$queryString = 'public-token=' . $token . '&id=' . $resourceId;
$response = $this->featureContext->listFolderAndReturnResponseXml(
$token,
$resource,
'0',
['oc:fileid'],
$this->featureContext->getDavPathVersion() === 1 ? "public-files" : "public-files-new"
);
$resourceId = json_decode(json_encode($response->xpath("//d:response/d:propstat/d:prop/oc:fileid")), true, 512, JSON_THROW_ON_ERROR);
$queryString = 'public-token=' . $token . '&id=' . $resourceId[0][0];
$this->featureContext->setResponse(
HttpRequestHelper::get(
$this->featureContext->getBaseUrl() . '/archiver?' . $queryString,