Skip to content

Commit

Permalink
added tests for reading content of a file by fileId using WebDav API
Browse files Browse the repository at this point in the history
  • Loading branch information
PrajwolAmatya committed Aug 15, 2023
1 parent ee3d709 commit affbd47
Show file tree
Hide file tree
Showing 4 changed files with 124 additions and 6 deletions.
1 change: 1 addition & 0 deletions .drone.star
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ config = {
"apiAsyncUpload",
"apiDownloads",
"apiReshare",
"apiSpacesDavOperation",
],
"skip": False,
},
Expand Down
7 changes: 7 additions & 0 deletions tests/acceptance/config/behat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,13 @@ default:
- FeatureContext: *common_feature_context_params
- OcisConfigContext:

apiSpacesDavOperation:
paths:
- '%paths.base%/../features/apiSpacesDavOperation'
context: *common_ldap_suite_context
contexts:
- FeatureContext: *common_feature_context_params

extensions:
rdx\behatvars\BehatVariablesExtension: ~

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
@api
Feature: accessing files using file id
As a user
I want to access the files using file id
So that I can get 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: get 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 "GET" to URL "<dav-path>"
Then the HTTP status code should be "200"
And the downloaded content should be "some data"
Examples:
| dav-path |
| /remote.php/dav/spaces/<<FILEID>> |
| /dav/spaces/<<FILEID>> |


Scenario Outline: get 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 "GET" to URL "<dav-path>"
Then the HTTP status code should be "200"
And the downloaded content should be "some data"
Examples:
| dav-path |
| /remote.php/dav/spaces/<<FILEID>> |
| /dav/spaces/<<FILEID>> |


Scenario Outline: get 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 "GET" to URL "<dav-path>"
Then the HTTP status code should be "200"
And the downloaded content should be "some data"
Examples:
| dav-path |
| /remote.php/dav/spaces/<<FILEID>> |
| /dav/spaces/<<FILEID>> |


Scenario Outline: sharee gets 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 "GET" to URL "<dav-path>"
Then the HTTP status code should be "200"
And the downloaded content should be "some data"
Examples:
| dav-path |
| /remote.php/dav/spaces/<<FILEID>> |
| /dav/spaces/<<FILEID>> |


Scenario Outline: sharee gets 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 "GET" to URL "<dav-path>"
Then the HTTP status code should be "200"
And the downloaded content should be "some data"
Examples:
| dav-path |
| /remote.php/dav/spaces/<<FILEID>> |
| /dav/spaces/<<FILEID>> |


Scenario Outline: sharee gets 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 | viewer |
When user "Brian" sends HTTP method "GET" to URL "<dav-path>"
Then the HTTP status code should be "200"
And the downloaded content should be "some data"
Examples:
| dav-path |
| /remote.php/dav/spaces/<<FILEID>> |
| /dav/spaces/<<FILEID>> |


Scenario Outline: user tries to get content of 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 "GET" to URL "<dav-path>"
Then the HTTP status code should be "404"
Examples:
| dav-path |
| /remote.php/dav/spaces/<<FILEID>> |
| /dav/spaces/<<FILEID>> |
13 changes: 7 additions & 6 deletions tests/acceptance/features/bootstrap/SpacesContext.php
Original file line number Diff line number Diff line change
Expand Up @@ -1160,7 +1160,7 @@ public function theUserCreatesAFolderToAnotherOwnerSpaceUsingTheGraphApi(
* @param string $content
* @param string $destination
*
* @return void
* @return string[]
* @throws GuzzleException
* @throws Exception
*/
Expand All @@ -1169,9 +1169,9 @@ public function theUserUploadsAFileToSpace(
string $spaceName,
string $content,
string $destination
): void {
): array {
$this->setSpaceIDByName($user, $spaceName);
$this->featureContext->uploadFileWithContent($user, $content, $destination);
return $this->featureContext->uploadFileWithContent($user, $content, $destination);
}

/**
Expand Down Expand Up @@ -1785,18 +1785,19 @@ public function copyFilesAndFoldersRequest(string $user, string $fullUrl, array
* @param string $fileContent
* @param string $destination
*
* @return void
* @return string[]
* @throws GuzzleException
*/
public function userHasUploadedFile(
string $user,
string $spaceName,
string $fileContent,
string $destination
): void {
): array {
$this->theUserListsAllHisAvailableSpacesUsingTheGraphApi($user);
$this->theUserUploadsAFileToSpace($user, $spaceName, $fileContent, $destination);
$fileId = $this->theUserUploadsAFileToSpace($user, $spaceName, $fileContent, $destination);
$this->featureContext->theHTTPStatusCodeShouldBeOr(201, 204);
return $fileId;
}

/**
Expand Down

0 comments on commit affbd47

Please sign in to comment.