294 lines
9.4 KiB
Gherkin
294 lines
9.4 KiB
Gherkin
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 "998"
|
|
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"
|
|
|
|
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: Edit a user
|
|
Given As an "admin"
|
|
And user "brand-new-user" exists
|
|
When sending "PUT" to "/cloud/users/brand-new-user" with
|
|
| key | quota |
|
|
| value | 12MB |
|
|
| key | email |
|
|
| value | brand-new-user@gmail.com |
|
|
Then the OCS status code should be "100"
|
|
And the HTTP status code should be "200"
|
|
And user "brand-new-user" exists
|
|
|
|
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
|
|
|
|
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 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 "997"
|
|
And the HTTP status code should be "401"
|
|
|
|
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
|
|
| 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 "101"
|
|
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: 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
|
|
| files |
|
|
| dav |
|
|
| files_sharing |
|
|
| files_trashbin |
|
|
| files_versions |
|
|
| provisioning_api |
|
|
|
|
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: enable an app
|
|
Given As an "admin"
|
|
And app "files_external" is disabled
|
|
When sending "POST" to "/cloud/apps/files_external"
|
|
Then the OCS status code should be "100"
|
|
And the HTTP status code should be "200"
|
|
And app "files_external" is enabled
|
|
|
|
Scenario: disable an app
|
|
Given As an "admin"
|
|
And app "files_external" is enabled
|
|
When sending "DELETE" to "/cloud/apps/files_external"
|
|
Then the OCS status code should be "100"
|
|
And the HTTP status code should be "200"
|
|
And app "files_external" is disabled
|