Int tests for provisioning API scopes

Added integration tests for the scope attributes in the provisioning
API.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
This commit is contained in:
Vincent Petry 2021-03-25 15:30:41 +01:00
parent cc54f718f5
commit 98e4ac39bc
No known key found for this signature in database
GPG Key ID: E055D6A4D513575C
2 changed files with 81 additions and 2 deletions

View File

@ -157,7 +157,11 @@ trait Provisioning {
$fullUrl = $this->baseUrl . "v{$this->apiVersion}.php/cloud/users/$user"; $fullUrl = $this->baseUrl . "v{$this->apiVersion}.php/cloud/users/$user";
$client = new Client(); $client = new Client();
$options = []; $options = [];
$options['auth'] = $this->adminUser; if ($this->currentUser === 'admin') {
$options['auth'] = $this->adminUser;
} else {
$options['auth'] = [$this->currentUser, $this->regularUser];
}
$options['headers'] = [ $options['headers'] = [
'OCS-APIREQUEST' => 'true', 'OCS-APIREQUEST' => 'true',
]; ];

View File

@ -103,6 +103,82 @@ Feature: provisioning
| website | https://nextcloud.com | | website | https://nextcloud.com |
| twitter | Nextcloud | | twitter | Nextcloud |
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"
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 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"
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 "997"
And the HTTP status code should be "401"
Scenario: Search by phone number Scenario: Search by phone number
Given As an "admin" Given As an "admin"
And user "phone-user" exists And user "phone-user" exists
@ -612,4 +688,3 @@ Feature: provisioning
And As an "user0" And As an "user0"
When sending "GET" with exact url to "/index.php/apps/files" When sending "GET" with exact url to "/index.php/apps/files"
And the HTTP status code should be "403" And the HTTP status code should be "403"