[tests-only] test downloading a file as not owner

This commit is contained in:
Artur Neumann
2021-11-11 12:45:52 +05:45
parent e6f5236b43
commit f056d6c79e
2 changed files with 35 additions and 0 deletions

View File

@@ -61,3 +61,10 @@ Feature: download multiple resources bundled into an archive
| textfile1.txt | other data |
| my_data/textfile2.txt | some data |
| more_data/an_other_file.txt | more data |
Scenario: download a single file as different user
Given user "Brian" has been created with default attributes and without skeleton files
And user "Alice" has uploaded file with content "some data" to "/textfile0.txt"
When user "Brian" downloads the archive of "/textfile0.txt" of user "Alice" using the resource id
Then the HTTP status code should be "400"

View File

@@ -99,6 +99,34 @@ class ArchiverContext implements Context {
);
}
/**
* @When user :downloader downloads the archive of :item of user :owner using the resource id
*
* @param string $downloader Who sends the request
* @param string $resource
* @param string $owner Who is the real owner of the file
*
* @return void
*
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function userDownloadsTheArchiveOfItemOfUserUsingTheResourceId(
string $downloader,
string $resource,
string $owner
): void {
$resourceId = $this->featureContext->getFileIdForPath($owner, $resource);
$downloader = $this->featureContext->getActualUsername($downloader);
$this->featureContext->setResponse(
HttpRequestHelper::get(
$this->featureContext->getBaseUrl() . '/archiver?id=' . $resourceId,
'',
$downloader,
$this->featureContext->getPasswordForUser($downloader),
)
);
}
/**
* @When user :arg1 downloads the archive of these items using the resource ids
*