summaryrefslogtreecommitdiffstats
path: root/build/integration/features
diff options
context:
space:
mode:
Diffstat (limited to 'build/integration/features')
-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));
}
}