Skip to content

Commit

Permalink
add tests for share exipry
Browse files Browse the repository at this point in the history
  • Loading branch information
amrita-shrestha committed Jan 28, 2025
1 parent 453debe commit add3c55
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 0 deletions.
46 changes: 46 additions & 0 deletions tests/acceptance/bootstrap/SharingNgContext.php
Original file line number Diff line number Diff line change
Expand Up @@ -2160,4 +2160,50 @@ public function userListsPermissionsWithFollowingFiltersForFileOrFolderOfTheSpac
$this->getPermissionsList($user, $fileOrFolder, $space, $resource, $query)
);
}

/**
* @When user :user expires the last created share:
*
* @param string $user
* @param TableNode $table
*
* @return void
*/
public function userExpiresTheLastCreatedShare(string $user, TableNode $table): void {
$permissionID = $this->featureContext->shareNgGetLastCreatedUserGroupShareID();
$bodyRows = $table->getRowsHash();
if ($bodyRows['space'] === 'Personal' || $bodyRows['space'] === 'Shares') {
$space = $this->spacesContext->getSpaceByName($user, $bodyRows['space']);
} else {
$space = $this->spacesContext->getCreatedSpace($bodyRows['space']);
}
$spaceId = $space["id"];
// for updating role of project space shared, we do not need to provide resource
$resource = $bodyRows['resource'] ?? '';
if ($resource === '' && !\in_array($bodyRows['space'], ['Personal', 'Shares'])) {
$itemId = $space['fileId'];
} else {
$itemId = $this->spacesContext->getResourceId($user, $bodyRows['space'], $resource);
}
$body = [];
$dateTime = new DateTime("now", new DateTimeZone("UTC"));
$body['expirationDateTime'] = $dateTime->modify('-5 minutes')->format('Y-m-d\TH:i:s\Z');

$response = GraphHelper::updateShare(
$this->featureContext->getBaseUrl(),
$this->featureContext->getStepLineRef(),
$user,
$this->featureContext->getPasswordForUser($user),
$spaceId,
$itemId,
\json_encode($body),
$permissionID
);

$this->featureContext->theHttpStatusCodeShouldBe(
200,
"Failed to update shared permissions for user '$user'.",
$response
);
}
}
39 changes: 39 additions & 0 deletions tests/acceptance/features/apiSettings/notificationSetting.feature
Original file line number Diff line number Diff line change
Expand Up @@ -607,3 +607,42 @@ Feature: Notification Settings
| message |
| Alice Hansen added you to Space new-space |
But user "Brian" should not have a notification related to space "new-space" with subject "Space disabled"


Scenario: check share expired in-app and mail notification for Personal space resource
Given user "Alice" has uploaded file with content "hello world" to "testfile.txt"
And user "Alice" has sent the following resource share invitation:
| resource | testfile.txt |
| space | Personal |
| sharee | Brian |
| shareType | user |
| permissionsRole | Viewer |
| expirationDateTime | 2025-07-15T14:00:00Z |
When user "Alice" expires the last created share:
| space | Personal |
| resource | testfile.txt |
Then user "Brian" should have "2" emails
And user "Brian" should get a notification with subject "Membership expired" and message:
| message |
| Access to Space Alice Hansen lost |


Scenario: check share expired in-app and mail notification for Project space resource
Given using spaces DAV path
And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API
And user "Alice" has created a space "NewSpace" with the default quota using the Graph API
And user "Alice" has uploaded a file inside space "NewSpace" with content "share space items" to "testfile.txt"
And user "Alice" has sent the following resource share invitation:
| resource | testfile.txt |
| space | NewSpace |
| sharee | Brian |
| shareType | user |
| permissionsRole | Viewer |
| expirationDateTime | 2025-07-15T14:00:00Z |
When user "Alice" expires the last created share:
| space | NewSpace |
| resource | testfile.txt |
Then user "Brian" should have "2" emails
And user "Brian" should get a notification with subject "Membership expired" and message:
| message |
| Access to Space NewSpace lost |

0 comments on commit add3c55

Please sign in to comment.