Merge pull request #24252 from owncloud/integration_test_favorites
Added favorites integration tests
This commit is contained in:
commit
c1729852e6
|
@ -214,7 +214,7 @@ trait WebDav {
|
|||
}
|
||||
|
||||
$value = $keys[$key];
|
||||
if ($value !== $expectedValue) {
|
||||
if ($value != $expectedValue) {
|
||||
throw new \Exception("Property \"$key\" found with value \"$value\", expected \"$expectedValue\"");
|
||||
}
|
||||
}
|
||||
|
@ -434,5 +434,51 @@ trait WebDav {
|
|||
$this->response = $ex->getResponse();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @When user :user favorites element :path
|
||||
*/
|
||||
public function userFavoritesElement($user, $path){
|
||||
$this->response = $this->changeFavStateOfAnElement($user, $path, 1, 0, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* @When user :user unfavorites element :path
|
||||
*/
|
||||
public function userUnfavoritesElement($user, $path){
|
||||
$this->response = $this->changeFavStateOfAnElement($user, $path, 0, 0, null);
|
||||
}
|
||||
|
||||
/*Set the elements of a proppatch, $folderDepth requires 1 to see elements without children*/
|
||||
public function changeFavStateOfAnElement($user, $path, $favOrUnfav, $folderDepth, $properties = null){
|
||||
$fullUrl = substr($this->baseUrl, 0, -4);
|
||||
$settings = array(
|
||||
'baseUri' => $fullUrl,
|
||||
'userName' => $user,
|
||||
);
|
||||
if ($user === 'admin') {
|
||||
$settings['password'] = $this->adminUser[1];
|
||||
} else {
|
||||
$settings['password'] = $this->regularUser;
|
||||
}
|
||||
$client = new SClient($settings);
|
||||
if (!$properties) {
|
||||
$properties = [
|
||||
'{http://owncloud.org/ns}favorite' => $favOrUnfav
|
||||
];
|
||||
}
|
||||
|
||||
$response = $client->proppatch($this->davPath . '/' . ltrim($path, '/'), $properties, $folderDepth);
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* @Then /^as "([^"]*)" gets properties of file "([^"]*)" with$/
|
||||
* @param string $user
|
||||
* @param string $path
|
||||
* @param \Behat\Gherkin\Node\TableNode|null $propertiesTable
|
||||
*/
|
||||
public function asGetsPropertiesOfFileWith($user, $path, $propertiesTable) {
|
||||
$this->asGetsPropertiesOfFolderWith($user, $path, $propertiesTable);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
Feature: favorite
|
||||
Background:
|
||||
Given using api version "1"
|
||||
|
||||
Scenario: Favorite a folder
|
||||
Given using dav path "remote.php/webdav"
|
||||
And As an "admin"
|
||||
And user "user0" exists
|
||||
When user "user0" favorites element "/FOLDER"
|
||||
Then as "user0" gets properties of folder "/FOLDER" with
|
||||
|{http://owncloud.org/ns}favorite|
|
||||
And the single response should contain a property "{http://owncloud.org/ns}favorite" with value "1"
|
||||
|
||||
Scenario: Favorite and unfavorite a folder
|
||||
Given using dav path "remote.php/webdav"
|
||||
And As an "admin"
|
||||
And user "user0" exists
|
||||
When user "user0" favorites element "/FOLDER"
|
||||
And user "user0" unfavorites element "/FOLDER"
|
||||
Then as "user0" gets properties of folder "/FOLDER" with
|
||||
|{http://owncloud.org/ns}favorite|
|
||||
And the single response should contain a property "{http://owncloud.org/ns}favorite" with value ""
|
||||
|
||||
Scenario: Favorite a file
|
||||
Given using dav path "remote.php/webdav"
|
||||
And As an "admin"
|
||||
And user "user0" exists
|
||||
When user "user0" favorites element "/textfile0.txt"
|
||||
Then as "user0" gets properties of file "/textfile0.txt" with
|
||||
|{http://owncloud.org/ns}favorite|
|
||||
And the single response should contain a property "{http://owncloud.org/ns}favorite" with value "1"
|
||||
|
||||
Scenario: Favorite and unfavorite a file
|
||||
Given using dav path "remote.php/webdav"
|
||||
And As an "admin"
|
||||
And user "user0" exists
|
||||
When user "user0" favorites element "/textfile0.txt"
|
||||
And user "user0" unfavorites element "/textfile0.txt"
|
||||
Then as "user0" gets properties of file "/textfile0.txt" with
|
||||
|{http://owncloud.org/ns}favorite|
|
||||
And the single response should contain a property "{http://owncloud.org/ns}favorite" with value ""
|
||||
|
Loading…
Reference in New Issue