Add an integration test for the phone search API
Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
parent
9e04e6f99a
commit
689e3a502d
|
@ -173,6 +173,37 @@ trait Provisioning {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Then /^search users by phone for region "([^"]*)" with$/
|
||||||
|
*
|
||||||
|
* @param string $user
|
||||||
|
* @param \Behat\Gherkin\Node\TableNode|null $settings
|
||||||
|
*/
|
||||||
|
public function searchUserByPhone($region, \Behat\Gherkin\Node\TableNode $searchTable) {
|
||||||
|
$fullUrl = $this->baseUrl . "v{$this->apiVersion}.php/cloud/users/search/by-phone";
|
||||||
|
$client = new Client();
|
||||||
|
$options = [];
|
||||||
|
$options['auth'] = $this->adminUser;
|
||||||
|
$options['headers'] = [
|
||||||
|
'OCS-APIREQUEST' => 'true',
|
||||||
|
];
|
||||||
|
|
||||||
|
$search = [];
|
||||||
|
foreach ($searchTable->getRows() as $row) {
|
||||||
|
if (!isset($search[$row[0]])) {
|
||||||
|
$search[$row[0]] = [];
|
||||||
|
}
|
||||||
|
$search[$row[0]][] = $row[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
$options['form_params'] = [
|
||||||
|
'location' => $region,
|
||||||
|
'search' => $search,
|
||||||
|
];
|
||||||
|
|
||||||
|
$this->response = $client->post($fullUrl, $options);
|
||||||
|
}
|
||||||
|
|
||||||
public function createUser($user) {
|
public function createUser($user) {
|
||||||
$previous_user = $this->currentUser;
|
$previous_user = $this->currentUser;
|
||||||
$this->currentUser = "admin";
|
$this->currentUser = "admin";
|
||||||
|
@ -560,6 +591,19 @@ trait Provisioning {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Then /^phone matches returned are$/
|
||||||
|
* @param \Behat\Gherkin\Node\TableNode|null $usersList
|
||||||
|
*/
|
||||||
|
public function thePhoneUsersShouldBe($usersList) {
|
||||||
|
if ($usersList instanceof \Behat\Gherkin\Node\TableNode) {
|
||||||
|
$users = $usersList->getRowsHash();
|
||||||
|
$listCheckedElements = simplexml_load_string($this->response->getBody())->data;
|
||||||
|
$respondedArray = json_decode(json_encode($listCheckedElements), true);
|
||||||
|
Assert::assertEquals($users, $respondedArray);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Then /^detailed users returned are$/
|
* @Then /^detailed users returned are$/
|
||||||
* @param \Behat\Gherkin\Node\TableNode|null $usersList
|
* @param \Behat\Gherkin\Node\TableNode|null $usersList
|
||||||
|
|
|
@ -71,12 +71,12 @@ Feature: provisioning
|
||||||
And the HTTP status code should be "200"
|
And the HTTP status code should be "200"
|
||||||
And sending "PUT" to "/cloud/users/brand-new-user" with
|
And sending "PUT" to "/cloud/users/brand-new-user" with
|
||||||
| key | email |
|
| key | email |
|
||||||
| value | brand-new-user@gmail.com |
|
| value | no-reply@nextcloud.com |
|
||||||
And the OCS status code should be "100"
|
And the OCS status code should be "100"
|
||||||
And the HTTP status code should be "200"
|
And the HTTP status code should be "200"
|
||||||
And sending "PUT" to "/cloud/users/brand-new-user" with
|
And sending "PUT" to "/cloud/users/brand-new-user" with
|
||||||
| key | phone |
|
| key | phone |
|
||||||
| value | 0123 456 789 |
|
| value | 0711 / 25 24 28-90 |
|
||||||
And the OCS status code should be "100"
|
And the OCS status code should be "100"
|
||||||
And the HTTP status code should be "200"
|
And the HTTP status code should be "200"
|
||||||
And sending "PUT" to "/cloud/users/brand-new-user" with
|
And sending "PUT" to "/cloud/users/brand-new-user" with
|
||||||
|
@ -97,12 +97,29 @@ Feature: provisioning
|
||||||
Then user "brand-new-user" has
|
Then user "brand-new-user" has
|
||||||
| id | brand-new-user |
|
| id | brand-new-user |
|
||||||
| displayname | Brand New User |
|
| displayname | Brand New User |
|
||||||
| email | brand-new-user@gmail.com |
|
| email | no-reply@nextcloud.com |
|
||||||
| phone | 0123 456 789 |
|
| phone | +4971125242890 |
|
||||||
| address | Foo Bar Town |
|
| address | Foo Bar Town |
|
||||||
| website | https://nextcloud.com |
|
| website | https://nextcloud.com |
|
||||||
| twitter | Nextcloud |
|
| twitter | Nextcloud |
|
||||||
|
|
||||||
|
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 | 0711 / 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@http://localhost:8080/ |
|
||||||
|
|
||||||
Scenario: Create a group
|
Scenario: Create a group
|
||||||
Given As an "admin"
|
Given As an "admin"
|
||||||
And group "new-group" does not exist
|
And group "new-group" does not exist
|
||||||
|
|
Loading…
Reference in New Issue