mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-04-26 02:08:25 -04:00
[tests-only][full-ci] Backport added test to update file using file id (#7237)
* added test to update file using file id * changed the datatype of body from Tablenode to string
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
Feature: update files using file id
|
||||
As a user
|
||||
I want to update the files using file id
|
||||
So that I can make changes on the content of a file
|
||||
|
||||
Background:
|
||||
Given using spaces DAV path
|
||||
And user "Alice" has been created with default attributes and without skeleton files
|
||||
|
||||
|
||||
Scenario Outline: update content of a file
|
||||
Given user "Alice" has uploaded file with content "some data" to "/textfile.txt"
|
||||
And we save it into "FILEID"
|
||||
When user "Alice" sends HTTP method "PUT" to URL "<dav-path>" with content "updated content"
|
||||
Then the HTTP status code should be "204"
|
||||
And for user "Alice" the content of the file "/textfile.txt" of the space "Personal" should be "updated content"
|
||||
Examples:
|
||||
| dav-path |
|
||||
| /remote.php/dav/spaces/<<FILEID>> |
|
||||
| /dav/spaces/<<FILEID>> |
|
||||
|
||||
|
||||
Scenario Outline: update content of a file inside a folder
|
||||
Given user "Alice" has created folder "uploadFolder"
|
||||
And user "Alice" has uploaded file with content "some data" to "uploadFolder/textfile.txt"
|
||||
And we save it into "FILEID"
|
||||
When user "Alice" sends HTTP method "PUT" to URL "<dav-path>" with content "updated content"
|
||||
Then the HTTP status code should be "204"
|
||||
And for user "Alice" the content of the file "/uploadFolder/textfile.txt" of the space "Personal" should be "updated content"
|
||||
Examples:
|
||||
| dav-path |
|
||||
| /remote.php/dav/spaces/<<FILEID>> |
|
||||
| /dav/spaces/<<FILEID>> |
|
||||
|
||||
|
||||
Scenario Outline: update content of a file inside a project space
|
||||
Given 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 GraphApi
|
||||
And user "Alice" has uploaded a file inside space "new-space" with content "some data" to "/textfile.txt"
|
||||
And we save it into "FILEID"
|
||||
When user "Alice" sends HTTP method "PUT" to URL "<dav-path>" with content "updated content"
|
||||
Then the HTTP status code should be "204"
|
||||
And for user "Alice" the content of the file "/textfile.txt" of the space "new-space" should be "updated content"
|
||||
Examples:
|
||||
| dav-path |
|
||||
| /remote.php/dav/spaces/<<FILEID>> |
|
||||
| /dav/spaces/<<FILEID>> |
|
||||
|
||||
|
||||
Scenario Outline: sharee updates content of a shared file
|
||||
Given user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Alice" has uploaded file with content "some data" to "/textfile.txt"
|
||||
And we save it into "FILEID"
|
||||
And user "Alice" has shared file "/textfile.txt" with user "Brian"
|
||||
And user "Brian" has accepted share "/textfile.txt" offered by user "Alice"
|
||||
When user "Brian" sends HTTP method "PUT" to URL "<dav-path>" with content "updated content"
|
||||
Then the HTTP status code should be "204"
|
||||
And for user "Alice" the content of the file "/textfile.txt" of the space "Personal" should be "updated content"
|
||||
And for user "Brian" the content of the file "textfile.txt" of the space "Shares" should be "updated content"
|
||||
Examples:
|
||||
| dav-path |
|
||||
| /remote.php/dav/spaces/<<FILEID>> |
|
||||
| /dav/spaces/<<FILEID>> |
|
||||
|
||||
|
||||
Scenario Outline: sharee updates content of a file inside a shared folder
|
||||
Given user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Alice" has created folder "uploadFolder"
|
||||
And user "Alice" has uploaded file with content "some data" to "uploadFolder/textfile.txt"
|
||||
And we save it into "FILEID"
|
||||
And user "Alice" has shared folder "/uploadFolder" with user "Brian"
|
||||
And user "Brian" has accepted share "/uploadFolder" offered by user "Alice"
|
||||
When user "Brian" sends HTTP method "PUT" to URL "<dav-path>" with content "updated content"
|
||||
Then the HTTP status code should be "204"
|
||||
And for user "Alice" the content of the file "uploadFolder/textfile.txt" of the space "Personal" should be "updated content"
|
||||
And for user "Brian" the content of the file "uploadFolder/textfile.txt" of the space "Shares" should be "updated content"
|
||||
Examples:
|
||||
| dav-path |
|
||||
| /remote.php/dav/spaces/<<FILEID>> |
|
||||
| /dav/spaces/<<FILEID>> |
|
||||
|
||||
|
||||
Scenario Outline: sharee with different role tries to update content of a file inside a shared space
|
||||
Given user "Brian" has been created with default attributes and without skeleton files
|
||||
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 GraphApi
|
||||
And user "Alice" has uploaded a file inside space "new-space" with content "some data" to "/textfile.txt"
|
||||
And we save it into "FILEID"
|
||||
And user "Alice" has shared a space "new-space" with settings:
|
||||
| shareWith | Brian |
|
||||
| role | <role> |
|
||||
When user "Brian" sends HTTP method "PUT" to URL "<dav-path>" with content "updated content"
|
||||
Then the HTTP status code should be "<http_status_code>"
|
||||
And for user "Alice" the content of the file "/textfile.txt" of the space "new-space" should be "<file-content>"
|
||||
And for user "Brian" the content of the file "/textfile.txt" of the space "new-space" should be "<file-content>"
|
||||
Examples:
|
||||
| dav-path | role | http_status_code | file-content |
|
||||
| /remote.php/dav/spaces/<<FILEID>> | viewer | 403 | some data |
|
||||
| /dav/spaces/<<FILEID>> | editor | 204 | updated content |
|
||||
|
||||
|
||||
Scenario Outline: user tries to update content of a file owned by others
|
||||
Given user "Brian" has been created with default attributes and without skeleton files
|
||||
And user "Alice" has uploaded file with content "some data" to "/textfile.txt"
|
||||
And we save it into "FILEID"
|
||||
When user "Brian" sends HTTP method "PUT" to URL "<dav-path>" with content "updated content"
|
||||
Then the HTTP status code should be "404"
|
||||
And for user "Alice" the content of the file "/textfile.txt" of the space "Personal" should be "some data"
|
||||
Examples:
|
||||
| dav-path |
|
||||
| /remote.php/dav/spaces/<<FILEID>> |
|
||||
| /dav/spcaes/<<FILEID>> |
|
||||
@@ -1156,7 +1156,7 @@ class FeatureContext extends BehatVariablesContext {
|
||||
*/
|
||||
public function userSendsHTTPMethodToUrl(string $user, string $verb, string $url): void {
|
||||
$user = $this->getActualUsername($user);
|
||||
$this->sendingToWithDirectUrl($user, $verb, $url, null);
|
||||
$this->setResponse($this->sendingToWithDirectUrl($user, $verb, $url, null));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1173,6 +1173,20 @@ class FeatureContext extends BehatVariablesContext {
|
||||
$this->theHTTPStatusCodeShouldBeSuccess();
|
||||
}
|
||||
|
||||
/**
|
||||
* @When user :user sends HTTP method :method to URL :davPath with content :content
|
||||
*
|
||||
* @param string $user
|
||||
* @param string $method
|
||||
* @param string $davPath
|
||||
* @param string $content
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function userSendsHttpMethodToUrlWithContent(string $user, string $method, string $davPath, string $content): void {
|
||||
$this->setResponse($this->sendingToWithDirectUrl($user, $method, $davPath, $content));
|
||||
}
|
||||
|
||||
/**
|
||||
* @When /^user "([^"]*)" sends HTTP method "([^"]*)" to URL "([^"]*)" with password "([^"]*)"$/
|
||||
*
|
||||
@@ -1184,7 +1198,7 @@ class FeatureContext extends BehatVariablesContext {
|
||||
* @return void
|
||||
*/
|
||||
public function userSendsHTTPMethodToUrlWithPassword(string $user, string $verb, string $url, string $password): void {
|
||||
$this->sendingToWithDirectUrl($user, $verb, $url, null, $password);
|
||||
$this->setResponse($this->sendingToWithDirectUrl($user, $verb, $url, null, $password));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1206,13 +1220,13 @@ class FeatureContext extends BehatVariablesContext {
|
||||
* @param string|null $user
|
||||
* @param string|null $verb
|
||||
* @param string|null $url
|
||||
* @param TableNode|null $body
|
||||
* @param string|null $body
|
||||
* @param string|null $password
|
||||
*
|
||||
* @return void
|
||||
* @return ResponseInterface
|
||||
* @throws GuzzleException
|
||||
*/
|
||||
public function sendingToWithDirectUrl(?string $user, ?string $verb, ?string $url, ?TableNode $body, ?string $password = null): void {
|
||||
public function sendingToWithDirectUrl(?string $user, ?string $verb, ?string $url, string $body = null, ?string $password = null): ResponseInterface {
|
||||
$fullUrl = $this->getBaseUrl() . $url;
|
||||
|
||||
if ($password === null) {
|
||||
@@ -1235,23 +1249,18 @@ class FeatureContext extends BehatVariablesContext {
|
||||
$cookies = $this->cookieJar;
|
||||
}
|
||||
|
||||
$bodyRows = null;
|
||||
if ($body instanceof TableNode) {
|
||||
$bodyRows = $body->getRowsHash();
|
||||
}
|
||||
|
||||
if (isset($this->requestToken)) {
|
||||
$headers['requesttoken'] = $this->requestToken;
|
||||
}
|
||||
|
||||
$this->response = HttpRequestHelper::sendRequest(
|
||||
return HttpRequestHelper::sendRequest(
|
||||
$fullUrl,
|
||||
$this->getStepLineRef(),
|
||||
$verb,
|
||||
$user,
|
||||
$password,
|
||||
$headers,
|
||||
$bodyRows,
|
||||
$body,
|
||||
$config,
|
||||
$cookies
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user