diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2016-03-13 19:51:07 +0100 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2016-03-13 19:51:07 +0100 |
commit | 101e4465776cbdb6313470eb4d5bfd48bdfa163d (patch) | |
tree | 0c62617adbce5fd05ad7797437d1ea38b19a9926 /build/integration/features/bootstrap/Sharing.php | |
parent | e415af68af3feec3fca325300544b47275e4de89 (diff) | |
parent | 722188e5030bbce6a00a455115db516d08e4e54d (diff) | |
download | nextcloud-server-101e4465776cbdb6313470eb4d5bfd48bdfa163d.tar.gz nextcloud-server-101e4465776cbdb6313470eb4d5bfd48bdfa163d.zip |
Merge pull request #23091 from owncloud/issue-23085-csae-insensitive-group-search
Return the correct group casing in sharee api
Diffstat (limited to 'build/integration/features/bootstrap/Sharing.php')
-rw-r--r-- | build/integration/features/bootstrap/Sharing.php | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/build/integration/features/bootstrap/Sharing.php b/build/integration/features/bootstrap/Sharing.php index 3da94a143a0..f516b97146d 100644 --- a/build/integration/features/bootstrap/Sharing.php +++ b/build/integration/features/bootstrap/Sharing.php @@ -469,5 +469,56 @@ trait Sharing{ throw new \Exception('Expected the same link share to be returned'); } } + + /** + * @When /^getting sharees for$/ + * @param \Behat\Gherkin\Node\TableNode $body + */ + public function whenGettingShareesFor($body) { + $url = '/apps/files_sharing/api/v1/sharees'; + if ($body instanceof \Behat\Gherkin\Node\TableNode) { + $parameters = []; + foreach ($body->getRowsHash() as $key => $value) { + $parameters[] = $key . '=' . $value; + } + if (!empty($parameters)) { + $url .= '?' . implode('&', $parameters); + } + } + + $this->sendingTo('GET', $url); + } + + /** + * @Then /^"([^"]*)" sharees returned (are|is empty)$/ + * @param string $shareeType + * @param string $isEmpty + * @param \Behat\Gherkin\Node\TableNode|null $shareesList + */ + public function thenListOfSharees($shareeType, $isEmpty, $shareesList = null) { + if ($isEmpty !== 'is empty') { + $sharees = $shareesList->getRows(); + $respondedArray = $this->getArrayOfShareesResponded($this->response, $shareeType); + PHPUnit_Framework_Assert::assertEquals($sharees, $respondedArray); + } else { + $respondedArray = $this->getArrayOfShareesResponded($this->response, $shareeType); + PHPUnit_Framework_Assert::assertEmpty($respondedArray); + } + } + + public function getArrayOfShareesResponded(ResponseInterface $response, $shareeType) { + $elements = $response->xml()->data; + $elements = json_decode(json_encode($elements), 1); + if (strpos($shareeType, 'exact ') === 0) { + $elements = $elements['exact']; + $shareeType = substr($shareeType, 6); + } + + $sharees = []; + foreach ($elements[$shareeType] as $element) { + $sharees[] = [$element['label'], $element['value']['shareType'], $element['value']['shareWith']]; + } + return $sharees; + } } |