summaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2017-01-24 07:32:47 +0100
committerMorris Jobke <hey@morrisjobke.de>2017-03-16 23:57:16 -0600
commit3740f9bc2616ee129566c6c075df0fe41b68acd0 (patch)
tree2946a2d5f7a1509cf72b760ed242ae05e6d6e6dc /build
parent5683365a2cc605cbaf41290e4cdfde7028f9014a (diff)
downloadnextcloud-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.php42
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));
}
}