‪TYPO3CMS  ‪main
LocalPreviewHelperTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
20 use PHPUnit\Framework\Attributes\Test;
26 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
27 
31 final class ‪LocalPreviewHelperTest extends UnitTestCase
32 {
33  #[Test]
35  {
36  $file = $this->createMock(File::class);
37  // Use size slightly larger than default size to ensure processing
38  $file->method('getProperty')->willReturnMap([
39  ['width', 65],
40  ['height', 65],
41  ]);
42 
43  $processedFile = $this->createMock(ProcessedFile::class);
44  $processedFile->method('getOriginalFile')->willReturn($file);
45  $task = new ‪ImagePreviewTask($processedFile, []);
46 
47  $localPreviewHelper = $this->getMockBuilder(LocalPreviewHelper::class)
48  ->onlyMethods(['getTemporaryFilePath', 'generatePreviewFromFile'])
49  ->getMock();
50  $localPreviewHelper->expects(self::once())->method('getTemporaryFilePath')->willReturn('test/file');
51  // Assert that by default 64x64 is used as preview size
52  $localPreviewHelper->expects(self::once())->method('generatePreviewFromFile')
53  ->with($file, ['width' => 64, 'height' => 64], 'test/file');
54 
55  $localPreviewHelper->process($task);
56  }
57 
58  #[Test]
59  public function ‪processDoesNotScaleUpImages(): void
60  {
61  $file = $this->createMock(File::class);
62  $file->method('getProperty')->willReturnMap([
63  ['width', 20],
64  ['height', 20],
65  ]);
66 
67  $localPreviewHelper = $this->getMockBuilder(LocalPreviewHelper::class)
68  ->disableOriginalConstructor()
69  ->onlyMethods([])
70  ->getMock();
71 
72  $task = $this->createMock(TaskInterface::class);
73  $task->expects(self::once())->method('getSourceFile')->willReturn($file);
74  $task->expects(self::once())->method('getConfiguration')->willReturn(['width' => 30, 'height' => 30]);
75 
76  self::assertNull($localPreviewHelper->process($task));
77  }
78 
79  #[Test]
81  {
82  $file = $this->createMock(File::class);
83  $file->method('getProperty')->willReturnMap([
84  ['width', 0],
85  ['height', 0],
86  ]);
87 
88  $task = $this->createMock(TaskInterface::class);
89  $task->expects(self::once())->method('getSourceFile')->willReturn($file);
90  $task->expects(self::once())->method('getConfiguration')->willReturn([]);
91 
92  $localPreviewHelper = $this->getMockBuilder(LocalPreviewHelper::class)
93  ->disableOriginalConstructor()
94  ->onlyMethods(['getTemporaryFilePath', 'generatePreviewFromFile'])
95  ->getMock();
96  $expectedResult = ['width' => 20, 'height' => 20, 'filePath' => 'test/file'];
97  $localPreviewHelper->expects(self::once())->method('generatePreviewFromFile')->willReturn($expectedResult);
98  $localPreviewHelper->expects(self::once())->method('getTemporaryFilePath')->willReturn('foo_file');
99 
100  self::assertEquals($expectedResult, $localPreviewHelper->process($task));
101  }
102 }
‪TYPO3\CMS\Core\Resource\Processing\LocalPreviewHelper
Definition: LocalPreviewHelper.php:29
‪TYPO3\CMS\Core\Tests\Unit\Resource\Processing\LocalPreviewHelperTest
Definition: LocalPreviewHelperTest.php:32
‪TYPO3\CMS\Core\Resource\Processing\TaskInterface
Definition: TaskInterface.php:34
‪TYPO3\CMS\Core\Tests\Unit\Resource\Processing\LocalPreviewHelperTest\processGeneratesPreviewEvenIfSourceFileHasNoSize
‪processGeneratesPreviewEvenIfSourceFileHasNoSize()
Definition: LocalPreviewHelperTest.php:80
‪TYPO3\CMS\Core\Resource\Processing\ImagePreviewTask
Definition: ImagePreviewTask.php:27
‪TYPO3\CMS\Core\Tests\Unit\Resource\Processing\LocalPreviewHelperTest\processDoesNotScaleUpImages
‪processDoesNotScaleUpImages()
Definition: LocalPreviewHelperTest.php:59
‪TYPO3\CMS\Core\Tests\Unit\Resource\Processing
Definition: LocalPreviewHelperTest.php:18
‪TYPO3\CMS\Core\Resource\File
Definition: File.php:26
‪TYPO3\CMS\Core\Tests\Unit\Resource\Processing\LocalPreviewHelperTest\processProvidesDefaultSizeIfNotConfigured
‪processProvidesDefaultSizeIfNotConfigured()
Definition: LocalPreviewHelperTest.php:34
‪TYPO3\CMS\Core\Resource\ProcessedFile
Definition: ProcessedFile.php:47