‪TYPO3CMS  ‪main
IconTest.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\DataProvider;
21 use PHPUnit\Framework\Attributes\Test;
22 use Psr\Container\ContainerInterface;
28 use TYPO3\CMS\Core\Imaging\IconSize;
30 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
31 
32 final class ‪IconTest extends UnitTestCase
33 {
34  protected ?‪Icon ‪$subject;
35  protected string ‪$iconIdentifier = 'actions-close';
36  protected string ‪$overlayIdentifier = 'overlay-readonly';
37 
38  protected function ‪setUp(): void
39  {
40  parent::setUp();
41  $containerMock = $this->createMock(ContainerInterface::class);
42  $containerMock->method('has')->with(self::anything())->willReturn(false);
43  $iconFactory = new ‪IconFactory(new ‪NoopEventDispatcher(), new ‪IconRegistry(new ‪NullFrontend('test'), 'BackendIcons'), $containerMock);
44  $this->subject = $iconFactory->getIcon($this->iconIdentifier, IconSize::SMALL, $this->overlayIdentifier, ‪IconState::STATE_DISABLED);
45  }
46 
47  #[Test]
49  {
50  self::assertEquals($this->subject->render(), (string)$this->subject);
51  }
52 
53  #[Test]
55  {
56  self::assertEquals($this->iconIdentifier, $this->subject->getIdentifier());
57  }
58 
59  #[Test]
61  {
62  self::assertEquals($this->overlayIdentifier, $this->subject->getOverlayIcon()->getIdentifier());
63  }
64 
65  #[Test]
67  {
68  self::assertEquals(IconSize::SMALL->value, $this->subject->getSize());
69  }
70 
71  #[Test]
72  public function ‪getStateReturnsCorrectIdentifier(): void
73  {
74  self::assertSame($this->subject->getState(), ‪IconState::STATE_DISABLED);
75  }
76 
77  public static function ‪setSizeSetsExpectedValuesDataProvider(): \Generator
78  {
79  yield 'IconSize::DEFAULT' => [
80  IconSize::DEFAULT,
81  [16, 16],
82  ];
83  yield 'IconSize::SMALL' => [
84  IconSize::SMALL,
85  [16, 16],
86  ];
87  yield 'IconSize::OVERLAY' => [
88  IconSize::OVERLAY,
89  [16, 16],
90  ];
91  yield 'IconSize::MEDIUM' => [
92  IconSize::MEDIUM,
93  [32, 32],
94  ];
95  yield 'IconSize::LARGE' => [
96  IconSize::LARGE,
97  [48, 48],
98  ];
99  yield 'IconSize::MEGA' => [
100  IconSize::MEGA,
101  [64, 64],
102  ];
103  }
104 
105  #[DataProvider('setSizeSetsExpectedValuesDataProvider')]
106  #[Test]
107  public function ‪setSizeSetsExpectedValues(IconSize $size, array $expectedDimensions): void
108  {
109  $icon = new ‪Icon();
110  $icon->setSize($size);
111 
112  [$width, $height] = $expectedDimensions;
113 
114  self::assertSame($width, $icon->getDimension()->getWidth());
115  self::assertSame($height, $icon->getDimension()->getHeight());
116  }
117 }
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconTest\$subject
‪Icon $subject
Definition: IconTest.php:34
‪TYPO3\CMS\Core\Imaging\Icon
Definition: Icon.php:27
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconTest\getSizeIdentifierReturnsCorrectIdentifier
‪getSizeIdentifierReturnsCorrectIdentifier()
Definition: IconTest.php:66
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconTest\setUp
‪setUp()
Definition: IconTest.php:38
‪TYPO3\CMS\Core\Imaging\IconFactory
Definition: IconFactory.php:34
‪TYPO3\CMS\Core\Cache\Frontend\NullFrontend
Definition: NullFrontend.php:30
‪TYPO3\CMS\Core\Tests\Unit\Imaging
Definition: DimensionTest.php:18
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconTest\setSizeSetsExpectedValuesDataProvider
‪static setSizeSetsExpectedValuesDataProvider()
Definition: IconTest.php:77
‪TYPO3\CMS\Core\Imaging\IconRegistry
Definition: IconRegistry.php:32
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconTest\getIdentifierReturnsCorrectIdentifier
‪getIdentifierReturnsCorrectIdentifier()
Definition: IconTest.php:54
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconTest\$overlayIdentifier
‪string $overlayIdentifier
Definition: IconTest.php:36
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconTest\getStateReturnsCorrectIdentifier
‪getStateReturnsCorrectIdentifier()
Definition: IconTest.php:72
‪TYPO3\CMS\Core\EventDispatcher\NoopEventDispatcher
Definition: NoopEventDispatcher.php:29
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconTest
Definition: IconTest.php:33
‪TYPO3\CMS\Core\Imaging\IconState
‪IconState
Definition: IconState.php:24
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconTest\setSizeSetsExpectedValues
‪setSizeSetsExpectedValues(IconSize $size, array $expectedDimensions)
Definition: IconTest.php:107
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconTest\renderAndCastToStringReturnsTheSameCode
‪renderAndCastToStringReturnsTheSameCode()
Definition: IconTest.php:48
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconTest\$iconIdentifier
‪string $iconIdentifier
Definition: IconTest.php:35
‪TYPO3\CMS\Core\Tests\Unit\Imaging\IconTest\getOverlayIdentifierReturnsCorrectIdentifier
‪getOverlayIdentifierReturnsCorrectIdentifier()
Definition: IconTest.php:60
‪TYPO3\CMS\Core\Imaging\STATE_DISABLED
‪@ STATE_DISABLED
Definition: IconState.php:26