|
|
|
|
@ -26,8 +26,8 @@ |
|
|
|
|
* |
|
|
|
|
*/ |
|
|
|
|
use GuzzleHttp\Client; |
|
|
|
|
use GuzzleHttp\Message\ResponseInterface; |
|
|
|
|
use PHPUnit\Framework\Assert; |
|
|
|
|
use Psr\Http\Message\ResponseInterface; |
|
|
|
|
|
|
|
|
|
require __DIR__ . '/../../vendor/autoload.php'; |
|
|
|
|
|
|
|
|
|
@ -48,7 +48,7 @@ trait Sharing { |
|
|
|
|
/** @var int */ |
|
|
|
|
private $savedShareId = null; |
|
|
|
|
|
|
|
|
|
/** @var \Psr\Http\Message\ResponseInterface */ |
|
|
|
|
/** @var ResponseInterface */ |
|
|
|
|
private $response; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
@ -546,26 +546,54 @@ trait Sharing { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @Then The following headers should be set |
|
|
|
|
* @param \Behat\Gherkin\Node\TableNode $table |
|
|
|
|
* @throws \Exception |
|
|
|
|
* @When /^getting sharees for$/ |
|
|
|
|
* @param \Behat\Gherkin\Node\TableNode $body |
|
|
|
|
*/ |
|
|
|
|
public function theFollowingHeadersShouldBeSet(\Behat\Gherkin\Node\TableNode $table) { |
|
|
|
|
foreach($table->getTable() as $header) { |
|
|
|
|
$headerName = $header[0]; |
|
|
|
|
$expectedHeaderValue = $header[1]; |
|
|
|
|
$returnedHeader = $this->response->getHeader($headerName)[0]; |
|
|
|
|
if($returnedHeader !== $expectedHeaderValue) { |
|
|
|
|
throw new \Exception( |
|
|
|
|
sprintf( |
|
|
|
|
"Expected value '%s' for header '%s', got '%s'", |
|
|
|
|
$expectedHeaderValue, |
|
|
|
|
$headerName, |
|
|
|
|
$returnedHeader |
|
|
|
|
) |
|
|
|
|
); |
|
|
|
|
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); |
|
|
|
|
Assert::assertEquals($sharees, $respondedArray); |
|
|
|
|
} else { |
|
|
|
|
$respondedArray = $this->getArrayOfShareesResponded($this->response, $shareeType); |
|
|
|
|
Assert::assertEmpty($respondedArray); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function getArrayOfShareesResponded(ResponseInterface $response, $shareeType) { |
|
|
|
|
$elements = simplexml_load_string($response->getBody())->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; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|