From ff9a80f76c0d0ddc6bcf177437d51580b21c43fa Mon Sep 17 00:00:00 2001 From: pradip Date: Mon, 8 Jul 2024 12:53:22 +0545 Subject: [PATCH] test:split apiSharingNg suite for checking if CI time gets reduced --- .drone.star | 6 +- tests/acceptance/config/behat.yml | 30 +- ...ected-failures-localAPI-on-OCIS-storage.md | 100 +-- .../enableDisableShareSync.feature | 0 .../listPermissions.feature | 0 .../propfindShares.feature | 0 .../removeAccessToDrive.feature | 0 .../removeAccessToDriveItem.feature | 74 +- .../sharedByMe.feature | 0 .../sharedWithMe.feature | 0 .../sharedWithMeSyncDisabled.feature | 0 ...removeAccessToDriveItemInLinkShare.feature | 81 ++ .../createLinkShare.feature | 732 ----------------- .../updateLinkShare.feature | 63 -- .../createLinkShare.feature | 739 ++++++++++++++++++ .../updateLinkShare.feature | 70 ++ 16 files changed, 971 insertions(+), 924 deletions(-) rename tests/acceptance/features/{apiSharingNg => apiSharingNg1}/enableDisableShareSync.feature (100%) rename tests/acceptance/features/{apiSharingNg => apiSharingNg1}/listPermissions.feature (100%) rename tests/acceptance/features/{apiSharingNg => apiSharingNg1}/propfindShares.feature (100%) rename tests/acceptance/features/{apiSharingNg => apiSharingNg1}/removeAccessToDrive.feature (100%) rename tests/acceptance/features/{apiSharingNg => apiSharingNg1}/removeAccessToDriveItem.feature (68%) rename tests/acceptance/features/{apiSharingNg => apiSharingNg1}/sharedByMe.feature (100%) rename tests/acceptance/features/{apiSharingNg => apiSharingNg1}/sharedWithMe.feature (100%) rename tests/acceptance/features/{apiSharingNg => apiSharingNg1}/sharedWithMeSyncDisabled.feature (100%) create mode 100644 tests/acceptance/features/apiSharingNg2/removeAccessToDriveItemInLinkShare.feature rename tests/acceptance/features/{apiSharingNgLinkShare => apiSharingNgLinkSharePermission}/createLinkShare.feature (76%) rename tests/acceptance/features/{apiSharingNgLinkShare => apiSharingNgLinkSharePermission}/updateLinkShare.feature (91%) create mode 100644 tests/acceptance/features/apiSharingNgLinkShareRoot/createLinkShare.feature create mode 100644 tests/acceptance/features/apiSharingNgLinkShareRoot/updateLinkShare.feature diff --git a/.drone.star b/.drone.star index b95c887349b..154b1b40267 100644 --- a/.drone.star +++ b/.drone.star @@ -85,9 +85,11 @@ config = { "apiLocks", "apiSearch1", "apiSearch2", - "apiSharingNg", + "apiSharingNg1", + "apiSharingNg2", "apiSharingNgShareInvitation", - "apiSharingNgLinkShare", + "apiSharingNgLinkSharePermission", + "apiSharingNgLinkShareRoot", ], "skip": False, }, diff --git a/tests/acceptance/config/behat.yml b/tests/acceptance/config/behat.yml index 1644768d081..348dce25cca 100644 --- a/tests/acceptance/config/behat.yml +++ b/tests/acceptance/config/behat.yml @@ -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/apiSharingNgLinkSharePermission" + context: *common_ldap_suite_context + contexts: + - FeatureContext: *common_feature_context_params + - SpacesContext: + - SharingNgContext: + - PublicWebDavContext: + - OcisConfigContext: + + apiSharingNgLinkShareRoot: paths: - - "%paths.base%/../features/apiSharingNgLinkShare" + - "%paths.base%/../features/apiSharingNgLinkShareRoot" context: *common_ldap_suite_context contexts: - FeatureContext: *common_feature_context_params diff --git a/tests/acceptance/expected-failures-localAPI-on-OCIS-storage.md b/tests/acceptance/expected-failures-localAPI-on-OCIS-storage.md index 45accd77e19..38a031f2ece 100644 --- a/tests/acceptance/expected-failures-localAPI-on-OCIS-storage.md +++ b/tests/acceptance/expected-failures-localAPI-on-OCIS-storage.md @@ -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) diff --git a/tests/acceptance/features/apiSharingNg/enableDisableShareSync.feature b/tests/acceptance/features/apiSharingNg1/enableDisableShareSync.feature similarity index 100% rename from tests/acceptance/features/apiSharingNg/enableDisableShareSync.feature rename to tests/acceptance/features/apiSharingNg1/enableDisableShareSync.feature diff --git a/tests/acceptance/features/apiSharingNg/listPermissions.feature b/tests/acceptance/features/apiSharingNg1/listPermissions.feature similarity index 100% rename from tests/acceptance/features/apiSharingNg/listPermissions.feature rename to tests/acceptance/features/apiSharingNg1/listPermissions.feature diff --git a/tests/acceptance/features/apiSharingNg/propfindShares.feature b/tests/acceptance/features/apiSharingNg1/propfindShares.feature similarity index 100% rename from tests/acceptance/features/apiSharingNg/propfindShares.feature rename to tests/acceptance/features/apiSharingNg1/propfindShares.feature diff --git a/tests/acceptance/features/apiSharingNg/removeAccessToDrive.feature b/tests/acceptance/features/apiSharingNg1/removeAccessToDrive.feature similarity index 100% rename from tests/acceptance/features/apiSharingNg/removeAccessToDrive.feature rename to tests/acceptance/features/apiSharingNg1/removeAccessToDrive.feature diff --git a/tests/acceptance/features/apiSharingNg/removeAccessToDriveItem.feature b/tests/acceptance/features/apiSharingNg1/removeAccessToDriveItem.feature similarity index 68% rename from tests/acceptance/features/apiSharingNg/removeAccessToDriveItem.feature rename to tests/acceptance/features/apiSharingNg1/removeAccessToDriveItem.feature index 4012c91505b..23299dfdf28 100644 --- a/tests/acceptance/features/apiSharingNg/removeAccessToDriveItem.feature +++ b/tests/acceptance/features/apiSharingNg1/removeAccessToDriveItem.feature @@ -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 | | - | 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 | | - | 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 | | - | 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 | | - | 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 | \ No newline at end of file + | Manager | diff --git a/tests/acceptance/features/apiSharingNg/sharedByMe.feature b/tests/acceptance/features/apiSharingNg1/sharedByMe.feature similarity index 100% rename from tests/acceptance/features/apiSharingNg/sharedByMe.feature rename to tests/acceptance/features/apiSharingNg1/sharedByMe.feature diff --git a/tests/acceptance/features/apiSharingNg/sharedWithMe.feature b/tests/acceptance/features/apiSharingNg1/sharedWithMe.feature similarity index 100% rename from tests/acceptance/features/apiSharingNg/sharedWithMe.feature rename to tests/acceptance/features/apiSharingNg1/sharedWithMe.feature diff --git a/tests/acceptance/features/apiSharingNg/sharedWithMeSyncDisabled.feature b/tests/acceptance/features/apiSharingNg1/sharedWithMeSyncDisabled.feature similarity index 100% rename from tests/acceptance/features/apiSharingNg/sharedWithMeSyncDisabled.feature rename to tests/acceptance/features/apiSharingNg1/sharedWithMeSyncDisabled.feature diff --git a/tests/acceptance/features/apiSharingNg2/removeAccessToDriveItemInLinkShare.feature b/tests/acceptance/features/apiSharingNg2/removeAccessToDriveItemInLinkShare.feature new file mode 100644 index 00000000000..2da121151c5 --- /dev/null +++ b/tests/acceptance/features/apiSharingNg2/removeAccessToDriveItemInLinkShare.feature @@ -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 | | + | 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 | | + | 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 | | + | 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 | | + | 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 | diff --git a/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature b/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature similarity index 76% rename from tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature rename to tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature index cd917fad7ab..f1d8cb3fccc 100644 --- a/tests/acceptance/features/apiSharingNgLinkShare/createLinkShare.feature +++ b/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature @@ -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 | | - | permissionsRole | | - | 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 | | - | 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 | | - | 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 | | - | 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": "" - }, - "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 | | - | 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": "" - }, - "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 | | - | 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 | | - 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": "" - }, - "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 | | - | 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": "" - }, - "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 | | - | 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": "" - }, - "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 | | - | 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": "" - }, - "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}$" - } - } - } - } - } - """ diff --git a/tests/acceptance/features/apiSharingNgLinkShare/updateLinkShare.feature b/tests/acceptance/features/apiSharingNgLinkSharePermission/updateLinkShare.feature similarity index 91% rename from tests/acceptance/features/apiSharingNgLinkShare/updateLinkShare.feature rename to tests/acceptance/features/apiSharingNgLinkSharePermission/updateLinkShare.feature index 4624eea7114..e3ba8383bbc 100644 --- a/tests/acceptance/features/apiSharingNgLinkShare/updateLinkShare.feature +++ b/tests/acceptance/features/apiSharingNgLinkSharePermission/updateLinkShare.feature @@ -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 diff --git a/tests/acceptance/features/apiSharingNgLinkShareRoot/createLinkShare.feature b/tests/acceptance/features/apiSharingNgLinkShareRoot/createLinkShare.feature new file mode 100644 index 00000000000..f0ef2d61abb --- /dev/null +++ b/tests/acceptance/features/apiSharingNgLinkShareRoot/createLinkShare.feature @@ -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 | | + | permissionsRole | | + | 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 | | + | 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 | | + | 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 | | + | 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": "" + }, + "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 | | + | 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": "" + }, + "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 | | + | 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 | | + 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": "" + }, + "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 | | + | 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": "" + }, + "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 | | + | 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": "" + }, + "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 | | + | 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": "" + }, + "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}$" + } + } + } + } + } + """ diff --git a/tests/acceptance/features/apiSharingNgLinkShareRoot/updateLinkShare.feature b/tests/acceptance/features/apiSharingNgLinkShareRoot/updateLinkShare.feature new file mode 100644 index 00000000000..7f2d65b73c8 --- /dev/null +++ b/tests/acceptance/features/apiSharingNgLinkShareRoot/updateLinkShare.feature @@ -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