diff options
author | John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> | 2024-09-17 23:35:54 +0200 |
---|---|---|
committer | John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> | 2024-09-18 00:15:19 +0200 |
commit | b24e02e5df5c1825060be295d21eaa6001c3cd17 (patch) | |
tree | bbf05746d4b1764463738ceb24a1374530ec6047 /build | |
parent | 26abc86eca7cf6ae95f20e1dc180774d11892aab (diff) | |
download | nextcloud-server-b24e02e5df5c1825060be295d21eaa6001c3cd17.tar.gz nextcloud-server-b24e02e5df5c1825060be295d21eaa6001c3cd17.zip |
fix(core): profile design and pronouns supportfieat/profile-pronounces
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Diffstat (limited to 'build')
-rw-r--r-- | build/integration/features/provisioning-v1.feature | 1454 |
1 files changed, 727 insertions, 727 deletions
diff --git a/build/integration/features/provisioning-v1.feature b/build/integration/features/provisioning-v1.feature index a40afbab769..73e159464bd 100644 --- a/build/integration/features/provisioning-v1.feature +++ b/build/integration/features/provisioning-v1.feature @@ -2,62 +2,62 @@ # SPDX-FileCopyrightText: 2015-2016 ownCloud, Inc. # SPDX-License-Identifier: AGPL-3.0-only Feature: provisioning - Background: - Given using api version "1" - - Scenario: Getting an not existing user - Given As an "admin" - When sending "GET" to "/cloud/users/test" - Then the OCS status code should be "404" - And the HTTP status code should be "200" - - Scenario: Listing all users - Given As an "admin" - When sending "GET" to "/cloud/users" - Then the OCS status code should be "100" - And the HTTP status code should be "200" - - Scenario: Create a user - Given As an "admin" - And user "brand-new-user" does not exist - When sending "POST" to "/cloud/users" with - | userid | brand-new-user | - | password | 123456 | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And user "brand-new-user" exists - - Scenario: Create an existing user - Given As an "admin" - And user "brand-new-user" exists - When sending "POST" to "/cloud/users" with - | userid | brand-new-user | - | password | 123456 | - Then the OCS status code should be "102" - And the HTTP status code should be "200" - And user "brand-new-user" has - | id | brand-new-user | - | displayname | brand-new-user | - | email | | - | phone | | - | address | | - | website | | - | twitter | | - - Scenario: Get an existing user - Given As an "admin" - When sending "GET" to "/cloud/users/brand-new-user" - Then the OCS status code should be "100" - And the HTTP status code should be "200" - - Scenario: Getting all users - Given As an "admin" - And user "brand-new-user" exists - And user "admin" exists - When sending "GET" to "/cloud/users" - Then users returned are - | brand-new-user | - | admin | + Background: + Given using api version "1" + + Scenario: Getting an not existing user + Given As an "admin" + When sending "GET" to "/cloud/users/test" + Then the OCS status code should be "404" + And the HTTP status code should be "200" + + Scenario: Listing all users + Given As an "admin" + When sending "GET" to "/cloud/users" + Then the OCS status code should be "100" + And the HTTP status code should be "200" + + Scenario: Create a user + Given As an "admin" + And user "brand-new-user" does not exist + When sending "POST" to "/cloud/users" with + | userid | brand-new-user | + | password | 123456 | + Then the OCS status code should be "100" + And the HTTP status code should be "200" + And user "brand-new-user" exists + + Scenario: Create an existing user + Given As an "admin" + And user "brand-new-user" exists + When sending "POST" to "/cloud/users" with + | userid | brand-new-user | + | password | 123456 | + Then the OCS status code should be "102" + And the HTTP status code should be "200" + And user "brand-new-user" has + | id | brand-new-user | + | displayname | brand-new-user | + | email | | + | phone | | + | address | | + | website | | + | twitter | | + + Scenario: Get an existing user + Given As an "admin" + When sending "GET" to "/cloud/users/brand-new-user" + Then the OCS status code should be "100" + And the HTTP status code should be "200" + + Scenario: Getting all users + Given As an "admin" + And user "brand-new-user" exists + And user "admin" exists + When sending "GET" to "/cloud/users" + Then users returned are + | brand-new-user | + | admin | Scenario: Get editable fields Given As an "admin" @@ -75,8 +75,8 @@ Feature: provisioning | role | | headline | | biography | - | pronouns | | profile_enabled | + | pronouns | Given As an "brand-new-user" Then user "brand-new-user" has editable fields | displayname | @@ -91,8 +91,8 @@ Feature: provisioning | role | | headline | | biography | - | pronouns | | profile_enabled | + | pronouns | Then user "self" has editable fields | displayname | | email | @@ -106,27 +106,27 @@ Feature: provisioning | role | | headline | | biography | - | pronouns | | profile_enabled | + | pronouns | - Scenario: Edit a user - Given As an "admin" - And user "brand-new-user" exists - When sending "PUT" to "/cloud/users/brand-new-user" with - | key | displayname | - | value | Brand New User | - And the OCS status code should be "100" - And the HTTP status code should be "200" - And sending "PUT" to "/cloud/users/brand-new-user" with - | key | quota | - | value | 12MB | - And the OCS status code should be "100" - And the HTTP status code should be "200" - And sending "PUT" to "/cloud/users/brand-new-user" with - | key | email | - | value | no-reply@nextcloud.com | - And the OCS status code should be "100" - And the HTTP status code should be "200" + Scenario: Edit a user + Given As an "admin" + And user "brand-new-user" exists + When sending "PUT" to "/cloud/users/brand-new-user" with + | key | displayname | + | value | Brand New User | + And the OCS status code should be "100" + And the HTTP status code should be "200" + And sending "PUT" to "/cloud/users/brand-new-user" with + | key | quota | + | value | 12MB | + And the OCS status code should be "100" + And the HTTP status code should be "200" + And sending "PUT" to "/cloud/users/brand-new-user" with + | key | email | + | value | no-reply@nextcloud.com | + And the OCS status code should be "100" + And the HTTP status code should be "200" And sending "PUT" to "/cloud/users/brand-new-user" with | key | additional_mail | | value | no.reply@nextcloud.com | @@ -137,105 +137,105 @@ Feature: provisioning | value | noreply@nextcloud.com | And the OCS status code should be "100" And the HTTP status code should be "200" - And sending "PUT" to "/cloud/users/brand-new-user" with - | key | phone | - | value | +49 711 / 25 24 28-90 | - And the OCS status code should be "100" - And the HTTP status code should be "200" - And sending "PUT" to "/cloud/users/brand-new-user" with - | key | address | - | value | Foo Bar Town | - And the OCS status code should be "100" - And the HTTP status code should be "200" - And sending "PUT" to "/cloud/users/brand-new-user" with - | key | website | - | value | https://nextcloud.com | - And the OCS status code should be "100" - And the HTTP status code should be "200" - And sending "PUT" to "/cloud/users/brand-new-user" with - | key | twitter | - | value | Nextcloud | - And the OCS status code should be "100" - And the HTTP status code should be "200" - Then user "brand-new-user" has - | id | brand-new-user | - | displayname | Brand New User | - | email | no-reply@nextcloud.com | + And sending "PUT" to "/cloud/users/brand-new-user" with + | key | phone | + | value | +49 711 / 25 24 28-90 | + And the OCS status code should be "100" + And the HTTP status code should be "200" + And sending "PUT" to "/cloud/users/brand-new-user" with + | key | address | + | value | Foo Bar Town | + And the OCS status code should be "100" + And the HTTP status code should be "200" + And sending "PUT" to "/cloud/users/brand-new-user" with + | key | website | + | value | https://nextcloud.com | + And the OCS status code should be "100" + And the HTTP status code should be "200" + And sending "PUT" to "/cloud/users/brand-new-user" with + | key | twitter | + | value | Nextcloud | + And the OCS status code should be "100" + And the HTTP status code should be "200" + Then user "brand-new-user" has + | id | brand-new-user | + | displayname | Brand New User | + | email | no-reply@nextcloud.com | | additional_mail | no.reply@nextcloud.com;noreply@nextcloud.com | - | phone | +4971125242890 | - | address | Foo Bar Town | - | website | https://nextcloud.com | - | twitter | Nextcloud | + | phone | +4971125242890 | + | address | Foo Bar Town | + | website | https://nextcloud.com | + | twitter | Nextcloud | - Scenario: Edit a user account properties scopes - Given user "brand-new-user" exists + Scenario: Edit a user account properties scopes + Given user "brand-new-user" exists And As an "brand-new-user" - When sending "PUT" to "/cloud/users/brand-new-user" with - | key | phoneScope | - | value | v2-private | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - When sending "PUT" to "/cloud/users/brand-new-user" with - | key | twitterScope | - | value | v2-local | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - When sending "PUT" to "/cloud/users/brand-new-user" with - | key | addressScope | - | value | v2-federated | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - When sending "PUT" to "/cloud/users/brand-new-user" with - | key | emailScope | - | value | v2-published | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - When sending "PUT" to "/cloud/users/brand-new-user" with - | key | websiteScope | - | value | public | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - When sending "PUT" to "/cloud/users/brand-new-user" with - | key | displaynameScope | - | value | contacts | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - When sending "PUT" to "/cloud/users/brand-new-user" with - | key | avatarScope | - | value | private | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And sending "PUT" to "/cloud/users/brand-new-user" with - | key | email | - | value | no-reply@nextcloud.com | - And the OCS status code should be "100" - And the HTTP status code should be "200" - # Duplicating primary address - And sending "PUT" to "/cloud/users/brand-new-user" with - | key | additional_mail | - | value | no-reply@nextcloud.com | - And the OCS status code should be "102" - And the HTTP status code should be "200" - And sending "PUT" to "/cloud/users/brand-new-user" with - | key | additional_mail | - | value | no.reply2@nextcloud.com | - And the OCS status code should be "100" - And the HTTP status code should be "200" - # Duplicating another additional address - And sending "PUT" to "/cloud/users/brand-new-user" with - | key | additional_mail | - | value | no.reply2@nextcloud.com | - And the OCS status code should be "102" - And the HTTP status code should be "200" - Then user "brand-new-user" has - | id | brand-new-user | - | phoneScope | v2-private | - | twitterScope | v2-local | - | addressScope | v2-federated | - | emailScope | v2-published | - | websiteScope | v2-published | - | displaynameScope | v2-federated | - | avatarScope | v2-local | + When sending "PUT" to "/cloud/users/brand-new-user" with + | key | phoneScope | + | value | v2-private | + Then the OCS status code should be "100" + And the HTTP status code should be "200" + When sending "PUT" to "/cloud/users/brand-new-user" with + | key | twitterScope | + | value | v2-local | + Then the OCS status code should be "100" + And the HTTP status code should be "200" + When sending "PUT" to "/cloud/users/brand-new-user" with + | key | addressScope | + | value | v2-federated | + Then the OCS status code should be "100" + And the HTTP status code should be "200" + When sending "PUT" to "/cloud/users/brand-new-user" with + | key | emailScope | + | value | v2-published | + Then the OCS status code should be "100" + And the HTTP status code should be "200" + When sending "PUT" to "/cloud/users/brand-new-user" with + | key | websiteScope | + | value | public | + Then the OCS status code should be "100" + And the HTTP status code should be "200" + When sending "PUT" to "/cloud/users/brand-new-user" with + | key | displaynameScope | + | value | contacts | + Then the OCS status code should be "100" + And the HTTP status code should be "200" + When sending "PUT" to "/cloud/users/brand-new-user" with + | key | avatarScope | + | value | private | + Then the OCS status code should be "100" + And the HTTP status code should be "200" + And sending "PUT" to "/cloud/users/brand-new-user" with + | key | email | + | value | no-reply@nextcloud.com | + And the OCS status code should be "100" + And the HTTP status code should be "200" + # Duplicating primary address + And sending "PUT" to "/cloud/users/brand-new-user" with + | key | additional_mail | + | value | no-reply@nextcloud.com | + And the OCS status code should be "102" + And the HTTP status code should be "200" + And sending "PUT" to "/cloud/users/brand-new-user" with + | key | additional_mail | + | value | no.reply2@nextcloud.com | + And the OCS status code should be "100" + And the HTTP status code should be "200" + # Duplicating another additional address + And sending "PUT" to "/cloud/users/brand-new-user" with + | key | additional_mail | + | value | no.reply2@nextcloud.com | + And the OCS status code should be "102" + And the HTTP status code should be "200" + Then user "brand-new-user" has + | id | brand-new-user | + | phoneScope | v2-private | + | twitterScope | v2-local | + | addressScope | v2-federated | + | emailScope | v2-published | + | websiteScope | v2-published | + | displaynameScope | v2-federated | + | avatarScope | v2-local | Scenario: Edit a user account multivalue property scopes Given user "brand-new-user" exists @@ -264,24 +264,24 @@ Feature: provisioning | id | brand-new-user | | additional_mailScope | v2-federated;v2-published | - Scenario: Edit a user account properties scopes with invalid or unsupported value - Given user "brand-new-user" exists + Scenario: Edit a user account properties scopes with invalid or unsupported value + Given user "brand-new-user" exists And As an "brand-new-user" - When sending "PUT" to "/cloud/users/brand-new-user" with - | key | phoneScope | - | value | invalid | - Then the OCS status code should be "102" - And the HTTP status code should be "200" - When sending "PUT" to "/cloud/users/brand-new-user" with - | key | displaynameScope | - | value | v2-private | - Then the OCS status code should be "102" - And the HTTP status code should be "200" - When sending "PUT" to "/cloud/users/brand-new-user" with - | key | emailScope | - | value | v2-private | - Then the OCS status code should be "102" - And the HTTP status code should be "200" + When sending "PUT" to "/cloud/users/brand-new-user" with + | key | phoneScope | + | value | invalid | + Then the OCS status code should be "102" + And the HTTP status code should be "200" + When sending "PUT" to "/cloud/users/brand-new-user" with + | key | displaynameScope | + | value | v2-private | + Then the OCS status code should be "102" + And the HTTP status code should be "200" + When sending "PUT" to "/cloud/users/brand-new-user" with + | key | emailScope | + | value | v2-private | + Then the OCS status code should be "102" + And the HTTP status code should be "200" Scenario: Edit a user account multi-value property scopes with invalid or unsupported value Given user "brand-new-user" exists @@ -320,540 +320,540 @@ Feature: provisioning Then user "brand-new-user" has not | additional_mail | no.reply6@nextcloud.com | - Scenario: An admin cannot edit user account property scopes - Given As an "admin" - And user "brand-new-user" exists - When sending "PUT" to "/cloud/users/brand-new-user" with - | key | phoneScope | - | value | v2-private | - Then the OCS status code should be "103" - And the HTTP status code should be "200" - - Scenario: Search by phone number - Given As an "admin" - And user "phone-user" exists - And sending "PUT" to "/cloud/users/phone-user" with - | key | phone | - | value | +49 711 / 25 24 28-90 | - And the OCS status code should be "100" - And the HTTP status code should be "200" - Then search users by phone for region "DE" with - | random-string1 | 0711 / 123 456 78 | - | random-string1 | 0711 / 252 428-90 | - | random-string2 | 0711 / 90-824 252 | - And the OCS status code should be "100" - And the HTTP status code should be "200" - Then phone matches returned are - | random-string1 | phone-user@localhost:8080 | - - Scenario: Create a group - Given As an "admin" - And group "new-group" does not exist - When sending "POST" to "/cloud/groups" with - | groupid | new-group | - | password | 123456 | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And group "new-group" exists - And group "new-group" has - | displayname | new-group | - - Scenario: Create a group with custom display name - Given As an "admin" - And group "new-group" does not exist - When sending "POST" to "/cloud/groups" with - | groupid | new-group | - | password | 123456 | - | displayname | new-group-displayname | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And group "new-group" exists - And group "new-group" has - | displayname | new-group-displayname | - - Scenario: Create a group with special characters - Given As an "admin" - And group "España" does not exist - When sending "POST" to "/cloud/groups" with - | groupid | España | - | password | 123456 | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And group "España" exists - And group "España" has - | displayname | España | - - Scenario: adding user to a group without sending the group - Given As an "admin" - And user "brand-new-user" exists - When sending "POST" to "/cloud/users/brand-new-user/groups" with - | groupid | | - Then the OCS status code should be "101" - And the HTTP status code should be "200" - - Scenario: adding user to a group which doesn't exist - Given As an "admin" - And user "brand-new-user" exists - And group "not-group" does not exist - When sending "POST" to "/cloud/users/brand-new-user/groups" with - | groupid | not-group | - Then the OCS status code should be "102" - And the HTTP status code should be "200" - - Scenario: adding user to a group without privileges - Given user "brand-new-user" exists - And As an "brand-new-user" - When sending "POST" to "/cloud/users/brand-new-user/groups" with - | groupid | new-group | - Then the OCS status code should be "403" - And the HTTP status code should be "200" - - Scenario: adding user to a group - Given As an "admin" - And user "brand-new-user" exists - And group "new-group" exists - When sending "POST" to "/cloud/users/brand-new-user/groups" with - | groupid | new-group | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - - Scenario: getting groups of an user - Given As an "admin" - And user "brand-new-user" exists - And group "new-group" exists - When sending "GET" to "/cloud/users/brand-new-user/groups" - Then groups returned are - | new-group | - And the OCS status code should be "100" - - Scenario: adding a user which doesn't exist to a group - Given As an "admin" - And user "not-user" does not exist - And group "new-group" exists - When sending "POST" to "/cloud/users/not-user/groups" with - | groupid | new-group | - Then the OCS status code should be "103" - And the HTTP status code should be "200" - - Scenario: getting a group - Given As an "admin" - And group "new-group" exists - When sending "GET" to "/cloud/groups/new-group" - Then the OCS status code should be "100" - And the HTTP status code should be "200" - - Scenario: Getting all groups - Given As an "admin" - And group "new-group" exists - And group "admin" exists - When sending "GET" to "/cloud/groups" - Then groups returned are - | España | - | admin | - | new-group | - - Scenario: create a subadmin - Given As an "admin" - And user "brand-new-user" exists - And group "new-group" exists - When sending "POST" to "/cloud/users/brand-new-user/subadmins" with - | groupid | new-group | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - - Scenario: get users using a subadmin - Given As an "admin" - And user "brand-new-user" exists - And group "new-group" exists - And user "brand-new-user" belongs to group "new-group" - And user "brand-new-user" is subadmin of group "new-group" - And As an "brand-new-user" - When sending "GET" to "/cloud/users" - Then users returned are - | brand-new-user | - And the OCS status code should be "100" - And the HTTP status code should be "200" - - Scenario: removing a user from a group which doesn't exists - Given As an "admin" - And user "brand-new-user" exists - And group "not-group" does not exist - When sending "DELETE" to "/cloud/users/brand-new-user/groups" with - | groupid | not-group | - Then the OCS status code should be "102" - - Scenario: removing a user from a group - Given As an "admin" - And user "brand-new-user" exists - And group "new-group" exists - And user "brand-new-user" belongs to group "new-group" - When sending "DELETE" to "/cloud/users/brand-new-user/groups" with - | groupid | new-group | - Then the OCS status code should be "100" - And user "brand-new-user" does not belong to group "new-group" - - Scenario: create a subadmin using a user which not exist - Given As an "admin" - And user "not-user" does not exist - And group "new-group" exists - When sending "POST" to "/cloud/users/not-user/subadmins" with - | groupid | new-group | - Then the OCS status code should be "101" - And the HTTP status code should be "200" - - Scenario: create a subadmin using a group which not exist - Given As an "admin" - And user "brand-new-user" exists - And group "not-group" does not exist - When sending "POST" to "/cloud/users/brand-new-user/subadmins" with - | groupid | not-group | - Then the OCS status code should be "102" - And the HTTP status code should be "200" - - Scenario: Getting subadmin groups - Given As an "admin" - And user "brand-new-user" exists - And group "new-group" exists - When sending "GET" to "/cloud/users/brand-new-user/subadmins" - Then subadmin groups returned are - | new-group | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - - Scenario: Getting subadmin groups of a user which not exist - Given As an "admin" - And user "not-user" does not exist - And group "new-group" exists - When sending "GET" to "/cloud/users/not-user/subadmins" - Then the OCS status code should be "404" - And the HTTP status code should be "200" - - Scenario: Getting subadmin users of a group - Given As an "admin" - And user "brand-new-user" exists - And group "new-group" exists - When sending "GET" to "/cloud/groups/new-group/subadmins" - Then subadmin users returned are - | brand-new-user | - And the OCS status code should be "100" - And the HTTP status code should be "200" - - Scenario: Getting subadmin users of a group which doesn't exist - Given As an "admin" - And user "brand-new-user" exists - And group "not-group" does not exist - When sending "GET" to "/cloud/groups/not-group/subadmins" - Then the OCS status code should be "101" - And the HTTP status code should be "200" - - Scenario: Removing subadmin from a group - Given As an "admin" - And user "brand-new-user" exists - And group "new-group" exists - And user "brand-new-user" is subadmin of group "new-group" - When sending "DELETE" to "/cloud/users/brand-new-user/subadmins" with - | groupid | new-group | - And the OCS status code should be "100" - And the HTTP status code should be "200" - - Scenario: Delete a user - Given As an "admin" - And user "brand-new-user" exists - When sending "DELETE" to "/cloud/users/brand-new-user" - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And user "brand-new-user" does not exist - - Scenario: Delete a group - Given As an "admin" - And group "new-group" exists - When sending "DELETE" to "/cloud/groups/new-group" - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And group "new-group" does not exist - - Scenario: Delete a group with special characters - Given As an "admin" - And group "España" exists - When sending "DELETE" to "/cloud/groups/España" - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And group "España" does not exist - - Scenario: get enabled apps - Given As an "admin" - When sending "GET" to "/cloud/apps?filter=enabled" - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And apps returned are - | cloud_federation_api | - | comments | - | contactsinteraction | - | dashboard | - | dav | - | federatedfilesharing | - | federation | - | files | - | files_reminders | - | files_sharing | - | files_trashbin | - | files_versions | - | lookup_server_connector | - | provisioning_api | - | settings | - | sharebymail | - | systemtags | - | theming | - | twofactor_backupcodes | - | updatenotification | - | user_ldap | - | user_status | - | viewer | - | workflowengine | - | webhook_listeners | - | weather_status | - | files_external | - | oauth2 | - - Scenario: get app info - Given As an "admin" - When sending "GET" to "/cloud/apps/files" - Then the OCS status code should be "100" - And the HTTP status code should be "200" - - Scenario: get app info from app that does not exist - Given As an "admin" - When sending "GET" to "/cloud/apps/this_app_should_never_exist" - Then the OCS status code should be "998" - And the HTTP status code should be "200" - - Scenario: enable an app - Given As an "admin" - And app "testing" is disabled - When sending "POST" to "/cloud/apps/testing" - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And app "testing" is enabled - - Scenario: enable an app that does not exist - Given As an "admin" - When sending "POST" to "/cloud/apps/this_app_should_never_exist" - Then the OCS status code should be "998" - And the HTTP status code should be "200" - - Scenario: disable an app - Given As an "admin" - And app "testing" is enabled - When sending "DELETE" to "/cloud/apps/testing" - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And app "testing" is disabled - - Scenario: disable an user - Given As an "admin" - And user "user1" exists - When sending "PUT" to "/cloud/users/user1/disable" - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And user "user1" is disabled - - Scenario: enable an user - Given As an "admin" - And user "user1" exists - And assure user "user1" is disabled - When sending "PUT" to "/cloud/users/user1/enable" - Then the OCS status code should be "100" - And the HTTP status code should be "200" - And user "user1" is enabled - - Scenario: Subadmin should be able to enable or disable an user in their group - Given As an "admin" - And user "subadmin" exists - And user "user1" exists - And group "new-group" exists - And user "subadmin" belongs to group "new-group" - And user "user1" belongs to group "new-group" - And Assure user "subadmin" is subadmin of group "new-group" - And As an "subadmin" - When sending "PUT" to "/cloud/users/user1/disable" - Then the OCS status code should be "100" - Then the HTTP status code should be "200" - And As an "admin" - And user "user1" is disabled - - Scenario: Subadmin should not be able to enable or disable an user not in their group - Given As an "admin" - And user "subadmin" exists - And user "user1" exists - And group "new-group" exists - And group "another-group" exists - And user "subadmin" belongs to group "new-group" - And user "user1" belongs to group "another-group" - And Assure user "subadmin" is subadmin of group "new-group" - And As an "subadmin" - When sending "PUT" to "/cloud/users/user1/disable" - Then the OCS status code should be "998" - Then the HTTP status code should be "200" - And As an "admin" - And user "user1" is enabled - - Scenario: Subadmins should not be able to disable users that have admin permissions in their group - Given As an "admin" - And user "another-admin" exists - And user "subadmin" exists - And group "new-group" exists - And user "another-admin" belongs to group "admin" - And user "subadmin" belongs to group "new-group" - And user "another-admin" belongs to group "new-group" - And Assure user "subadmin" is subadmin of group "new-group" - And As an "subadmin" - When sending "PUT" to "/cloud/users/another-admin/disable" - Then the OCS status code should be "998" - Then the HTTP status code should be "200" - And As an "admin" - And user "another-admin" is enabled - - Scenario: Admin can disable another admin user - Given As an "admin" - And user "another-admin" exists - And user "another-admin" belongs to group "admin" - When sending "PUT" to "/cloud/users/another-admin/disable" - Then the OCS status code should be "100" - Then the HTTP status code should be "200" - And user "another-admin" is disabled - - Scenario: Admin can enable another admin user - Given As an "admin" - And user "another-admin" exists - And user "another-admin" belongs to group "admin" - And assure user "another-admin" is disabled - When sending "PUT" to "/cloud/users/another-admin/enable" - Then the OCS status code should be "100" - Then the HTTP status code should be "200" - And user "another-admin" is enabled - - Scenario: Admin can disable subadmins in the same group - Given As an "admin" - And user "subadmin" exists - And group "new-group" exists - And user "subadmin" belongs to group "new-group" - And user "admin" belongs to group "new-group" - And Assure user "subadmin" is subadmin of group "new-group" - When sending "PUT" to "/cloud/users/subadmin/disable" - Then the OCS status code should be "100" - Then the HTTP status code should be "200" - And user "subadmin" is disabled - - Scenario: Admin can enable subadmins in the same group - Given As an "admin" - And user "subadmin" exists - And group "new-group" exists - And user "subadmin" belongs to group "new-group" - And user "admin" belongs to group "new-group" - And Assure user "subadmin" is subadmin of group "new-group" - And assure user "another-admin" is disabled - When sending "PUT" to "/cloud/users/subadmin/disable" - Then the OCS status code should be "100" - Then the HTTP status code should be "200" - And user "subadmin" is disabled - - Scenario: Admin user cannot disable himself - Given As an "admin" - And user "another-admin" exists - And user "another-admin" belongs to group "admin" - And As an "another-admin" - When sending "PUT" to "/cloud/users/another-admin/disable" - Then the OCS status code should be "101" - And the HTTP status code should be "200" - And As an "admin" - And user "another-admin" is enabled - - Scenario:Admin user cannot enable himself - Given As an "admin" - And user "another-admin" exists - And user "another-admin" belongs to group "admin" - And assure user "another-admin" is disabled - And As an "another-admin" - When sending "PUT" to "/cloud/users/another-admin/enable" - And As an "admin" - Then user "another-admin" is disabled - - Scenario: disable an user with a regular user - Given As an "admin" - And user "user1" exists - And user "user2" exists - And As an "user1" - When sending "PUT" to "/cloud/users/user2/disable" - Then the OCS status code should be "403" - And the HTTP status code should be "200" - And As an "admin" - And user "user2" is enabled - - Scenario: enable an user with a regular user - Given As an "admin" - And user "user1" exists - And user "user2" exists - And assure user "user2" is disabled - And As an "user1" - When sending "PUT" to "/cloud/users/user2/enable" - Then the OCS status code should be "403" - And the HTTP status code should be "200" - And As an "admin" - And user "user2" is disabled - - Scenario: Subadmin should not be able to disable himself - Given As an "admin" - And user "subadmin" exists - And group "new-group" exists - And user "subadmin" belongs to group "new-group" - And Assure user "subadmin" is subadmin of group "new-group" - And As an "subadmin" - When sending "PUT" to "/cloud/users/subadmin/disable" - Then the OCS status code should be "101" - Then the HTTP status code should be "200" - And As an "admin" - And user "subadmin" is enabled - - Scenario: Subadmin should not be able to enable himself - Given As an "admin" - And user "subadmin" exists - And group "new-group" exists - And user "subadmin" belongs to group "new-group" - And Assure user "subadmin" is subadmin of group "new-group" - And assure user "subadmin" is disabled - And As an "subadmin" - When sending "PUT" to "/cloud/users/subadmin/enabled" - And As an "admin" - And user "subadmin" is disabled - - Scenario: Making a ocs request with an enabled user - Given As an "admin" - And user "user0" exists - And As an "user0" - When sending "GET" to "/cloud/capabilities" - Then the HTTP status code should be "200" - And the OCS status code should be "100" - - Scenario: Making a web request with an enabled user - Given As an "admin" - And user "user0" exists - And As an "user0" - When sending "GET" with exact url to "/index.php/apps/files" - Then the HTTP status code should be "200" - - Scenario: Making a ocs request with a disabled user - Given As an "admin" - And user "user0" exists - And assure user "user0" is disabled - And As an "user0" - When sending "GET" to "/cloud/capabilities" - Then the OCS status code should be "997" - And the HTTP status code should be "401" - - Scenario: Making a web request with a disabled user - Given As an "admin" - And user "user0" exists - And assure user "user0" is disabled - And As an "user0" - When sending "GET" with exact url to "/index.php/apps/files" - And the HTTP status code should be "401" + Scenario: An admin cannot edit user account property scopes + Given As an "admin" + And user "brand-new-user" exists + When sending "PUT" to "/cloud/users/brand-new-user" with + | key | phoneScope | + | value | v2-private | + Then the OCS status code should be "103" + And the HTTP status code should be "200" + + Scenario: Search by phone number + Given As an "admin" + And user "phone-user" exists + And sending "PUT" to "/cloud/users/phone-user" with + | key | phone | + | value | +49 711 / 25 24 28-90 | + And the OCS status code should be "100" + And the HTTP status code should be "200" + Then search users by phone for region "DE" with + | random-string1 | 0711 / 123 456 78 | + | random-string1 | 0711 / 252 428-90 | + | random-string2 | 0711 / 90-824 252 | + And the OCS status code should be "100" + And the HTTP status code should be "200" + Then phone matches returned are + | random-string1 | phone-user@localhost:8080 | + + Scenario: Create a group + Given As an "admin" + And group "new-group" does not exist + When sending "POST" to "/cloud/groups" with + | groupid | new-group | + | password | 123456 | + Then the OCS status code should be "100" + And the HTTP status code should be "200" + And group "new-group" exists + And group "new-group" has + | displayname | new-group | + + Scenario: Create a group with custom display name + Given As an "admin" + And group "new-group" does not exist + When sending "POST" to "/cloud/groups" with + | groupid | new-group | + | password | 123456 | + | displayname | new-group-displayname | + Then the OCS status code should be "100" + And the HTTP status code should be "200" + And group "new-group" exists + And group "new-group" has + | displayname | new-group-displayname | + + Scenario: Create a group with special characters + Given As an "admin" + And group "España" does not exist + When sending "POST" to "/cloud/groups" with + | groupid | España | + | password | 123456 | + Then the OCS status code should be "100" + And the HTTP status code should be "200" + And group "España" exists + And group "España" has + | displayname | España | + + Scenario: adding user to a group without sending the group + Given As an "admin" + And user "brand-new-user" exists + When sending "POST" to "/cloud/users/brand-new-user/groups" with + | groupid | | + Then the OCS status code should be "101" + And the HTTP status code should be "200" + + Scenario: adding user to a group which doesn't exist + Given As an "admin" + And user "brand-new-user" exists + And group "not-group" does not exist + When sending "POST" to "/cloud/users/brand-new-user/groups" with + | groupid | not-group | + Then the OCS status code should be "102" + And the HTTP status code should be "200" + + Scenario: adding user to a group without privileges + Given user "brand-new-user" exists + And As an "brand-new-user" + When sending "POST" to "/cloud/users/brand-new-user/groups" with + | groupid | new-group | + Then the OCS status code should be "403" + And the HTTP status code should be "200" + + Scenario: adding user to a group + Given As an "admin" + And user "brand-new-user" exists + And group "new-group" exists + When sending "POST" to "/cloud/users/brand-new-user/groups" with + | groupid | new-group | + Then the OCS status code should be "100" + And the HTTP status code should be "200" + + Scenario: getting groups of an user + Given As an "admin" + And user "brand-new-user" exists + And group "new-group" exists + When sending "GET" to "/cloud/users/brand-new-user/groups" + Then groups returned are + | new-group | + And the OCS status code should be "100" + + Scenario: adding a user which doesn't exist to a group + Given As an "admin" + And user "not-user" does not exist + And group "new-group" exists + When sending "POST" to "/cloud/users/not-user/groups" with + | groupid | new-group | + Then the OCS status code should be "103" + And the HTTP status code should be "200" + + Scenario: getting a group + Given As an "admin" + And group "new-group" exists + When sending "GET" to "/cloud/groups/new-group" + Then the OCS status code should be "100" + And the HTTP status code should be "200" + + Scenario: Getting all groups + Given As an "admin" + And group "new-group" exists + And group "admin" exists + When sending "GET" to "/cloud/groups" + Then groups returned are + | España | + | admin | + | new-group | + + Scenario: create a subadmin + Given As an "admin" + And user "brand-new-user" exists + And group "new-group" exists + When sending "POST" to "/cloud/users/brand-new-user/subadmins" with + | groupid | new-group | + Then the OCS status code should be "100" + And the HTTP status code should be "200" + + Scenario: get users using a subadmin + Given As an "admin" + And user "brand-new-user" exists + And group "new-group" exists + And user "brand-new-user" belongs to group "new-group" + And user "brand-new-user" is subadmin of group "new-group" + And As an "brand-new-user" + When sending "GET" to "/cloud/users" + Then users returned are + | brand-new-user | + And the OCS status code should be "100" + And the HTTP status code should be "200" + + Scenario: removing a user from a group which doesn't exists + Given As an "admin" + And user "brand-new-user" exists + And group "not-group" does not exist + When sending "DELETE" to "/cloud/users/brand-new-user/groups" with + | groupid | not-group | + Then the OCS status code should be "102" + + Scenario: removing a user from a group + Given As an "admin" + And user "brand-new-user" exists + And group "new-group" exists + And user "brand-new-user" belongs to group "new-group" + When sending "DELETE" to "/cloud/users/brand-new-user/groups" with + | groupid | new-group | + Then the OCS status code should be "100" + And user "brand-new-user" does not belong to group "new-group" + + Scenario: create a subadmin using a user which not exist + Given As an "admin" + And user "not-user" does not exist + And group "new-group" exists + When sending "POST" to "/cloud/users/not-user/subadmins" with + | groupid | new-group | + Then the OCS status code should be "101" + And the HTTP status code should be "200" + + Scenario: create a subadmin using a group which not exist + Given As an "admin" + And user "brand-new-user" exists + And group "not-group" does not exist + When sending "POST" to "/cloud/users/brand-new-user/subadmins" with + | groupid | not-group | + Then the OCS status code should be "102" + And the HTTP status code should be "200" + + Scenario: Getting subadmin groups + Given As an "admin" + And user "brand-new-user" exists + And group "new-group" exists + When sending "GET" to "/cloud/users/brand-new-user/subadmins" + Then subadmin groups returned are + | new-group | + Then the OCS status code should be "100" + And the HTTP status code should be "200" + + Scenario: Getting subadmin groups of a user which not exist + Given As an "admin" + And user "not-user" does not exist + And group "new-group" exists + When sending "GET" to "/cloud/users/not-user/subadmins" + Then the OCS status code should be "404" + And the HTTP status code should be "200" + + Scenario: Getting subadmin users of a group + Given As an "admin" + And user "brand-new-user" exists + And group "new-group" exists + When sending "GET" to "/cloud/groups/new-group/subadmins" + Then subadmin users returned are + | brand-new-user | + And the OCS status code should be "100" + And the HTTP status code should be "200" + + Scenario: Getting subadmin users of a group which doesn't exist + Given As an "admin" + And user "brand-new-user" exists + And group "not-group" does not exist + When sending "GET" to "/cloud/groups/not-group/subadmins" + Then the OCS status code should be "101" + And the HTTP status code should be "200" + + Scenario: Removing subadmin from a group + Given As an "admin" + And user "brand-new-user" exists + And group "new-group" exists + And user "brand-new-user" is subadmin of group "new-group" + When sending "DELETE" to "/cloud/users/brand-new-user/subadmins" with + | groupid | new-group | + And the OCS status code should be "100" + And the HTTP status code should be "200" + + Scenario: Delete a user + Given As an "admin" + And user "brand-new-user" exists + When sending "DELETE" to "/cloud/users/brand-new-user" + Then the OCS status code should be "100" + And the HTTP status code should be "200" + And user "brand-new-user" does not exist + + Scenario: Delete a group + Given As an "admin" + And group "new-group" exists + When sending "DELETE" to "/cloud/groups/new-group" + Then the OCS status code should be "100" + And the HTTP status code should be "200" + And group "new-group" does not exist + + Scenario: Delete a group with special characters + Given As an "admin" + And group "España" exists + When sending "DELETE" to "/cloud/groups/España" + Then the OCS status code should be "100" + And the HTTP status code should be "200" + And group "España" does not exist + + Scenario: get enabled apps + Given As an "admin" + When sending "GET" to "/cloud/apps?filter=enabled" + Then the OCS status code should be "100" + And the HTTP status code should be "200" + And apps returned are + | cloud_federation_api | + | comments | + | contactsinteraction | + | dashboard | + | dav | + | federatedfilesharing | + | federation | + | files | + | files_reminders | + | files_sharing | + | files_trashbin | + | files_versions | + | lookup_server_connector | + | provisioning_api | + | settings | + | sharebymail | + | systemtags | + | theming | + | twofactor_backupcodes | + | updatenotification | + | user_ldap | + | user_status | + | viewer | + | workflowengine | + | webhook_listeners | + | weather_status | + | files_external | + | oauth2 | + + Scenario: get app info + Given As an "admin" + When sending "GET" to "/cloud/apps/files" + Then the OCS status code should be "100" + And the HTTP status code should be "200" + + Scenario: get app info from app that does not exist + Given As an "admin" + When sending "GET" to "/cloud/apps/this_app_should_never_exist" + Then the OCS status code should be "998" + And the HTTP status code should be "200" + + Scenario: enable an app + Given As an "admin" + And app "testing" is disabled + When sending "POST" to "/cloud/apps/testing" + Then the OCS status code should be "100" + And the HTTP status code should be "200" + And app "testing" is enabled + + Scenario: enable an app that does not exist + Given As an "admin" + When sending "POST" to "/cloud/apps/this_app_should_never_exist" + Then the OCS status code should be "998" + And the HTTP status code should be "200" + + Scenario: disable an app + Given As an "admin" + And app "testing" is enabled + When sending "DELETE" to "/cloud/apps/testing" + Then the OCS status code should be "100" + And the HTTP status code should be "200" + And app "testing" is disabled + + Scenario: disable an user + Given As an "admin" + And user "user1" exists + When sending "PUT" to "/cloud/users/user1/disable" + Then the OCS status code should be "100" + And the HTTP status code should be "200" + And user "user1" is disabled + + Scenario: enable an user + Given As an "admin" + And user "user1" exists + And assure user "user1" is disabled + When sending "PUT" to "/cloud/users/user1/enable" + Then the OCS status code should be "100" + And the HTTP status code should be "200" + And user "user1" is enabled + + Scenario: Subadmin should be able to enable or disable an user in their group + Given As an "admin" + And user "subadmin" exists + And user "user1" exists + And group "new-group" exists + And user "subadmin" belongs to group "new-group" + And user "user1" belongs to group "new-group" + And Assure user "subadmin" is subadmin of group "new-group" + And As an "subadmin" + When sending "PUT" to "/cloud/users/user1/disable" + Then the OCS status code should be "100" + Then the HTTP status code should be "200" + And As an "admin" + And user "user1" is disabled + + Scenario: Subadmin should not be able to enable or disable an user not in their group + Given As an "admin" + And user "subadmin" exists + And user "user1" exists + And group "new-group" exists + And group "another-group" exists + And user "subadmin" belongs to group "new-group" + And user "user1" belongs to group "another-group" + And Assure user "subadmin" is subadmin of group "new-group" + And As an "subadmin" + When sending "PUT" to "/cloud/users/user1/disable" + Then the OCS status code should be "998" + Then the HTTP status code should be "200" + And As an "admin" + And user "user1" is enabled + + Scenario: Subadmins should not be able to disable users that have admin permissions in their group + Given As an "admin" + And user "another-admin" exists + And user "subadmin" exists + And group "new-group" exists + And user "another-admin" belongs to group "admin" + And user "subadmin" belongs to group "new-group" + And user "another-admin" belongs to group "new-group" + And Assure user "subadmin" is subadmin of group "new-group" + And As an "subadmin" + When sending "PUT" to "/cloud/users/another-admin/disable" + Then the OCS status code should be "998" + Then the HTTP status code should be "200" + And As an "admin" + And user "another-admin" is enabled + + Scenario: Admin can disable another admin user + Given As an "admin" + And user "another-admin" exists + And user "another-admin" belongs to group "admin" + When sending "PUT" to "/cloud/users/another-admin/disable" + Then the OCS status code should be "100" + Then the HTTP status code should be "200" + And user "another-admin" is disabled + + Scenario: Admin can enable another admin user + Given As an "admin" + And user "another-admin" exists + And user "another-admin" belongs to group "admin" + And assure user "another-admin" is disabled + When sending "PUT" to "/cloud/users/another-admin/enable" + Then the OCS status code should be "100" + Then the HTTP status code should be "200" + And user "another-admin" is enabled + + Scenario: Admin can disable subadmins in the same group + Given As an "admin" + And user "subadmin" exists + And group "new-group" exists + And user "subadmin" belongs to group "new-group" + And user "admin" belongs to group "new-group" + And Assure user "subadmin" is subadmin of group "new-group" + When sending "PUT" to "/cloud/users/subadmin/disable" + Then the OCS status code should be "100" + Then the HTTP status code should be "200" + And user "subadmin" is disabled + + Scenario: Admin can enable subadmins in the same group + Given As an "admin" + And user "subadmin" exists + And group "new-group" exists + And user "subadmin" belongs to group "new-group" + And user "admin" belongs to group "new-group" + And Assure user "subadmin" is subadmin of group "new-group" + And assure user "another-admin" is disabled + When sending "PUT" to "/cloud/users/subadmin/disable" + Then the OCS status code should be "100" + Then the HTTP status code should be "200" + And user "subadmin" is disabled + + Scenario: Admin user cannot disable himself + Given As an "admin" + And user "another-admin" exists + And user "another-admin" belongs to group "admin" + And As an "another-admin" + When sending "PUT" to "/cloud/users/another-admin/disable" + Then the OCS status code should be "101" + And the HTTP status code should be "200" + And As an "admin" + And user "another-admin" is enabled + + Scenario:Admin user cannot enable himself + Given As an "admin" + And user "another-admin" exists + And user "another-admin" belongs to group "admin" + And assure user "another-admin" is disabled + And As an "another-admin" + When sending "PUT" to "/cloud/users/another-admin/enable" + And As an "admin" + Then user "another-admin" is disabled + + Scenario: disable an user with a regular user + Given As an "admin" + And user "user1" exists + And user "user2" exists + And As an "user1" + When sending "PUT" to "/cloud/users/user2/disable" + Then the OCS status code should be "403" + And the HTTP status code should be "200" + And As an "admin" + And user "user2" is enabled + + Scenario: enable an user with a regular user + Given As an "admin" + And user "user1" exists + And user "user2" exists + And assure user "user2" is disabled + And As an "user1" + When sending "PUT" to "/cloud/users/user2/enable" + Then the OCS status code should be "403" + And the HTTP status code should be "200" + And As an "admin" + And user "user2" is disabled + + Scenario: Subadmin should not be able to disable himself + Given As an "admin" + And user "subadmin" exists + And group "new-group" exists + And user "subadmin" belongs to group "new-group" + And Assure user "subadmin" is subadmin of group "new-group" + And As an "subadmin" + When sending "PUT" to "/cloud/users/subadmin/disable" + Then the OCS status code should be "101" + Then the HTTP status code should be "200" + And As an "admin" + And user "subadmin" is enabled + + Scenario: Subadmin should not be able to enable himself + Given As an "admin" + And user "subadmin" exists + And group "new-group" exists + And user "subadmin" belongs to group "new-group" + And Assure user "subadmin" is subadmin of group "new-group" + And assure user "subadmin" is disabled + And As an "subadmin" + When sending "PUT" to "/cloud/users/subadmin/enabled" + And As an "admin" + And user "subadmin" is disabled + + Scenario: Making a ocs request with an enabled user + Given As an "admin" + And user "user0" exists + And As an "user0" + When sending "GET" to "/cloud/capabilities" + Then the HTTP status code should be "200" + And the OCS status code should be "100" + + Scenario: Making a web request with an enabled user + Given As an "admin" + And user "user0" exists + And As an "user0" + When sending "GET" with exact url to "/index.php/apps/files" + Then the HTTP status code should be "200" + + Scenario: Making a ocs request with a disabled user + Given As an "admin" + And user "user0" exists + And assure user "user0" is disabled + And As an "user0" + When sending "GET" to "/cloud/capabilities" + Then the OCS status code should be "997" + And the HTTP status code should be "401" + + Scenario: Making a web request with a disabled user + Given As an "admin" + And user "user0" exists + And assure user "user0" is disabled + And As an "user0" + When sending "GET" with exact url to "/index.php/apps/files" + And the HTTP status code should be "401" |