Merge pull request #20867 from owncloud/add-quota-behat-test

Add quota behat test
This commit is contained in:
Thomas Müller 2015-12-02 10:13:15 +01:00
commit 438d0be844
5 changed files with 47 additions and 5 deletions

View File

@ -0,0 +1,3 @@
This is a testfile.
Cheers.

View File

@ -175,7 +175,7 @@ trait Provisioning {
* @Given /^user "([^"]*)" belongs to group "([^"]*)"$/
*/
public function assureUserBelongsToGroup($user, $group){
if (!$this->userBelongsToGroup($user, $group)){
if (!$this->userBelongsToGroup($user, $group)){
$previous_user = $this->currentUser;
$this->currentUser = "admin";
$this->addingUserToGroup($user, $group);
@ -431,7 +431,7 @@ trait Provisioning {
$this->theSubadminGroupsShouldBe($groupsList);
}
/**
/**
* Parses the xml answer to get the array of users returned.
* @param ResponseInterface $resp
* @return array
@ -510,6 +510,20 @@ trait Provisioning {
PHPUnit_Framework_Assert::assertEquals(200, $this->response->getStatusCode());
}
/**
* @Given user :user has a quota of :quota
*/
public function userHasAQuotaOf($user, $quota)
{
$body = new \Behat\Gherkin\Node\TableNode([
0 => ['key', 'quota'],
1 => ['value', $quota],
]);
// method used from BasicStructure trait
$this->sendingToWith("PUT", "/cloud/users/" . $user, $body);
}
/**
* @BeforeScenario
* @AfterScenario

View File

@ -21,7 +21,7 @@ trait WebDav{
$this->davPath = $davPath;
}
public function makeDavRequest($user, $method, $path, $headers){
public function makeDavRequest($user, $method, $path, $headers, $body = null){
$fullUrl = substr($this->baseUrl, 0, -4) . $this->davPath . "$path";
$client = new GClient();
$options = [];
@ -36,6 +36,11 @@ trait WebDav{
$request->addHeader($key, $value);
}
}
if (!is_null($body)) {
$request->setBody($body);
}
return $client->send($request);
}
@ -115,7 +120,20 @@ trait WebDav{
}
}
}
/**
* @When User :user uploads file :source to :destination
*/
public function userUploadsAFileTo($user, $source, $destination)
{
$file = \GuzzleHttp\Stream\Stream::factory(fopen($source, 'r'));
try {
$this->response = $this->makeDavRequest($user, "PUT", $destination, [], $file);
} catch (\GuzzleHttp\Exception\ServerException $e) {
// 4xx and 5xx responses cause an exception
$this->response = $e->getResponse();
}
}
}

View File

@ -16,6 +16,13 @@ Feature: sharing
Then Downloaded content should be "example file for developers"
Scenario: Upload forbidden if quota is 0
Given using dav path "remote.php/webdav"
And As an "admin"
And user "user0" exists
And user "user0" has a quota of "0"
When User "user0" uploads file "data/textfile.txt" to "/asdf.txt"
Then the HTTP status code should be "507"

View File

@ -21,7 +21,7 @@ echo $PHPPID_FED
export TEST_SERVER_URL="http://localhost:$PORT/ocs/"
export TEST_SERVER_FED_URL="http://localhost:$PORT_FED/ocs/"
vendor/bin/behat -f junit -f pretty
vendor/bin/behat -f junit -f pretty $1
RESULT=$?
kill $PHPPID