mirror of
https://github.com/nextcloud/server.git
synced 2026-02-17 09:51:38 -05:00
fix(files_versions): Cache previews
Signed-off-by: provokateurin <kate@provokateurin.de>
This commit is contained in:
parent
37d13a09d1
commit
2f73d92602
2 changed files with 14 additions and 5 deletions
|
|
@ -79,7 +79,9 @@ class PreviewController extends Controller {
|
|||
$file = $userFolder->get($file);
|
||||
$versionFile = $this->versionManager->getVersionFile($user, $file, $version);
|
||||
$preview = $this->previewManager->getPreview($versionFile, $x, $y, true, IPreview::MODE_FILL, $versionFile->getMimetype());
|
||||
return new FileDisplayResponse($preview, Http::STATUS_OK, ['Content-Type' => $preview->getMimeType()]);
|
||||
$response = new FileDisplayResponse($preview, Http::STATUS_OK, ['Content-Type' => $preview->getMimeType()]);
|
||||
$response->cacheFor(3600 * 24, false, true);
|
||||
return $response;
|
||||
} catch (NotFoundException $e) {
|
||||
return new DataResponse([], Http::STATUS_NOT_FOUND);
|
||||
} catch (\InvalidArgumentException $e) {
|
||||
|
|
|
|||
|
|
@ -3,13 +3,13 @@
|
|||
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
namespace OCA\Files_Versions\Tests\Controller;
|
||||
|
||||
use OCA\Files_Versions\Controller\PreviewController;
|
||||
use OCA\Files_Versions\Versions\IVersionManager;
|
||||
use OCP\AppFramework\Http;
|
||||
use OCP\AppFramework\Http\DataResponse;
|
||||
use OCP\AppFramework\Http\FileDisplayResponse;
|
||||
use OCP\Files\File;
|
||||
use OCP\Files\Folder;
|
||||
use OCP\Files\IMimeTypeDetector;
|
||||
|
|
@ -20,6 +20,8 @@ use OCP\IPreview;
|
|||
use OCP\IRequest;
|
||||
use OCP\IUser;
|
||||
use OCP\IUserSession;
|
||||
use OCP\Preview\IMimeIconProvider;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
use Test\TestCase;
|
||||
|
||||
class PreviewControllerTest extends TestCase {
|
||||
|
|
@ -45,6 +47,8 @@ class PreviewControllerTest extends TestCase {
|
|||
/** @var IVersionManager|\PHPUnit\Framework\MockObject\MockObject */
|
||||
private $versionManager;
|
||||
|
||||
private IMimeIconProvider&MockObject $mimeIconProvider;
|
||||
|
||||
protected function setUp(): void {
|
||||
parent::setUp();
|
||||
|
||||
|
|
@ -60,6 +64,7 @@ class PreviewControllerTest extends TestCase {
|
|||
->method('getUser')
|
||||
->willReturn($user);
|
||||
$this->versionManager = $this->createMock(IVersionManager::class);
|
||||
$this->mimeIconProvider = $this->createMock(IMimeIconProvider::class);
|
||||
|
||||
$this->controller = new PreviewController(
|
||||
'files_versions',
|
||||
|
|
@ -67,7 +72,8 @@ class PreviewControllerTest extends TestCase {
|
|||
$this->rootFolder,
|
||||
$this->userSession,
|
||||
$this->versionManager,
|
||||
$this->previewManager
|
||||
$this->previewManager,
|
||||
$this->mimeIconProvider,
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -131,9 +137,10 @@ class PreviewControllerTest extends TestCase {
|
|||
->willReturn('previewMime');
|
||||
|
||||
$res = $this->controller->getPreview('file', 10, 10, '42');
|
||||
$expected = new FileDisplayResponse($preview, Http::STATUS_OK, ['Content-Type' => 'previewMime']);
|
||||
|
||||
$this->assertEquals($expected, $res);
|
||||
$this->assertEquals('previewMime', $res->getHeaders()['Content-Type']);
|
||||
$this->assertEquals(Http::STATUS_OK, $res->getStatus());
|
||||
$this->assertEquals($preview, $this->invokePrivate($res, 'file'));
|
||||
}
|
||||
|
||||
public function testVersionNotFound() {
|
||||
|
|
|
|||
Loading…
Reference in a new issue