Integration test check download without saving file locally
Use Guzzle stream mode to download the contents instead of using a temporary local file. Signed-off-by: Morris Jobke <hey@morrisjobke.de>
This commit is contained in:
parent
5683365a2c
commit
3740f9bc26
|
@ -102,21 +102,13 @@ trait Sharing {
|
|||
$url = $this->lastShareData->data->url;
|
||||
}
|
||||
$fullUrl = $url . "/download";
|
||||
$options['save_to'] = "./$filename";
|
||||
$this->response = $client->get($fullUrl, $options);
|
||||
$finfo = new finfo;
|
||||
$fileinfo = $finfo->file("./$filename", FILEINFO_MIME_TYPE);
|
||||
PHPUnit_Framework_Assert::assertEquals($fileinfo, "text/plain");
|
||||
if (file_exists("./$filename")) {
|
||||
unlink("./$filename");
|
||||
}
|
||||
$this->checkDownload($fullUrl, null, 'text/plain');
|
||||
}
|
||||
|
||||
/**
|
||||
* @Then /^Public shared file "([^"]*)" with password "([^"]*)" can be downloaded$/
|
||||
*/
|
||||
public function checkPublicSharedFileWithPassword($filename, $password) {
|
||||
$client = new Client();
|
||||
$options = [];
|
||||
if (count($this->lastShareData->data->element) > 0){
|
||||
$token = $this->lastShareData->data[0]->token;
|
||||
|
@ -126,14 +118,30 @@ trait Sharing {
|
|||
}
|
||||
|
||||
$fullUrl = substr($this->baseUrl, 0, -4) . "public.php/webdav";
|
||||
$options['auth'] = [$token, $password];
|
||||
$options['save_to'] = "./$filename";
|
||||
$this->response = $client->get($fullUrl, $options);
|
||||
$finfo = new finfo;
|
||||
$fileinfo = $finfo->file("./$filename", FILEINFO_MIME_TYPE);
|
||||
PHPUnit_Framework_Assert::assertEquals($fileinfo, "text/plain");
|
||||
if (file_exists("./$filename")) {
|
||||
unlink("./$filename");
|
||||
$this->checkDownload($fullUrl, [$token, $password], 'text/plain');
|
||||
}
|
||||
|
||||
private function checkDownload($url, $auth = null, $mimeType = null) {
|
||||
if ($auth !== null) {
|
||||
$options['auth'] = $auth;
|
||||
}
|
||||
$options['stream'] = true;
|
||||
|
||||
$client = new Client();
|
||||
$this->response = $client->get($url, $options);
|
||||
PHPUnit_Framework_Assert::assertEquals(200, $this->response->getStatusCode());
|
||||
|
||||
$buf = '';
|
||||
$body = $this->response->getBody();
|
||||
while (!$body->eof()) {
|
||||
// read everything
|
||||
$buf .= $body->read(8192);
|
||||
}
|
||||
$body->close();
|
||||
|
||||
if ($mimeType !== null) {
|
||||
$finfo = new finfo;
|
||||
PHPUnit_Framework_Assert::assertEquals($mimeType, $finfo->buffer($buf, FILEINFO_MIME_TYPE));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue