90 lines
2.0 KiB
PHP
90 lines
2.0 KiB
PHP
<?php
|
|
/**
|
|
* Nextcloud - Gallery
|
|
*
|
|
*
|
|
* This file is licensed under the Affero General Public License version 3 or
|
|
* later. See the COPYING file.
|
|
*
|
|
* @author Olivier Paroz <galleryapps@oparoz.com>
|
|
*
|
|
* @copyright Olivier Paroz 2017
|
|
*/
|
|
|
|
namespace OCA\Gallery\Tests\Controller;
|
|
|
|
use OCP\Files\File;
|
|
|
|
use OCP\AppFramework\Http;
|
|
|
|
use OCA\Gallery\Controller\PreviewApiController;
|
|
use OCA\Gallery\Http\ImageResponse;
|
|
|
|
/**
|
|
* Class PreviewApiControllerTest
|
|
*
|
|
* @package OCA\Gallery\Controller
|
|
*/
|
|
class PreviewApiControllerTest extends PreviewControllerTest {
|
|
|
|
/** @var PreviewApiController */
|
|
protected $controller;
|
|
|
|
public function setUp() {
|
|
parent::setUp();
|
|
$this->controller = new PreviewApiController(
|
|
$this->appName,
|
|
$this->request,
|
|
$this->urlGenerator,
|
|
$this->configService,
|
|
$this->thumbnailService,
|
|
$this->previewService,
|
|
$this->downloadService,
|
|
$this->eventSource,
|
|
$this->logger
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @return array
|
|
*/
|
|
public function providesTestDownloadData() {
|
|
return [
|
|
[1234, $this->mockSvgFile(1234), true, 'image/svg+xml'],
|
|
[4567, $this->mockSvgFile(4567), false, 'text/plain']
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providesTestDownloadData
|
|
*
|
|
* @param int $fileId
|
|
* @param File $file
|
|
* @param string $nativeSvg
|
|
* @param string $expectedMimeType
|
|
*
|
|
* @internal param string $type
|
|
*/
|
|
public function testGetPreviewOfSvg($fileId, $file, $nativeSvg, $expectedMimeType) {
|
|
$width = 1024;
|
|
$height = 768;
|
|
|
|
/** @type File $file */
|
|
$preview = $this->mockGetData(
|
|
$fileId, $file, $width, $height, $keepAspect = true, $animatedPreview = true,
|
|
$base64Encode = false, $previewRequired = false
|
|
);
|
|
$preview['name'] = $file->getName();
|
|
|
|
/** @type ImageResponse $response */
|
|
$response = $this->controller->getPreview($fileId, $width, $height, $nativeSvg);
|
|
|
|
$this->assertEquals(Http::STATUS_OK, $response->getStatus());
|
|
|
|
$this->assertEquals(
|
|
$expectedMimeType . '; charset=utf-8', $response->getHeaders()['Content-type']
|
|
);
|
|
}
|
|
|
|
}
|