‪TYPO3CMS  ‪main
PreviewProcessingTest.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;
21 use Psr\EventDispatcher\EventDispatcherInterface;
22 use Symfony\Component\DependencyInjection\Container;
32 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
33 
34 final class ‪PreviewProcessingTest extends FunctionalTestCase
35 {
36  #[Test]
38  {
39  $afterVideoPreviewFetchedEvent = null;
40  $afterVideoPreviewFetchedEventListener = 'after-video-preview-fetched';
41  $initialPreviewImageFilename = '';
42  $oldPreviewImageFilename = '/var/www/previewOld.png';
43  $newPreviewImageFilename = '/var/www/previewNew.png';
44  $onlineMediaId = '2004';
45 
47  $container = $this->get('service_container');
48  $container->set(
49  $afterVideoPreviewFetchedEventListener,
50  static function (‪AfterVideoPreviewFetchedEvent $event) use (
51  &$afterVideoPreviewFetchedEvent,
52  &$initialPreviewImageFilename,
53  $newPreviewImageFilename
54  ) {
55  $initialPreviewImageFilename = $event->‪getPreviewImageFilename();
56  $event->‪setPreviewImageFilename($newPreviewImageFilename);
57  $afterVideoPreviewFetchedEvent = $event;
58  }
59  );
60 
61  $eventListener = $container->get(ListenerProvider::class);
62  $eventListener->addListener(AfterVideoPreviewFetchedEvent::class, $afterVideoPreviewFetchedEventListener);
63 
64  $onlineMediaHelper = $this->getMockBuilder(YouTubeHelper::class)->disableOriginalConstructor()->getMock();
65  $onlineMediaHelper->expects(self::atLeastOnce())->method('getPreviewImage')->willReturn($oldPreviewImageFilename);
66  $onlineMediaHelper->expects(self::atLeastOnce())->method('getOnlineMediaId')->willReturn($onlineMediaId);
67  $onlineMediaHelperRegistry = $this->getMockBuilder(OnlineMediaHelperRegistry::class)->disableOriginalConstructor()->getMock();
68  $onlineMediaHelperRegistry->expects(self::atLeastOnce())->method('getOnlineMediaHelper')->willReturn($onlineMediaHelper);
69 
70  $subject = new ‪PreviewProcessing(
71  $onlineMediaHelperRegistry,
72  $container->get(EventDispatcherInterface::class),
73  $this->createMock(LocalImageProcessor::class)
74  );
75 
76  $file = new ‪File(['name' => 'MyVideo'], $this->createMock(ResourceStorage::class), []);
77  $taskMock = $this->createMock(AbstractTask::class);
78  $taskMock->method('getSourceFile')->willReturn($file);
79 
80  $subject->processTask($taskMock);
81 
82  self::assertInstanceOf(AfterVideoPreviewFetchedEvent::class, $afterVideoPreviewFetchedEvent);
83  self::assertEquals($initialPreviewImageFilename, $oldPreviewImageFilename);
84  self::assertEquals($file, $afterVideoPreviewFetchedEvent->getFile());
85  self::assertEquals($onlineMediaId, $afterVideoPreviewFetchedEvent->getOnlineMediaId());
86  self::assertEquals($newPreviewImageFilename, $afterVideoPreviewFetchedEvent->getPreviewImageFilename());
87  self::assertEquals($newPreviewImageFilename, $afterVideoPreviewFetchedEvent->getPreviewImageFilename());
88  }
89 }
‪TYPO3\CMS\Core\Resource\OnlineMedia\Processing\PreviewProcessing
Definition: PreviewProcessing.php:30
‪TYPO3\CMS\Core\Resource\OnlineMedia\Helpers\OnlineMediaHelperRegistry
Definition: OnlineMediaHelperRegistry.php:27
‪TYPO3\CMS\Core\Resource\OnlineMedia\Event\AfterVideoPreviewFetchedEvent\setPreviewImageFilename
‪setPreviewImageFilename(string $previewImageFilename)
Definition: AfterVideoPreviewFetchedEvent.php:49
‪TYPO3\CMS\Core\Resource\OnlineMedia\Event\AfterVideoPreviewFetchedEvent
Definition: AfterVideoPreviewFetchedEvent.php:27
‪TYPO3\CMS\Core\Resource\Processing\LocalImageProcessor
Definition: LocalImageProcessor.php:27
‪TYPO3\CMS\Core\Tests\Functional\Resource\OnlineMedia\Processing\PreviewProcessingTest
Definition: PreviewProcessingTest.php:35
‪TYPO3\CMS\Core\Tests\Functional\Resource\OnlineMedia\Processing
Definition: PreviewProcessingTest.php:18
‪TYPO3\CMS\Core\Resource\File
Definition: File.php:26
‪TYPO3\CMS\Core\Tests\Functional\Resource\OnlineMedia\Processing\PreviewProcessingTest\afterVideoPreviewFetchedEventIsTriggered
‪afterVideoPreviewFetchedEventIsTriggered()
Definition: PreviewProcessingTest.php:37
‪TYPO3\CMS\Core\Resource\ResourceStorage
Definition: ResourceStorage.php:129
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask
Definition: AbstractTask.php:29
‪TYPO3\CMS\Core\Resource\OnlineMedia\Event\AfterVideoPreviewFetchedEvent\getPreviewImageFilename
‪getPreviewImageFilename()
Definition: AfterVideoPreviewFetchedEvent.php:44
‪TYPO3\CMS\Core\Resource\OnlineMedia\Helpers\YouTubeHelper
Definition: YouTubeHelper.php:26
‪TYPO3\CMS\Core\EventDispatcher\ListenerProvider
Definition: ListenerProvider.php:30