Add integration tests for the editable fields

Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
Joas Schilling 2021-05-27 14:56:22 +02:00
parent 94584ee788
commit 3b6b4c8509
No known key found for this signature in database
GPG Key ID: 7076EA9751AACDDA
2 changed files with 56 additions and 0 deletions

View File

@ -177,6 +177,36 @@ trait Provisioning {
}
}
/**
* @Then /^user "([^"]*)" has editable fields$/
*
* @param string $user
* @param \Behat\Gherkin\Node\TableNode|null $fields
*/
public function userHasEditableFields($user, $fields) {
$fullUrl = $this->baseUrl . "v{$this->apiVersion}.php/cloud/user/fields";
if ($user !== 'self') {
$fullUrl .= '/' . $user;
}
$client = new Client();
$options = [];
if ($this->currentUser === 'admin') {
$options['auth'] = $this->adminUser;
} else {
$options['auth'] = [$this->currentUser, $this->regularUser];
}
$options['headers'] = [
'OCS-APIREQUEST' => 'true',
];
$response = $client->get($fullUrl, $options);
$fieldsArray = json_decode(json_encode(simplexml_load_string($response->getBody())->data->element), 1);
$expectedFields = $fields->getRows();
$expectedFields = $this->simplifyArray($expectedFields);
Assert::assertEquals($expectedFields, $fieldsArray);
}
/**
* @Then /^search users by phone for region "([^"]*)" with$/
*

View File

@ -56,6 +56,32 @@ Feature: provisioning
| brand-new-user |
| admin |
Scenario: Get editable fields
Given As an "admin"
And user "brand-new-user" exists
Then user "brand-new-user" has editable fields
| displayname |
| email |
| phone |
| address |
| website |
| twitter |
Given As an "brand-new-user"
Then user "brand-new-user" has editable fields
| displayname |
| email |
| phone |
| address |
| website |
| twitter |
Then user "self" has editable fields
| displayname |
| email |
| phone |
| address |
| website |
| twitter |
Scenario: Edit a user
Given As an "admin"
And user "brand-new-user" exists