Merge pull request #8326 from owncloud/add-test-to-share-deleted-resource

[tests-only] Add test to share deleted resource
This commit is contained in:
Prarup Gurung
2024-02-01 15:18:44 +05:45
committed by GitHub
2 changed files with 115 additions and 2 deletions
@@ -1947,3 +1947,95 @@ Feature: Send a sharing invitations
| Space Editor |
| Co Owner |
| Manager |
Scenario: send share invitation to user for deleted file
Given user "Alice" has uploaded file with content "to share" to "textfile1.txt"
And we save it into "FILEID"
And user "Alice" has deleted file "textfile1.txt"
When user "Alice" sends the following share invitation with file-id "<<FILEID>>" using the Graph API:
| space | Personal |
| sharee | Brian |
| shareType | user |
| permissionsRole | Viewer |
Then the HTTP status code should be "404"
And for user "Brian" the space Shares should not contain these entries:
| textfile1.txt |
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"enum": ["itemNotFound"]
},
"message": {
"type": "string",
"enum": ["stat: error: not found: "]
}
}
}
}
}
"""
Scenario: send share invitation to group for deleted file
Given user "Carol" has been created with default attributes and without skeleton files
And group "grp1" has been created
And the following users have been added to the following groups
| username | groupname |
| Brian | grp1 |
| Carol | grp1 |
And user "Alice" has uploaded file with content "to share" to "textfile1.txt"
And we save it into "FILEID"
And user "Alice" has deleted file "textfile1.txt"
When user "Alice" sends the following share invitation with file-id "<<FILEID>>" using the Graph API:
| space | Personal |
| sharee | grp1 |
| shareType | group |
| permissionsRole | Viewer |
Then the HTTP status code should be "404"
And for user "Brian" the space Shares should not contain these entries:
| textfile1.txt |
And for user "Carol" the space Shares should not contain these entries:
| textfile1.txt |
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"enum": ["itemNotFound"]
},
"message": {
"type": "string",
"enum": ["stat: error: not found: "]
}
}
}
}
}
"""
@@ -130,6 +130,7 @@ class SharingNgContext implements Context {
/**
* @param string $user
* @param TableNode $table
* @param string|null $fileId
*
* @return ResponseInterface
*
@@ -137,7 +138,7 @@ class SharingNgContext implements Context {
* @throws \GuzzleHttp\Exception\GuzzleException
* @throws Exception
*/
public function sendShareInvitation(string $user, TableNode $table): ResponseInterface {
public function sendShareInvitation(string $user, TableNode $table, string $fileId = null): ResponseInterface {
$rows = $table->getRowsHash();
if ($rows['space'] === 'Personal' || $rows['space'] === 'Shares') {
$space = $this->spacesContext->getSpaceByName($user, $rows['space']);
@@ -146,8 +147,11 @@ class SharingNgContext implements Context {
}
$spaceId = $space['id'];
// $fileId is used for trying to share deleted files
// for resharing a resource, "item-id" in API endpoint takes shareMountId
if ($rows['space'] === 'Shares') {
if ($fileId) {
$itemId = $fileId;
} elseif ($rows['space'] === 'Shares') {
$itemId = GraphHelper::getShareMountId(
$this->featureContext->getBaseUrl(),
$this->featureContext->getStepLineRef(),
@@ -236,6 +240,23 @@ class SharingNgContext implements Context {
);
}
/**
* @When user :user sends the following share invitation with file-id :fileId using the Graph API:
*
* @param string $user
* @param string $fileId
* @param TableNode $table
*
* @return void
* @throws JsonException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function userSendsTheFollowingShareInvitationWithFileIdUsingTheGraphApi(string $user, string $fileId, TableNode $table): void {
$this->featureContext->setResponse(
$this->sendShareInvitation($user, $table, $fileId)
);
}
/**
* @When /^user "([^"]*)" creates the following link share using the Graph API:$/
*