2025-09-16 05:34:41 -04:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
declare(strict_types=1);
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH
|
|
|
|
|
* SPDX-FileContributor: Carl Schwan
|
|
|
|
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
namespace Test\Preview;
|
|
|
|
|
|
|
|
|
|
use OC\Preview\Db\Preview;
|
|
|
|
|
use OC\Preview\Db\PreviewMapper;
|
|
|
|
|
use OC\Preview\PreviewService;
|
|
|
|
|
use OCP\Server;
|
|
|
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
|
|
|
|
|
|
#[CoversClass(PreviewService::class)]
|
2025-10-20 19:52:40 -04:00
|
|
|
#[\PHPUnit\Framework\Attributes\Group('DB')]
|
2025-09-16 05:34:41 -04:00
|
|
|
class PreviewServiceTest extends TestCase {
|
|
|
|
|
private PreviewService $previewService;
|
2025-09-30 09:56:31 -04:00
|
|
|
private PreviewMapper $previewMapper;
|
2025-09-16 05:34:41 -04:00
|
|
|
|
|
|
|
|
protected function setUp(): void {
|
2025-10-20 21:40:04 -04:00
|
|
|
parent::setUp();
|
2025-09-16 05:34:41 -04:00
|
|
|
$this->previewService = Server::get(PreviewService::class);
|
|
|
|
|
$this->previewMapper = Server::get(PreviewMapper::class);
|
|
|
|
|
$this->previewService->deleteAll();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function tearDown(): void {
|
|
|
|
|
$this->previewService->deleteAll();
|
2025-10-20 21:40:04 -04:00
|
|
|
parent::tearDown();
|
2025-09-16 05:34:41 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testGetAvailableFileIds(): void {
|
|
|
|
|
foreach (range(1, 20) as $i) {
|
|
|
|
|
$preview = new Preview();
|
2026-01-05 15:37:23 -05:00
|
|
|
$preview->generateId();
|
2025-09-16 05:34:41 -04:00
|
|
|
$preview->setFileId($i % 10);
|
|
|
|
|
$preview->setStorageId(1);
|
|
|
|
|
$preview->setWidth($i);
|
|
|
|
|
$preview->setHeight($i);
|
|
|
|
|
$preview->setMax(true);
|
2025-09-30 09:56:31 -04:00
|
|
|
$preview->setSourceMimeType('image/jpeg');
|
2025-09-16 05:34:41 -04:00
|
|
|
$preview->setCropped(true);
|
|
|
|
|
$preview->setEncrypted(false);
|
2025-09-30 09:56:31 -04:00
|
|
|
$preview->setMimetype('image/jpeg');
|
2025-09-16 05:34:41 -04:00
|
|
|
$preview->setEtag('abc');
|
|
|
|
|
$preview->setMtime((new \DateTime())->getTimestamp());
|
|
|
|
|
$preview->setSize(0);
|
|
|
|
|
$this->previewMapper->insert($preview);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$files = iterator_to_array($this->previewService->getAvailableFileIds());
|
|
|
|
|
$this->assertCount(1, $files);
|
|
|
|
|
$this->assertCount(10, $files[0]['fileIds']);
|
|
|
|
|
}
|
|
|
|
|
}
|