From ed221b925ac2cc1ec103d8d9be6d4cd1da4999e1 Mon Sep 17 00:00:00 2001 From: Prarup Gurung Date: Thu, 21 Dec 2023 15:57:05 +0545 Subject: [PATCH] Added test for sending share invitation to group with permissions --- .../apiSharingNg/shareInvitations.feature | 202 ++++++++++++++++++ 1 file changed, 202 insertions(+) diff --git a/tests/acceptance/features/apiSharingNg/shareInvitations.feature b/tests/acceptance/features/apiSharingNg/shareInvitations.feature index 9a8a31db1e3..35888e53380 100644 --- a/tests/acceptance/features/apiSharingNg/shareInvitations.feature +++ b/tests/acceptance/features/apiSharingNg/shareInvitations.feature @@ -378,3 +378,205 @@ Feature: Send a sharing invitations | permissions/delete | | deleted/delete | | permissions/deny | + + + Scenario Outline: send share invitation for a file to group with different permissions + 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" + When user "Alice" sends the following share invitation using the Graph API: + | resourceType | file | + | resource | textfile1.txt | + | space | Personal | + | sharee | grp1 | + | shareType | group | + | permission | | + Then the HTTP status code should be "200" + And the JSON data of the response should match + """ + { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "array", + "items": { + "type": "object", + "required": [ + "id", + "@libre.graph.permissions.actions", + "grantedToV2" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^%share_id_pattern%$" + }, + "@libre.graph.permissions.actions": { + "type": "array", + "items": { + "type": "string", + "pattern": "^libre\\.graph\\/driveItem\\/$" + } + }, + "grantedToV2": { + "type": "object", + "required": [ + "group" + ], + "properties": { + "group": { + "type": "object", + "required": [ + "id", + "displayName" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^%user_id_pattern%$" + }, + "displayName": { + "type": "string", + "enum": [ + "grp1" + ] + } + } + } + } + } + } + } + } + } + } + """ + Examples: + | permission | + | permissions/create | + | children/create | + | upload/create | + | path/read | + | quota/read | + | content/read | + | permissions/read | + | children/read | + | versions/read | + | deleted/read | + | basic/read | + | path/update | + | versions/update | + | deleted/update | + | permissions/update | + | standard/delete | + | permissions/delete | + | deleted/delete | + | permissions/deny | + + + Scenario Outline: send share invitation for a folder to group with different permissions + 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 created folder "FolderToShare" + When user "Alice" sends the following share invitation using the Graph API: + | resourceType | folder | + | resource | FolderToShare | + | space | Personal | + | sharee | grp1 | + | shareType | group | + | permission | | + Then the HTTP status code should be "200" + And the JSON data of the response should match + """ + { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "array", + "items": { + "type": "object", + "required": [ + "id", + "@libre.graph.permissions.actions", + "grantedToV2" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^%share_id_pattern%$" + }, + "@libre.graph.permissions.actions": { + "type": "array", + "items": { + "type": "string", + "pattern": "^libre\\.graph\\/driveItem\\/$" + } + }, + "grantedToV2": { + "type": "object", + "required": [ + "group" + ], + "properties": { + "group": { + "type": "object", + "required": [ + "id", + "displayName" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^%user_id_pattern%$" + }, + "displayName": { + "type": "string", + "enum": [ + "grp1" + ] + } + } + } + } + } + } + } + } + } + } + """ + Examples: + | permission | + | permissions/create | + | children/create | + | upload/create | + | path/read | + | quota/read | + | content/read | + | permissions/read | + | children/read | + | versions/read | + | deleted/read | + | basic/read | + | path/update | + | versions/update | + | deleted/update | + | permissions/update | + | standard/delete | + | permissions/delete | + | deleted/delete | + | permissions/deny |