add behat tests for 0 quota upload failure

This commit is contained in:
Morris Jobke 2015-12-01 13:36:55 +01:00
parent d5fe052838
commit 83432b3c25
4 changed files with 44 additions and 2 deletions

View File

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

View File

@ -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);
}
@ -116,6 +121,19 @@ 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"