‪TYPO3CMS  ‪main
IconRegistryTest.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;
27 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
28 
29 final class ‪IconRegistryTest extends UnitTestCase
30 {
31  #[Test]
33  {
34  $result = (new ‪IconRegistry(new ‪NullFrontend('test'), 'BackendIcons'))->getDefaultIconIdentifier();
35  self::assertEquals('default-not-found', $result);
36  }
37 
38  #[Test]
40  {
41  $subject = new ‪IconRegistry(new ‪NullFrontend('test'), 'BackendIcons');
42  $result = $subject->isRegistered($subject->getDefaultIconIdentifier());
43  self::assertTrue($result);
44  }
45 
46  #[Test]
48  {
49  $result = (new ‪IconRegistry(new ‪NullFrontend('test'), 'BackendIcons'))->isRegistered('my-super-unregistered-identifier');
50  self::assertFalse($result);
51  }
52 
53  #[Test]
54  public function ‪registerIconAddNewIconToRegistry(): void
55  {
56  $unregisteredIcon = 'foo-bar-unregistered';
57  $subject = new ‪IconRegistry(new ‪NullFrontend('test'), 'BackendIcons');
58  self::assertFalse($subject->isRegistered($unregisteredIcon));
59  $subject->registerIcon($unregisteredIcon, BitmapIconProvider::class, [
60  'name' => 'pencil',
61  'source' => 'EXT:core/Resoureces/Public/Icons/pencil.png',
62  ]);
63  self::assertTrue($subject->isRegistered($unregisteredIcon));
64  }
65 
66  #[Test]
68  {
69  $this->expectException(\InvalidArgumentException::class);
70  $this->expectExceptionCode(1437425803);
71 
72  (new ‪IconRegistry(new ‪NullFrontend('test'), 'BackendIcons'))->registerIcon('my-super-unregistered-identifier', GeneralUtility::class);
73  }
74 
75  #[Test]
77  {
78  $this->expectException(Exception::class);
79  $this->expectExceptionCode(1437425804);
80 
81  (new ‪IconRegistry(new ‪NullFrontend('test'), 'BackendIcons'))->getIconConfigurationByIdentifier('my-super-unregistered-identifier');
82  }
83 
84  #[Test]
86  {
87  $result = (new ‪IconRegistry(new ‪NullFrontend('test'), 'BackendIcons'))->getIconConfigurationByIdentifier('default-not-found');
88  // result must contain at least provider and options array
89  self::assertArrayHasKey('provider', $result);
90  self::assertArrayHasKey('options', $result);
91  // the provider must implement the IconProviderInterface
92  self::assertContains(IconProviderInterface::class, class_implements($result['provider']));
93  }
94 
95  #[Test]
97  {
98  self::assertIsArray((new ‪IconRegistry(new ‪NullFrontend('test'), 'BackendIcons'))->getAllRegisteredIconIdentifiers());
99  }
100 
101  #[Test]
103  {
104  $result = (new ‪IconRegistry(new ‪NullFrontend('test'), 'BackendIcons'))->getAllRegisteredIconIdentifiers();
105  self::assertIsArray($result);
106  self::assertContains('default-not-found', $result);
107  }
108 
109  #[Test]
111  {
112  $result = (new ‪IconRegistry(new ‪NullFrontend('test'), 'BackendIcons'))->getIconIdentifierForFileExtension('');
113  self::assertEquals('mimetypes-other-other', $result);
114  }
115 
116  #[Test]
118  {
119  $result = (new ‪IconRegistry(new ‪NullFrontend('test'), 'BackendIcons'))->getIconIdentifierForFileExtension('xyz');
120  self::assertEquals('mimetypes-other-other', $result);
121  }
122 
123  #[Test]
125  {
126  $result = (new ‪IconRegistry(new ‪NullFrontend('test'), 'BackendIcons'))->getIconIdentifierForFileExtension('jpg');
127  self::assertEquals('mimetypes-media-image', $result);
128  }
129 
130  #[Test]
132  {
133  $subject = new ‪IconRegistry(new ‪NullFrontend('test'), 'BackendIcons');
134  $subject->registerFileExtension('abc', 'xyz');
135  $result = $subject->getIconIdentifierForFileExtension('abc');
136  self::assertEquals('xyz', $result);
137  }
138 
139  #[Test]
141  {
142  $subject = new ‪IconRegistry(new ‪NullFrontend('test'), 'BackendIcons');
143  $subject->registerFileExtension('jpg', 'xyz');
144  $result = $subject->getIconIdentifierForFileExtension('jpg');
145  self::assertEquals('xyz', $result);
146  }
147 
148  #[Test]
150  {
151  $subject = new ‪IconRegistry(new ‪NullFrontend('test'), 'BackendIcons');
152  $subject->registerMimeTypeIcon('foo/bar', 'mimetype-foo-bar');
153  $result = $subject->getIconIdentifierForMimeType('foo/bar');
154  self::assertEquals('mimetype-foo-bar', $result);
155  }
156 
157  #[Test]
159  {
160  $subject = new ‪IconRegistry(new ‪NullFrontend('test'), 'BackendIcons');
161  $subject->registerMimeTypeIcon('video/*', 'mimetype-foo-bar');
162  $result = $subject->getIconIdentifierForMimeType('video/*');
163  self::assertEquals('mimetype-foo-bar', $result);
164  }
165 
166  #[Test]
168  {
169  $result = (new ‪IconRegistry(new ‪NullFrontend('test'), 'BackendIcons'))->getIconIdentifierForMimeType('bar/foo');
170  self::assertNull($result);
171  }
172 }
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconRegistryTest\getIconIdentifierForFileExtensionReturnsDefaultIconIdentifierForEmptyFileExtension
‪getIconIdentifierForFileExtensionReturnsDefaultIconIdentifierForEmptyFileExtension()
Definition: IconRegistryTest.php:110
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconRegistryTest\getAllRegisteredIconIdentifiersReturnsArrayWithAllRegisteredIconIdentifiers
‪getAllRegisteredIconIdentifiersReturnsArrayWithAllRegisteredIconIdentifiers()
Definition: IconRegistryTest.php:102
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconRegistryTest\isRegisteredReturnsFalseForNotRegisteredIcon
‪isRegisteredReturnsFalseForNotRegisteredIcon()
Definition: IconRegistryTest.php:47
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconRegistryTest\registerFileExtensionOverwriteAnExistingIcon
‪registerFileExtensionOverwriteAnExistingIcon()
Definition: IconRegistryTest.php:140
‪TYPO3\CMS\Core\Exception
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconRegistryTest
Definition: IconRegistryTest.php:30
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconRegistryTest\getIconIdentifierForFileExtensionReturnsDefaultIconIdentifierForUnknownFileExtension
‪getIconIdentifierForFileExtensionReturnsDefaultIconIdentifierForUnknownFileExtension()
Definition: IconRegistryTest.php:117
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconRegistryTest\getIconIdentifierForMimeTypeWithUnknownMimeTypeReturnNull
‪getIconIdentifierForMimeTypeWithUnknownMimeTypeReturnNull()
Definition: IconRegistryTest.php:167
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconRegistryTest\registerFileExtensionRegisterAnIcon
‪registerFileExtensionRegisterAnIcon()
Definition: IconRegistryTest.php:131
‪TYPO3\CMS\Core\Cache\Frontend\NullFrontend
Definition: NullFrontend.php:30
‪TYPO3\CMS\Core\Tests\Unit\Imaging
Definition: DimensionTest.php:18
‪TYPO3\CMS\Core\Imaging\IconProvider\BitmapIconProvider
Definition: BitmapIconProvider.php:27
‪TYPO3\CMS\Core\Imaging\IconProviderInterface
Definition: IconProviderInterface.php:22
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconRegistryTest\getAllRegisteredIconIdentifiersReturnsAnArrayWithIconIdentifiers
‪getAllRegisteredIconIdentifiersReturnsAnArrayWithIconIdentifiers()
Definition: IconRegistryTest.php:96
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconRegistryTest\getIconConfigurationByIdentifierReturnsCorrectConfiguration
‪getIconConfigurationByIdentifierReturnsCorrectConfiguration()
Definition: IconRegistryTest.php:85
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconRegistryTest\getIconIdentifierForFileExtensionReturnsImageIconIdentifierForImageFileExtension
‪getIconIdentifierForFileExtensionReturnsImageIconIdentifierForImageFileExtension()
Definition: IconRegistryTest.php:124
‪TYPO3\CMS\Core\Imaging\IconRegistry
Definition: IconRegistry.php:32
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconRegistryTest\getDefaultIconIdentifierReturnsTheCorrectDefaultIconIdentifierString
‪getDefaultIconIdentifierReturnsTheCorrectDefaultIconIdentifierString()
Definition: IconRegistryTest.php:32
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconRegistryTest\registerIconAddNewIconToRegistry
‪registerIconAddNewIconToRegistry()
Definition: IconRegistryTest.php:54
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconRegistryTest\registerMimeTypeIconRegisterAnIcon
‪registerMimeTypeIconRegisterAnIcon()
Definition: IconRegistryTest.php:149
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconRegistryTest\isRegisteredReturnsTrueForRegisteredIcon
‪isRegisteredReturnsTrueForRegisteredIcon()
Definition: IconRegistryTest.php:39
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconRegistryTest\registerIconThrowsInvalidArgumentExceptionWithInvalidIconProvider
‪registerIconThrowsInvalidArgumentExceptionWithInvalidIconProvider()
Definition: IconRegistryTest.php:67
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:52
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconRegistryTest\getIconConfigurationByIdentifierThrowsExceptionWithUnregisteredIconIdentifier
‪getIconConfigurationByIdentifierThrowsExceptionWithUnregisteredIconIdentifier()
Definition: IconRegistryTest.php:76
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconRegistryTest\registerMimeTypeIconOverwriteAnExistingIcon
‪registerMimeTypeIconOverwriteAnExistingIcon()
Definition: IconRegistryTest.php:158