Making propfinds, having depth in mind and checking it in gherkin description

This commit is contained in:
Sergio Bertolin 2015-11-30 12:20:05 +00:00
parent 40172e252b
commit 52f6592991
2 changed files with 25 additions and 17 deletions

View File

@ -58,7 +58,8 @@ trait WebDav{
$this->response = $this->makeDavRequest($user, "MOVE", $fileSource, $headers);
}
public function listFolder($user, $path){
/*Returns the elements of a propfind, $folderDepth requires 1 to see elements without children*/
public function listFolder($user, $path, $folderDepth){
$fullUrl = substr($this->baseUrl, 0, -4);
$settings = array(
@ -66,9 +67,6 @@ trait WebDav{
'userName' => $user,
);
echo "password del admin: " . $this->adminUser[1] . "\n";
echo "fullUrl: " . $fullUrl . "\n";
if ($user === 'admin') {
$settings['password'] = $this->adminUser[1];
} else {
@ -78,22 +76,28 @@ trait WebDav{
$client = new SClient($settings);
$response = $client->propfind($this->davPath . "/", array(
'{DAV:}getetag',
1
));
'{DAV:}getetag'
), $folderDepth);
print_r($response);
/*$features = $client->options();
print_r($features);*/
//return $this->response->xml();
return $response;
}
/**
* @Then /^user "([^"]*)" should see following folders$/
* @Then /^user "([^"]*)" should see following elements$/
* @param \Behat\Gherkin\Node\TableNode|null $expectedElements
*/
public function checkList($user){
$this->listFolder($user, '/');
public function checkElementList($user, $expectedElements){
$elementList = $this->listFolder($user, '/', 2);
if ($expectedElements instanceof \Behat\Gherkin\Node\TableNode) {
$elementRows = $expectedElements->getRows();
$elementsSimplified = $this->simplifyArray($elementRows);
foreach($elementsSimplified as $expectedElement) {
$webdavPath = "/" . $this->davPath . $expectedElement;
if (!array_key_exists($webdavPath,$elementList)){
PHPUnit_Framework_Assert::fail("$webdavPath" . " is not in propfind answer");
}
}
}
}

View File

@ -371,8 +371,12 @@ Feature: sharing
And user "user1" belongs to group "group0"
And file "/PARENT" from user "user0" is shared with user "user1"
When file "/PARENT/CHILD" from user "user0" is shared with group "group0"
And As an "admin"
Then user "user1" should see following folders
Then user "user1" should see following elements
| /FOLDER/ |
| /PARENT/ |
| /CHILD/ |
| /PARENT/parent.txt |
| /CHILD/child.txt |
And the HTTP status code should be "200"
Scenario: Delete all group shares