test:split apiSharingNg suite for checking if CI time gets reduced

This commit is contained in:
pradip
2024-07-08 12:53:22 +05:45
parent d57ff92ea6
commit ff9a80f76c
16 changed files with 971 additions and 924 deletions

View File

@@ -85,9 +85,11 @@ config = {
"apiLocks",
"apiSearch1",
"apiSearch2",
"apiSharingNg",
"apiSharingNg1",
"apiSharingNg2",
"apiSharingNgShareInvitation",
"apiSharingNgLinkShare",
"apiSharingNgLinkSharePermission",
"apiSharingNgLinkShareRoot",
],
"skip": False,
},

View File

@@ -327,9 +327,20 @@ default:
- PublicWebDavContext:
- SharingNgContext:
apiSharingNg:
apiSharingNg1:
paths:
- "%paths.base%/../features/apiSharingNg"
- "%paths.base%/../features/apiSharingNg1"
context: *common_ldap_suite_context
contexts:
- FeatureContext: *common_feature_context_params
- SpacesContext:
- SharingNgContext:
- OcisConfigContext:
- SettingsContext:
apiSharingNg2:
paths:
- "%paths.base%/../features/apiSharingNg2"
context: *common_ldap_suite_context
contexts:
- FeatureContext: *common_feature_context_params
@@ -347,9 +358,20 @@ default:
- SpacesContext:
- SharingNgContext:
apiSharingNgLinkShare:
apiSharingNgLinkSharePermission:
paths:
- "%paths.base%/../features/apiSharingNgLinkShare"
- "%paths.base%/../features/apiSharingNgLinkSharePermission"
context: *common_ldap_suite_context
contexts:
- FeatureContext: *common_feature_context_params
- SpacesContext:
- SharingNgContext:
- PublicWebDavContext:
- OcisConfigContext:
apiSharingNgLinkShareRoot:
paths:
- "%paths.base%/../features/apiSharingNgLinkShareRoot"
context: *common_ldap_suite_context
contexts:
- FeatureContext: *common_feature_context_params

View File

@@ -232,56 +232,56 @@ The expected failures in this file are from features in the owncloud/ocis repo.
### [blocksDownload link type is not implemented yet (sharing-ng)](https://github.com/owncloud/ocis/issues/7879)
- [apiSharingNgLinkShare/createLinkShare.feature:72](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L72)
- [apiSharingNgLinkShare/createLinkShare.feature:202](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L202)
- [apiSharingNgLinkShare/createLinkShare.feature:340](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L340)
- [apiSharingNgLinkShare/createLinkShare.feature:409](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L409)
- [apiSharingNgLinkShare/createLinkShare.feature:475](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L475)
- [apiSharingNgLinkShare/createLinkShare.feature:617](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L617)
- [apiSharingNgLinkShare/createLinkShare.feature:763](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L763)
- [apiSharingNgLinkShare/createLinkShare.feature:819](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L819)
- [apiSharingNgLinkShare/createLinkShare.feature:820](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L820)
- [apiSharingNgLinkShare/createLinkShare.feature:821](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L821)
- [apiSharingNgLinkShare/createLinkShare.feature:891](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L891)
- [apiSharingNgLinkShare/createLinkShare.feature:957](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L957)
- [apiSharingNgLinkShare/createLinkShare.feature:1101](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L1101)
- [apiSharingNgLinkShare/createLinkShare.feature:1170](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L1170)
- [apiSharingNgLinkShare/createLinkShare.feature:1220](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L1220)
- [apiSharingNgLinkShare/createLinkShare.feature:1221](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L1221)
- [apiSharingNgLinkShare/createLinkShare.feature:1222](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L1222)
- [apiSharingNgLinkShare/createLinkShare.feature:1461](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L1461)
- [apiSharingNgLinkShare/createLinkShare.feature:1601](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L1601)
- [apiSharingNgLinkShare/createLinkShare.feature:1655](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L1655)
- [apiSharingNgLinkShare/createLinkShare.feature:1656](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L1656)
- [apiSharingNgLinkShare/createLinkShare.feature:1657](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L1657)
- [apiSharingNgLinkShare/createLinkShare.feature:1725](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L1725)
- [apiSharingNgLinkShare/createLinkShare.feature:1792](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L1792)
- [apiSharingNgLinkShare/createLinkShare.feature:1863](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L1863)
- [apiSharingNgLinkShare/createLinkShare.feature:1981](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L1981)
- [apiSharingNgLinkShare/createLinkShare.feature:2240](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L2240)
- [apiSharingNgLinkShare/createLinkShare.feature:2294](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L2294)
- [apiSharingNgLinkShare/createLinkShare.feature:2295](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L2295)
- [apiSharingNgLinkShare/createLinkShare.feature:2296](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L2296)
- [apiSharingNgLinkShare/createLinkShare.feature:2364](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L2364)
- [apiSharingNgLinkShare/createLinkShare.feature:2430](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L2430)
- [apiSharingNgLinkShare/createLinkShare.feature:2552](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L2552)
- [apiSharingNgLinkShare/createLinkShare.feature:2679](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L2679)
- [apiSharingNgLinkShare/createLinkShare.feature:2806](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L2806)
- [apiSharingNgLinkShare/createLinkShare.feature:2934](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature#L2934)
- [apiSharingNgLinkShare/updateLinkShare.feature:73](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/updateLinkShare.feature#L73)
- [apiSharingNgLinkShare/updateLinkShare.feature:75](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/updateLinkShare.feature#L75)
- [apiSharingNgLinkShare/updateLinkShare.feature:76](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/updateLinkShare.feature#L76)
- [apiSharingNgLinkShare/updateLinkShare.feature:77](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/updateLinkShare.feature#L77)
- [apiSharingNgLinkShare/updateLinkShare.feature:143](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/updateLinkShare.feature#L143)
- [apiSharingNgLinkShare/updateLinkShare.feature:468](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/updateLinkShare.feature#L468)
- [apiSharingNgLinkShare/updateLinkShare.feature:855](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShare/updateLinkShare.feature#L855)
- [apiSharingNg/removeAccessToDriveItem.feature:125](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNg/removeAccessToDriveItem.feature#L125)
- [apiSharingNg/removeAccessToDriveItem.feature:141](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNg/removeAccessToDriveItem.feature#L141)
- [apiSharingNg/removeAccessToDriveItem.feature:161](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNg/removeAccessToDriveItem.feature#L161)
- [apiSharingNg/removeAccessToDriveItem.feature:179](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNg/removeAccessToDriveItem.feature#L179)
- [apiSharingNg/removeAccessToDrive.feature:177](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNg/removeAccessToDrive.feature#L177)
- [apiSharingNg/removeAccessToDrive.feature:206](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNg/removeAccessToDrive.feature#L206)
- [apiSharingNg/removeAccessToDrive.feature:236](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNg/removeAccessToDrive.feature#L236)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:72](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L72)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:202](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L202)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:340](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L340)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:409](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L409)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:475](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L475)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:617](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L617)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:763](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L763)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:819](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L819)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:820](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L820)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:821](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L821)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:891](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L891)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:957](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L957)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:1101](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L1101)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:1170](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L1170)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:1220](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L1220)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:1221](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L1221)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:1222](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L1222)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:1374](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L1374)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:1633](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L1633)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:1687](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L1687)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:1688](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L1688)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:1689](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L1689)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:1757](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L1757)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:1823](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L1823)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:1945](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L1945)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:2072](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L2072)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:2199](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L2199)
- [apiSharingNgLinkSharePermission/createLinkShare.feature:2327](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L2327)
- [apiSharingNgLinkSharePermission/updateLinkShare.feature:73](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/updateLinkShare.feature#L73)
- [apiSharingNgLinkSharePermission/updateLinkShare.feature:75](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/updateLinkShare.feature#L75)
- [apiSharingNgLinkSharePermission/updateLinkShare.feature:76](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/updateLinkShare.feature#L76)
- [apiSharingNgLinkSharePermission/updateLinkShare.feature:77](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/updateLinkShare.feature#L77)
- [apiSharingNgLinkSharePermission/updateLinkShare.feature:143](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/updateLinkShare.feature#L143)
- [apiSharingNgLinkSharePermission/updateLinkShare.feature:405](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/updateLinkShare.feature#L405)
- [apiSharingNgLinkSharePermission/updateLinkShare.feature:792](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkSharePermission/updateLinkShare.feature#L792)
- [apiSharingNgLinkShareRoot/createLinkShare.feature:212](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShareRoot/createLinkShare.feature#L212)
- [apiSharingNgLinkShareRoot/createLinkShare.feature:352](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShareRoot/createLinkShare.feature#L352)
- [apiSharingNgLinkShareRoot/createLinkShare.feature:406](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShareRoot/createLinkShare.feature#L406)
- [apiSharingNgLinkShareRoot/createLinkShare.feature:407](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShareRoot/createLinkShare.feature#L407)
- [apiSharingNgLinkShareRoot/createLinkShare.feature:408](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShareRoot/createLinkShare.feature#L408)
- [apiSharingNgLinkShareRoot/createLinkShare.feature:476](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShareRoot/createLinkShare.feature#L476)
- [apiSharingNgLinkShareRoot/createLinkShare.feature:543](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShareRoot/createLinkShare.feature#L543)
- [apiSharingNgLinkShareRoot/createLinkShare.feature:614](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNgLinkShareRoot/createLinkShare.feature#L614)
- [apiSharingNg2/removeAccessToDriveItemInLinkShare.feature:27](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNg2/removeAccessToDriveItemInLinkShare.feature#L27)
- [apiSharingNg2/removeAccessToDriveItemInLinkShare.feature:43](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNg2/removeAccessToDriveItemInLinkShare.feature#L43)
- [apiSharingNg2/removeAccessToDriveItemInLinkShare.feature:63](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNg2/removeAccessToDriveItemInLinkShare.feature#L63)
- [apiSharingNg2/removeAccessToDriveItemInLinkShare.feature:81](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNg2/removeAccessToDriveItemInLinkShare.feature#L81)
- [apiSharingNg1/removeAccessToDrive.feature:177](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNg1/removeAccessToDrive.feature#L177)
- [apiSharingNg1/removeAccessToDrive.feature:206](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNg1/removeAccessToDrive.feature#L206)
- [apiSharingNg1/removeAccessToDrive.feature:236](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSharingNg1/removeAccessToDrive.feature#L236)
### [sharee (editor role) MOVE a file by file-id into same shared folder returns 403](https://github.com/owncloud/ocis/issues/7617)

View File

@@ -107,78 +107,6 @@ Feature: Remove access to a drive item
| Uploader | FolderToShare |
Scenario Outline: user removes access to a folder in link share
Given user "Alice" has created folder "FolderToShare"
And user "Alice" has created the following resource link share:
| resource | FolderToShare |
| space | Personal |
| permissionsRole | <permissions-role> |
| password | %public% |
When user "Alice" removes the link of folder "FolderToShare" from space "Personal" using the Graph API
Then the HTTP status code should be "204"
Examples:
| permissions-role |
| view |
| edit |
| upload |
| createOnly |
| blocksDownload |
Scenario Outline: user removes access to a file in link share
Given user "Alice" has uploaded file "filesForUpload/textfile.txt" to "textfile.txt"
And user "Alice" has created the following resource link share:
| resource | textfile.txt |
| space | Personal |
| permissionsRole | <permissions-role> |
| password | %public% |
When user "Alice" removes the link of file "textfile.txt" from space "Personal" using the Graph API
Then the HTTP status code should be "204"
Examples:
| permissions-role |
| view |
| edit |
| blocksDownload |
Scenario Outline: user removes access to a folder in project space in link share
Given 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 created a folder "FolderToShare" in space "NewSpace"
And user "Alice" has created the following resource link share:
| resource | FolderToShare |
| space | NewSpace |
| permissionsRole | <permissions-role> |
| password | %public% |
When user "Alice" removes the link of folder "FolderToShare" from space "NewSpace" using the Graph API
Then the HTTP status code should be "204"
Examples:
| permissions-role |
| view |
| edit |
| upload |
| createOnly |
| blocksDownload |
Scenario Outline: user removes access to a file in project space in link share
Given 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 "some content" to "textfile.txt"
And user "Alice" has created the following resource link share:
| resource | textfile.txt |
| space | NewSpace |
| permissionsRole | <permissions-role> |
| password | %public% |
When user "Alice" removes the link of file "textfile.txt" from space "NewSpace" using the Graph API
Then the HTTP status code should be "204"
Examples:
| permissions-role |
| view |
| edit |
| blocksDownload |
Scenario Outline: user removes user member from project space using permissions endpoint
Given 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
@@ -214,4 +142,4 @@ Feature: Remove access to a drive item
| permissions-role |
| Space Viewer |
| Space Editor |
| Manager |
| Manager |

View File

@@ -0,0 +1,81 @@
Feature: Remove access to a drive item
https://owncloud.dev/libre-graph-api/#/drives.permissions/DeletePermission
Background:
Given these users have been created with default attributes and without skeleton files:
| username |
| Alice |
| Brian |
And using spaces DAV path
Scenario Outline: user removes access to a folder in link share
Given user "Alice" has created folder "FolderToShare"
And user "Alice" has created the following resource link share:
| resource | FolderToShare |
| space | Personal |
| permissionsRole | <permissions-role> |
| password | %public% |
When user "Alice" removes the link of folder "FolderToShare" from space "Personal" using the Graph API
Then the HTTP status code should be "204"
Examples:
| permissions-role |
| view |
| edit |
| upload |
| createOnly |
| blocksDownload |
Scenario Outline: user removes access to a file in link share
Given user "Alice" has uploaded file "filesForUpload/textfile.txt" to "textfile.txt"
And user "Alice" has created the following resource link share:
| resource | textfile.txt |
| space | Personal |
| permissionsRole | <permissions-role> |
| password | %public% |
When user "Alice" removes the link of file "textfile.txt" from space "Personal" using the Graph API
Then the HTTP status code should be "204"
Examples:
| permissions-role |
| view |
| edit |
| blocksDownload |
Scenario Outline: user removes access to a folder in project space in link share
Given 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 created a folder "FolderToShare" in space "NewSpace"
And user "Alice" has created the following resource link share:
| resource | FolderToShare |
| space | NewSpace |
| permissionsRole | <permissions-role> |
| password | %public% |
When user "Alice" removes the link of folder "FolderToShare" from space "NewSpace" using the Graph API
Then the HTTP status code should be "204"
Examples:
| permissions-role |
| view |
| edit |
| upload |
| createOnly |
| blocksDownload |
Scenario Outline: user removes access to a file in project space in link share
Given 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 "some content" to "textfile.txt"
And user "Alice" has created the following resource link share:
| resource | textfile.txt |
| space | NewSpace |
| permissionsRole | <permissions-role> |
| password | %public% |
When user "Alice" removes the link of file "textfile.txt" from space "NewSpace" using the Graph API
Then the HTTP status code should be "204"
Examples:
| permissions-role |
| view |
| edit |
| blocksDownload |

View File

@@ -1255,613 +1255,6 @@ Feature: Create a link share for a resource
"""
And the public should be able to download file "textfile.txt" from the last link share with password "%public%" and the content should be "to share"
@issue-7879
Scenario Outline: try to create a link share of a Personal and Share drive using root endpoint
When user "Alice" tries to create the following space link share using root endpoint of the Graph API:
| space | <drive> |
| permissionsRole | <permissions-role> |
| password | %public% |
Then the HTTP status code should be "400"
And the JSON data of the response should match
"""
{
"type": "object",
"required": ["error"],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"innererror",
"message"
],
"properties": {
"code": {
"const": "invalidRequest"
},
"innererror": {
"type": "object",
"required": [
"date",
"request-id"
]
},
"message": {
"const": "unsupported space type"
}
}
}
}
}
"""
Examples:
| permissions-role | drive |
| view | Shares |
| edit | Shares |
| upload | Shares |
| createOnly | Shares |
| blocksDownload | Shares |
| view | Personal |
| edit | Personal |
| upload | Personal |
| createOnly | Personal |
| blocksDownload | Personal |
Scenario Outline: try to create an internal link share of a Personal and Share drives using root endpoint
When user "Alice" tries to create the following space link share using root endpoint of the Graph API:
| space | <drive> |
| permissionsRole | internal |
Then the HTTP status code should be "400"
And the JSON data of the response should match
"""
{
"type": "object",
"required": ["error"],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"innererror",
"message"
],
"properties": {
"code": {
"const": "invalidRequest"
},
"innererror": {
"type": "object",
"required": [
"date",
"request-id"
]
},
"message": {
"const": "unsupported space type"
}
}
}
}
}
"""
Examples:
| drive |
| Personal |
| Shares |
Scenario Outline: try to create an internal link share with password of a Personal and Share drive using root endpoint
When user "Alice" tries to create the following space link share using root endpoint of the Graph API:
| space | <drive> |
| permissionsRole | internal |
| password | %public% |
Then the HTTP status code should be "400"
And the JSON data of the response should match
"""
{
"type": "object",
"required": ["error"],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"innererror",
"message"
],
"properties": {
"code": {
"const": "invalidRequest"
},
"innererror": {
"type": "object",
"required": [
"date",
"request-id"
]
},
"message": {
"const": "unsupported space type"
}
}
}
}
}
"""
Examples:
| drive |
| Personal |
| Shares |
@issue-7879
Scenario Outline: create a link share of a project-space drive with different permissions using root endpoint
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 "projectSpace" with the default quota using the Graph API
When user "Alice" creates the following space link share using root endpoint of the Graph API:
| space | projectSpace |
| permissionsRole | <permissions-role> |
| password | %public% |
Then the HTTP status code should be "200"
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"hasPassword",
"id",
"link"
],
"properties": {
"hasPassword": {
"const": true
},
"id": {
"type": "string",
"pattern": "^[a-zA-Z]{15}$"
},
"link": {
"type": "object",
"required": [
"@libre.graph.displayName",
"@libre.graph.quickLink",
"preventsDownload",
"type",
"webUrl"
],
"properties": {
"@libre.graph.displayName": {
"const": ""
},
"@libre.graph.quickLink": {
"const": false
},
"preventsDownload": {
"const": false
},
"type": {
"const": "<permissions-role>"
},
"webUrl": {
"type": "string",
"pattern": "^%base_url%/s/[a-zA-Z]{15}$"
}
}
}
}
}
"""
Examples:
| permissions-role |
| view |
| edit |
| upload |
| createOnly |
| blocksDownload |
Scenario: create an internal link share of a project-space using root endpoint
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 "projectSpace" with the default quota using the Graph API
When user "Alice" creates the following space link share using root endpoint of the Graph API:
| space | projectSpace |
| permissionsRole | internal |
Then the HTTP status code should be "200"
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"hasPassword",
"id",
"link"
],
"properties": {
"hasPassword": {
"const": false
},
"id": {
"pattern": "^[a-zA-Z]{15}$"
},
"link": {
"type": "object",
"required": [
"@libre.graph.displayName",
"@libre.graph.quickLink",
"preventsDownload",
"type",
"webUrl"
],
"properties": {
"@libre.graph.displayName": {
"const": ""
},
"@libre.graph.quickLink": {
"const": false
},
"preventsDownload": {
"const": false
},
"type": {
"const": "internal"
},
"webUrl": {
"type": "string",
"pattern": "^%base_url%/s/[a-zA-Z]{15}$"
}
}
}
}
}
"""
Scenario: try to create an internal link share of a project-space drive with password
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 "projectSpace" with the default quota using the Graph API
When user "Alice" tries to create the following space link share using root endpoint of the Graph API:
| space | projectSpace |
| permissionsRole | internal |
| password | %public% |
Then the HTTP status code should be "400"
@issue-7879
Scenario Outline: create a link share of a project-space drive with display name and expiry date using root endpoint
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 "projectSpace" with the default quota using the Graph API
When user "Alice" creates the following space link share using root endpoint of the Graph API:
| space | projectSpace |
| permissionsRole | <permissions-role> |
| password | %public% |
| displayName | Homework |
| expirationDateTime | 2200-07-15T14:00:00.000Z |
Then the HTTP status code should be "200"
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"hasPassword",
"id",
"link",
"expirationDateTime"
],
"properties": {
"hasPassword": {
"const": true
},
"id": {
"type": "string",
"pattern": "^[a-zA-Z]{15}$"
},
"expirationDateTime": {
"const": "2200-07-15T23:59:59Z"
},
"link": {
"type": "object",
"required": [
"@libre.graph.displayName",
"@libre.graph.quickLink",
"preventsDownload",
"type",
"webUrl"
],
"properties": {
"@libre.graph.displayName": {
"const": "Homework"
},
"@libre.graph.quickLink": {
"const": false
},
"preventsDownload": {
"const": false
},
"type": {
"const": "<permissions-role>"
},
"webUrl": {
"type": "string",
"pattern": "^%base_url%/s/[a-zA-Z]{15}$"
}
}
}
}
}
"""
Examples:
| permissions-role |
| view |
| edit |
| upload |
| createOnly |
| blocksDownload |
@issue-7879
Scenario Outline: try to create a link share of a project-space drive with a password that is listed in the Banned-Password-List using root endpoint
Given the config "OCIS_PASSWORD_POLICY_BANNED_PASSWORDS_LIST" has been set to path "config/drone/banned-password-list.txt"
And 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 "projectSpace" with the default quota using the Graph API
When user "Alice" tries to create the following space link share using root endpoint of the Graph API:
| space | projectSpace |
| permissionsRole | <permissions-role> |
| password | <banned-password> |
Then the HTTP status code should be "400"
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"pattern": "invalidRequest"
},
"message": {
"const": "unfortunately, your password is commonly used. please pick a harder-to-guess password for your safety"
}
}
}
}
}
"""
Examples:
| banned-password | permissions-role |
| 123 | view |
| password | view |
| ownCloud | view |
| 123 | edit |
| password | edit |
| ownCloud | edit |
| 123 | upload |
| password | upload |
| ownCloud | upload |
| 123 | createOnly |
| password | createOnly |
| ownCloud | createOnly |
| 123 | blocksDownload |
| password | blocksDownload |
| ownCloud | blocksDownload |
@env-config @issue-7879
Scenario Outline: create a link share of a project-space drive without password using root endpoint
Given the following configs have been set:
| config | value |
| OCIS_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD | false |
And 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 "projectSpace" with the default quota using the Graph API
When user "Alice" creates the following space link share using root endpoint of the Graph API:
| space | projectSpace |
| permissionsRole | <permissions-role> |
Then the HTTP status code should be "200"
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"hasPassword",
"id",
"link"
],
"properties": {
"hasPassword": {
"const": false
},
"id": {
"type": "string",
"pattern": "^[a-zA-Z]{15}$"
},
"link": {
"type": "object",
"required": [
"@libre.graph.displayName",
"@libre.graph.quickLink",
"preventsDownload",
"type",
"webUrl"
],
"properties": {
"@libre.graph.displayName": {
"const": ""
},
"@libre.graph.quickLink": {
"const": false
},
"preventsDownload": {
"const": false
},
"type": {
"const": "<permissions-role>"
},
"webUrl": {
"type": "string",
"pattern": "^%base_url%/s/[a-zA-Z]{15}$"
}
}
}
}
}
"""
Examples:
| permissions-role |
| view |
| edit |
| upload |
| createOnly |
| blocksDownload |
@issue-7879
Scenario Outline: create a link share of a project-space drive with display name using root endpoint
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 "projectSpace" with the default quota using the Graph API
When user "Alice" creates the following space link share using root endpoint of the Graph API:
| space | projectSpace |
| permissionsRole | <permissions-role> |
| password | %public% |
| displayName | Homework |
Then the HTTP status code should be "200"
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"hasPassword",
"id",
"link"
],
"properties": {
"hasPassword": {
"const": true
},
"id": {
"type": "string",
"pattern": "^[a-zA-Z]{15}$"
},
"link": {
"type": "object",
"required": [
"@libre.graph.displayName",
"@libre.graph.quickLink",
"preventsDownload",
"type",
"webUrl"
],
"properties": {
"@libre.graph.displayName": {
"const": "Homework"
},
"@libre.graph.quickLink": {
"const": false
},
"preventsDownload": {
"const": false
},
"type": {
"const": "<permissions-role>"
},
"webUrl": {
"type": "string",
"pattern": "^%base_url%/s/[a-zA-Z]{15}$"
}
}
}
}
}
"""
Examples:
| permissions-role |
| view |
| edit |
| upload |
| createOnly |
| blocksDownload |
@issue-7879
Scenario Outline: create a link share of a project-space drive with expiry date using root endpoint
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 "projectSpace" with the default quota using the Graph API
When user "Alice" creates the following space link share using root endpoint of the Graph API:
| space | projectSpace |
| permissionsRole | <permissions-role> |
| password | %public% |
| expirationDateTime | 2200-07-15T14:00:00.000Z |
Then the HTTP status code should be "200"
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"hasPassword",
"id",
"link",
"expirationDateTime"
],
"properties": {
"hasPassword": {
"const": true
},
"id": {
"type": "string",
"pattern": "^[a-zA-Z]{15}$"
},
"expirationDateTime": {
"const": "2200-07-15T23:59:59Z"
},
"link": {
"type": "object",
"required": [
"@libre.graph.displayName",
"@libre.graph.quickLink",
"preventsDownload",
"type",
"webUrl"
],
"properties": {
"@libre.graph.displayName": {
"const": ""
},
"@libre.graph.quickLink": {
"const": false
},
"preventsDownload": {
"const": false
},
"type": {
"const": "<permissions-role>"
},
"webUrl": {
"type": "string",
"pattern": "^%base_url%/s/[a-zA-Z]{15}$"
}
}
}
}
}
"""
Examples:
| permissions-role |
| view |
| edit |
| upload |
| createOnly |
| blocksDownload |
@issue-7879
Scenario Outline: try to create a link share of a Personal and Shares drives using permissions endpoint
When user "Alice" tries to create the following space link share using permissions endpoint of the Graph API:
@@ -2990,128 +2383,3 @@ Feature: Create a link share for a resource
}
}
"""
Scenario Outline: create quick link share of a project space drive using root endpoint
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 "projectSpace" with the default quota using the Graph API
When user "Alice" creates the following space link share using root endpoint of the Graph API:
| space | projectSpace |
| permissionsRole | <permissions-role> |
| password | %public% |
| displayName | Link |
| quickLink | true |
Then the HTTP status code should be "200"
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"hasPassword",
"id",
"link"
],
"properties": {
"hasPassword": {
"const": true
},
"id": {
"pattern": "^[a-zA-Z]{15}$"
},
"link": {
"type": "object",
"required": [
"@libre.graph.displayName",
"@libre.graph.quickLink",
"preventsDownload",
"type",
"webUrl"
],
"properties": {
"@libre.graph.displayName": {
"const": "Link"
},
"@libre.graph.quickLink": {
"const": true
},
"preventsDownload": {
"const": false
},
"type": {
"const": "<permissions-role>"
},
"webUrl": {
"type": "string",
"pattern": "^%base_url%/s/[a-zA-Z]{15}$"
}
}
}
}
}
"""
Examples:
| permissions-role |
| view |
| upload |
| edit |
| createOnly |
Scenario: create an internal quick link share of a project space drive using root endpoint
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 "projectSpace" with the default quota using the Graph API
When user "Alice" creates the following space link share using root endpoint of the Graph API:
| space | projectSpace |
| permissionsRole | internal |
| displayName | Link |
| quickLink | true |
Then the HTTP status code should be "200"
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"hasPassword",
"id",
"link"
],
"properties": {
"hasPassword": {
"const": false
},
"id": {
"pattern": "^[a-zA-Z]{15}$"
},
"link": {
"type": "object",
"required": [
"@libre.graph.displayName",
"@libre.graph.quickLink",
"preventsDownload",
"type",
"webUrl"
],
"properties": {
"@libre.graph.displayName": {
"const": "Link"
},
"@libre.graph.quickLink": {
"const": true
},
"preventsDownload": {
"const": false
},
"type": {
"const": "internal"
},
"webUrl": {
"type": "string",
"pattern": "^%base_url%/s/[a-zA-Z]{15}$"
}
}
}
}
}
"""

View File

@@ -318,69 +318,6 @@ Feature: Update a link share for a resource
"""
And the public should be able to download file "/textfile.txt" from the last link share with password "%public%" and the content should be "to share"
@env-config
Scenario: set password on a existing link share of a project-space drive using root endpoint
Given the following configs have been set:
| config | value |
| OCIS_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD | false |
And 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 "projectSpace" with the default quota using the Graph API
And user "Alice" has uploaded a file inside space "projectSpace" with content "to share" to "textfile.txt"
And user "Alice" has created the following space link share:
| space | projectSpace |
| permissionsRole | view |
When user "Alice" sets the following password for the last space link share using root endpoint of the Graph API:
| space | projectSpace |
| password | %public% |
Then the HTTP status code should be "200"
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"hasPassword"
],
"properties": {
"hasPassword": {
"const": true
}
}
}
"""
And the public should be able to download file "textfile.txt" from the last link share with password "%public%" and the content should be "to share"
Scenario: update password on a existing link share of a project-space drive using root endpoint
And 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 "projectSpace" with the default quota using the Graph API
And user "Alice" has uploaded a file inside space "projectSpace" with content "to share" to "textfile.txt"
And user "Alice" has created the following space link share:
| space | projectSpace |
| permissionsRole | view |
| password | $heLlo*1234* |
When user "Alice" sets the following password for the last space link share using root endpoint of the Graph API:
| space | projectSpace |
| password | %public% |
Then the HTTP status code should be "200"
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"hasPassword"
],
"properties": {
"hasPassword": {
"const": true
}
}
}
"""
And the public should be able to download file "textfile.txt" from the last link share with password "%public%" and the content should be "to share"
And the public download of file "textfile.txt" from the last link share with password "$heLlo*1234*" should fail with HTTP status code "401" using shareNg
@issue-7879
Scenario Outline: update link share of a project-space using permissions endpoint
Given using spaces DAV path

View File

@@ -0,0 +1,739 @@
Feature: Create a link share for a resource
https://owncloud.dev/libre-graph-api/#/drives.permissions/CreateLink
Background:
Given these users have been created with default attributes and without skeleton files:
| username |
| Alice |
@issue-7879
Scenario Outline: try to create a link share of a Personal and Share drive using root endpoint
When user "Alice" tries to create the following space link share using root endpoint of the Graph API:
| space | <drive> |
| permissionsRole | <permissions-role> |
| password | %public% |
Then the HTTP status code should be "400"
And the JSON data of the response should match
"""
{
"type": "object",
"required": ["error"],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"innererror",
"message"
],
"properties": {
"code": {
"const": "invalidRequest"
},
"innererror": {
"type": "object",
"required": [
"date",
"request-id"
]
},
"message": {
"const": "unsupported space type"
}
}
}
}
}
"""
Examples:
| permissions-role | drive |
| view | Shares |
| edit | Shares |
| upload | Shares |
| createOnly | Shares |
| blocksDownload | Shares |
| view | Personal |
| edit | Personal |
| upload | Personal |
| createOnly | Personal |
| blocksDownload | Personal |
Scenario Outline: try to create an internal link share of a Personal and Share drives using root endpoint
When user "Alice" tries to create the following space link share using root endpoint of the Graph API:
| space | <drive> |
| permissionsRole | internal |
Then the HTTP status code should be "400"
And the JSON data of the response should match
"""
{
"type": "object",
"required": ["error"],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"innererror",
"message"
],
"properties": {
"code": {
"const": "invalidRequest"
},
"innererror": {
"type": "object",
"required": [
"date",
"request-id"
]
},
"message": {
"const": "unsupported space type"
}
}
}
}
}
"""
Examples:
| drive |
| Personal |
| Shares |
Scenario Outline: try to create an internal link share with password of a Personal and Share drive using root endpoint
When user "Alice" tries to create the following space link share using root endpoint of the Graph API:
| space | <drive> |
| permissionsRole | internal |
| password | %public% |
Then the HTTP status code should be "400"
And the JSON data of the response should match
"""
{
"type": "object",
"required": ["error"],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"innererror",
"message"
],
"properties": {
"code": {
"const": "invalidRequest"
},
"innererror": {
"type": "object",
"required": [
"date",
"request-id"
]
},
"message": {
"const": "unsupported space type"
}
}
}
}
}
"""
Examples:
| drive |
| Personal |
| Shares |
@issue-7879
Scenario Outline: create a link share of a project-space drive with different permissions using root endpoint
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 "projectSpace" with the default quota using the Graph API
When user "Alice" creates the following space link share using root endpoint of the Graph API:
| space | projectSpace |
| permissionsRole | <permissions-role> |
| password | %public% |
Then the HTTP status code should be "200"
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"hasPassword",
"id",
"link"
],
"properties": {
"hasPassword": {
"const": true
},
"id": {
"type": "string",
"pattern": "^[a-zA-Z]{15}$"
},
"link": {
"type": "object",
"required": [
"@libre.graph.displayName",
"@libre.graph.quickLink",
"preventsDownload",
"type",
"webUrl"
],
"properties": {
"@libre.graph.displayName": {
"const": ""
},
"@libre.graph.quickLink": {
"const": false
},
"preventsDownload": {
"const": false
},
"type": {
"const": "<permissions-role>"
},
"webUrl": {
"type": "string",
"pattern": "^%base_url%/s/[a-zA-Z]{15}$"
}
}
}
}
}
"""
Examples:
| permissions-role |
| view |
| edit |
| upload |
| createOnly |
| blocksDownload |
Scenario: create an internal link share of a project-space using root endpoint
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 "projectSpace" with the default quota using the Graph API
When user "Alice" creates the following space link share using root endpoint of the Graph API:
| space | projectSpace |
| permissionsRole | internal |
Then the HTTP status code should be "200"
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"hasPassword",
"id",
"link"
],
"properties": {
"hasPassword": {
"const": false
},
"id": {
"pattern": "^[a-zA-Z]{15}$"
},
"link": {
"type": "object",
"required": [
"@libre.graph.displayName",
"@libre.graph.quickLink",
"preventsDownload",
"type",
"webUrl"
],
"properties": {
"@libre.graph.displayName": {
"const": ""
},
"@libre.graph.quickLink": {
"const": false
},
"preventsDownload": {
"const": false
},
"type": {
"const": "internal"
},
"webUrl": {
"type": "string",
"pattern": "^%base_url%/s/[a-zA-Z]{15}$"
}
}
}
}
}
"""
Scenario: try to create an internal link share of a project-space drive with password
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 "projectSpace" with the default quota using the Graph API
When user "Alice" tries to create the following space link share using root endpoint of the Graph API:
| space | projectSpace |
| permissionsRole | internal |
| password | %public% |
Then the HTTP status code should be "400"
@issue-7879
Scenario Outline: create a link share of a project-space drive with display name and expiry date using root endpoint
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 "projectSpace" with the default quota using the Graph API
When user "Alice" creates the following space link share using root endpoint of the Graph API:
| space | projectSpace |
| permissionsRole | <permissions-role> |
| password | %public% |
| displayName | Homework |
| expirationDateTime | 2200-07-15T14:00:00.000Z |
Then the HTTP status code should be "200"
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"hasPassword",
"id",
"link",
"expirationDateTime"
],
"properties": {
"hasPassword": {
"const": true
},
"id": {
"type": "string",
"pattern": "^[a-zA-Z]{15}$"
},
"expirationDateTime": {
"const": "2200-07-15T23:59:59Z"
},
"link": {
"type": "object",
"required": [
"@libre.graph.displayName",
"@libre.graph.quickLink",
"preventsDownload",
"type",
"webUrl"
],
"properties": {
"@libre.graph.displayName": {
"const": "Homework"
},
"@libre.graph.quickLink": {
"const": false
},
"preventsDownload": {
"const": false
},
"type": {
"const": "<permissions-role>"
},
"webUrl": {
"type": "string",
"pattern": "^%base_url%/s/[a-zA-Z]{15}$"
}
}
}
}
}
"""
Examples:
| permissions-role |
| view |
| edit |
| upload |
| createOnly |
| blocksDownload |
@issue-7879
Scenario Outline: try to create a link share of a project-space drive with a password that is listed in the Banned-Password-List using root endpoint
Given the config "OCIS_PASSWORD_POLICY_BANNED_PASSWORDS_LIST" has been set to path "config/drone/banned-password-list.txt"
And 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 "projectSpace" with the default quota using the Graph API
When user "Alice" tries to create the following space link share using root endpoint of the Graph API:
| space | projectSpace |
| permissionsRole | <permissions-role> |
| password | <banned-password> |
Then the HTTP status code should be "400"
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"pattern": "invalidRequest"
},
"message": {
"const": "unfortunately, your password is commonly used. please pick a harder-to-guess password for your safety"
}
}
}
}
}
"""
Examples:
| banned-password | permissions-role |
| 123 | view |
| password | view |
| ownCloud | view |
| 123 | edit |
| password | edit |
| ownCloud | edit |
| 123 | upload |
| password | upload |
| ownCloud | upload |
| 123 | createOnly |
| password | createOnly |
| ownCloud | createOnly |
| 123 | blocksDownload |
| password | blocksDownload |
| ownCloud | blocksDownload |
@env-config @issue-7879
Scenario Outline: create a link share of a project-space drive without password using root endpoint
Given the following configs have been set:
| config | value |
| OCIS_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD | false |
And 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 "projectSpace" with the default quota using the Graph API
When user "Alice" creates the following space link share using root endpoint of the Graph API:
| space | projectSpace |
| permissionsRole | <permissions-role> |
Then the HTTP status code should be "200"
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"hasPassword",
"id",
"link"
],
"properties": {
"hasPassword": {
"const": false
},
"id": {
"type": "string",
"pattern": "^[a-zA-Z]{15}$"
},
"link": {
"type": "object",
"required": [
"@libre.graph.displayName",
"@libre.graph.quickLink",
"preventsDownload",
"type",
"webUrl"
],
"properties": {
"@libre.graph.displayName": {
"const": ""
},
"@libre.graph.quickLink": {
"const": false
},
"preventsDownload": {
"const": false
},
"type": {
"const": "<permissions-role>"
},
"webUrl": {
"type": "string",
"pattern": "^%base_url%/s/[a-zA-Z]{15}$"
}
}
}
}
}
"""
Examples:
| permissions-role |
| view |
| edit |
| upload |
| createOnly |
| blocksDownload |
@issue-7879
Scenario Outline: create a link share of a project-space drive with display name using root endpoint
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 "projectSpace" with the default quota using the Graph API
When user "Alice" creates the following space link share using root endpoint of the Graph API:
| space | projectSpace |
| permissionsRole | <permissions-role> |
| password | %public% |
| displayName | Homework |
Then the HTTP status code should be "200"
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"hasPassword",
"id",
"link"
],
"properties": {
"hasPassword": {
"const": true
},
"id": {
"type": "string",
"pattern": "^[a-zA-Z]{15}$"
},
"link": {
"type": "object",
"required": [
"@libre.graph.displayName",
"@libre.graph.quickLink",
"preventsDownload",
"type",
"webUrl"
],
"properties": {
"@libre.graph.displayName": {
"const": "Homework"
},
"@libre.graph.quickLink": {
"const": false
},
"preventsDownload": {
"const": false
},
"type": {
"const": "<permissions-role>"
},
"webUrl": {
"type": "string",
"pattern": "^%base_url%/s/[a-zA-Z]{15}$"
}
}
}
}
}
"""
Examples:
| permissions-role |
| view |
| edit |
| upload |
| createOnly |
| blocksDownload |
@issue-7879
Scenario Outline: create a link share of a project-space drive with expiry date using root endpoint
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 "projectSpace" with the default quota using the Graph API
When user "Alice" creates the following space link share using root endpoint of the Graph API:
| space | projectSpace |
| permissionsRole | <permissions-role> |
| password | %public% |
| expirationDateTime | 2200-07-15T14:00:00.000Z |
Then the HTTP status code should be "200"
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"hasPassword",
"id",
"link",
"expirationDateTime"
],
"properties": {
"hasPassword": {
"const": true
},
"id": {
"type": "string",
"pattern": "^[a-zA-Z]{15}$"
},
"expirationDateTime": {
"const": "2200-07-15T23:59:59Z"
},
"link": {
"type": "object",
"required": [
"@libre.graph.displayName",
"@libre.graph.quickLink",
"preventsDownload",
"type",
"webUrl"
],
"properties": {
"@libre.graph.displayName": {
"const": ""
},
"@libre.graph.quickLink": {
"const": false
},
"preventsDownload": {
"const": false
},
"type": {
"const": "<permissions-role>"
},
"webUrl": {
"type": "string",
"pattern": "^%base_url%/s/[a-zA-Z]{15}$"
}
}
}
}
}
"""
Examples:
| permissions-role |
| view |
| edit |
| upload |
| createOnly |
| blocksDownload |
Scenario Outline: create quick link share of a project space drive using root endpoint
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 "projectSpace" with the default quota using the Graph API
When user "Alice" creates the following space link share using root endpoint of the Graph API:
| space | projectSpace |
| permissionsRole | <permissions-role> |
| password | %public% |
| displayName | Link |
| quickLink | true |
Then the HTTP status code should be "200"
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"hasPassword",
"id",
"link"
],
"properties": {
"hasPassword": {
"const": true
},
"id": {
"pattern": "^[a-zA-Z]{15}$"
},
"link": {
"type": "object",
"required": [
"@libre.graph.displayName",
"@libre.graph.quickLink",
"preventsDownload",
"type",
"webUrl"
],
"properties": {
"@libre.graph.displayName": {
"const": "Link"
},
"@libre.graph.quickLink": {
"const": true
},
"preventsDownload": {
"const": false
},
"type": {
"const": "<permissions-role>"
},
"webUrl": {
"type": "string",
"pattern": "^%base_url%/s/[a-zA-Z]{15}$"
}
}
}
}
}
"""
Examples:
| permissions-role |
| view |
| upload |
| edit |
| createOnly |
Scenario: create an internal quick link share of a project space drive using root endpoint
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 "projectSpace" with the default quota using the Graph API
When user "Alice" creates the following space link share using root endpoint of the Graph API:
| space | projectSpace |
| permissionsRole | internal |
| displayName | Link |
| quickLink | true |
Then the HTTP status code should be "200"
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"hasPassword",
"id",
"link"
],
"properties": {
"hasPassword": {
"const": false
},
"id": {
"pattern": "^[a-zA-Z]{15}$"
},
"link": {
"type": "object",
"required": [
"@libre.graph.displayName",
"@libre.graph.quickLink",
"preventsDownload",
"type",
"webUrl"
],
"properties": {
"@libre.graph.displayName": {
"const": "Link"
},
"@libre.graph.quickLink": {
"const": true
},
"preventsDownload": {
"const": false
},
"type": {
"const": "internal"
},
"webUrl": {
"type": "string",
"pattern": "^%base_url%/s/[a-zA-Z]{15}$"
}
}
}
}
}
"""

View File

@@ -0,0 +1,70 @@
Feature: Update a link share for a resource
https://owncloud.dev/libre-graph-api/#/drives.permissions/CreateLink
Background:
Given these users have been created with default attributes and without skeleton files:
| username |
| Alice |
@env-config
Scenario: set password on a existing link share of a project-space drive using root endpoint
Given the following configs have been set:
| config | value |
| OCIS_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD | false |
And 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 "projectSpace" with the default quota using the Graph API
And user "Alice" has uploaded a file inside space "projectSpace" with content "to share" to "textfile.txt"
And user "Alice" has created the following space link share:
| space | projectSpace |
| permissionsRole | view |
When user "Alice" sets the following password for the last space link share using root endpoint of the Graph API:
| space | projectSpace |
| password | %public% |
Then the HTTP status code should be "200"
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"hasPassword"
],
"properties": {
"hasPassword": {
"const": true
}
}
}
"""
And the public should be able to download file "textfile.txt" from the last link share with password "%public%" and the content should be "to share"
Scenario: update password on a existing link share of a project-space drive using root endpoint
And 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 "projectSpace" with the default quota using the Graph API
And user "Alice" has uploaded a file inside space "projectSpace" with content "to share" to "textfile.txt"
And user "Alice" has created the following space link share:
| space | projectSpace |
| permissionsRole | view |
| password | $heLlo*1234* |
When user "Alice" sets the following password for the last space link share using root endpoint of the Graph API:
| space | projectSpace |
| password | %public% |
Then the HTTP status code should be "200"
And the JSON data of the response should match
"""
{
"type": "object",
"required": [
"hasPassword"
],
"properties": {
"hasPassword": {
"const": true
}
}
}
"""
And the public should be able to download file "textfile.txt" from the last link share with password "%public%" and the content should be "to share"
And the public download of file "textfile.txt" from the last link share with password "$heLlo*1234*" should fail with HTTP status code "401" using shareNg