diff options
author | Vincent Petry <pvince81@owncloud.com> | 2017-01-24 07:32:47 +0100 |
---|---|---|
committer | Morris Jobke <hey@morrisjobke.de> | 2017-03-16 23:57:16 -0600 |
commit | 3740f9bc2616ee129566c6c075df0fe41b68acd0 (patch) | |
tree | 2946a2d5f7a1509cf72b760ed242ae05e6d6e6dc /build | |
parent | 5683365a2cc605cbaf41290e4cdfde7028f9014a (diff) | |
download | nextcloud-server-3740f9bc2616ee129566c6c075df0fe41b68acd0.tar.gz nextcloud-server-3740f9bc2616ee129566c6c075df0fe41b68acd0.zip |
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>
Diffstat (limited to 'build')
-rw-r--r-- | build/integration/features/bootstrap/Sharing.php | 42 |
1 files changed, 25 insertions, 17 deletions
diff --git a/build/integration/features/bootstrap/Sharing.php b/build/integration/features/bootstrap/Sharing.php index a4a9b846cf4..e5618987069 100644 --- a/build/integration/features/bootstrap/Sharing.php +++ b/build/integration/features/bootstrap/Sharing.php @@ -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)); } } |