‪TYPO3CMS  ‪main
StandardPreviewRendererResolverTest.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 
28 final class ‪StandardPreviewRendererResolverTest extends UnitTestCase
29 {
31 
32  protected function ‪setUp(): void
33  {
34  parent::setUp();
35 
36  $this->subject = new ‪StandardPreviewRendererResolver();
37  ‪$GLOBALS['TCA']['tt_content'] = [
38  'ctrl' => [
39  'type' => 'CType',
40  'previewRenderer' => StandardContentPreviewRenderer::class,
41  ],
42  'types' => [
43  'list' => [
44  'subtype_value_field' => 'list_type',
45  ],
46  ],
47  ];
48  }
49 
50  protected function ‪tearDown(): void
51  {
52  GeneralUtility::purgeInstances();
53  parent::tearDown();
54  }
55 
56  #[Test]
58  {
59  $table = 'tt_content';
60  $row = [
61  'CType' => 'text',
62  ];
63 
64  self::assertEquals(
65  StandardContentPreviewRenderer::class,
66  get_class($this->subject->resolveRendererFor($table, $row, 0))
67  );
68  }
69 
70  #[Test]
72  {
73  $customPreviewRenderer = $this->getMockBuilder(PreviewRendererInterface::class)->getMock();
74 
75  $table = 'tt_content';
76  $row = [
77  'CType' => 'list',
78  'list_type' => 'custom',
79  ];
80  ‪$GLOBALS['TCA'][$table]['types']['list']['previewRenderer']['custom'] = get_class($customPreviewRenderer);
81 
82  self::assertEquals(
83  get_class($customPreviewRenderer),
84  get_class($this->subject->resolveRendererFor($table, $row, 0))
85  );
86  }
87 
88  #[Test]
90  {
91  $customPreviewRenderer = $this->getMockBuilder(PreviewRendererInterface::class)->getMock();
92 
93  $table = 'tt_content';
94  $row = [
95  'CType' => 'list',
96  'list_type' => 'default',
97  ];
98  ‪$GLOBALS['TCA'][$table]['types']['list']['previewRenderer']['custom'] = get_class($customPreviewRenderer);
99 
100  self::assertEquals(
101  StandardContentPreviewRenderer::class,
102  get_class($this->subject->resolveRendererFor($table, $row, 0))
103  );
104  }
105 
106  #[Test]
108  {
109  $customPreviewRenderer = $this->getMockBuilder(PreviewRendererInterface::class)->getMock();
110 
111  $table = 'tt_content';
112  $row = [
113  'CType' => 'list',
114  'list_type' => 'default',
115  ];
116  ‪$GLOBALS['TCA'][$table]['types']['list']['previewRenderer'] = get_class($customPreviewRenderer);
117 
118  self::assertEquals(
119  get_class($customPreviewRenderer),
120  get_class($this->subject->resolveRendererFor($table, $row, 0))
121  );
122  }
123 
124  #[Test]
126  {
127  ‪$GLOBALS['TCA']['pages']['ctrl'] = [];
128 
129  $table = 'pages';
130  $row = [
132  ];
133 
134  $this->expectException(\RuntimeException::class);
135  $this->expectExceptionCode(1477520356);
136 
137  $this->subject->resolveRendererFor($table, $row, 0);
138  }
139 }
‪TYPO3\CMS\Backend\Tests\Unit\Preview\StandardPreviewRendererResolverTest\setUp
‪setUp()
Definition: StandardPreviewRendererResolverTest.php:32
‪TYPO3\CMS\Backend\Tests\Unit\Preview\StandardPreviewRendererResolverTest\resolveCustomContentPreviewRenderer
‪resolveCustomContentPreviewRenderer()
Definition: StandardPreviewRendererResolverTest.php:71
‪TYPO3\CMS\Backend\Preview\StandardContentPreviewRenderer
Definition: StandardContentPreviewRenderer.php:49
‪TYPO3\CMS\Backend\Preview\StandardPreviewRendererResolver
Definition: StandardPreviewRendererResolver.php:32
‪TYPO3\CMS\Backend\Preview\PreviewRendererInterface
Definition: PreviewRendererInterface.php:40
‪TYPO3\CMS\Core\Domain\Repository\PageRepository\DOKTYPE_DEFAULT
‪const DOKTYPE_DEFAULT
Definition: PageRepository.php:98
‪TYPO3\CMS\Backend\Tests\Unit\Preview\StandardPreviewRendererResolverTest\resolveStandardContentPreviewRendererWithCustomPreviewRendererDefined
‪resolveStandardContentPreviewRendererWithCustomPreviewRendererDefined()
Definition: StandardPreviewRendererResolverTest.php:89
‪TYPO3\CMS\Backend\Tests\Unit\Preview\StandardPreviewRendererResolverTest\resolveStandardContentPreviewRenderer
‪resolveStandardContentPreviewRenderer()
Definition: StandardPreviewRendererResolverTest.php:57
‪TYPO3\CMS\Backend\Tests\Unit\Preview\StandardPreviewRendererResolverTest
Definition: StandardPreviewRendererResolverTest.php:29
‪TYPO3\CMS\Backend\Tests\Unit\Preview\StandardPreviewRendererResolverTest\$subject
‪StandardPreviewRendererResolver $subject
Definition: StandardPreviewRendererResolverTest.php:30
‪TYPO3\CMS\Backend\Tests\Unit\Preview\StandardPreviewRendererResolverTest\getExceptionWithNoPreviewRendererDefined
‪getExceptionWithNoPreviewRendererDefined()
Definition: StandardPreviewRendererResolverTest.php:125
‪TYPO3\CMS\Backend\Tests\Unit\Preview
Definition: StandardPreviewRendererResolverTest.php:18
‪TYPO3\CMS\Backend\Tests\Unit\Preview\StandardPreviewRendererResolverTest\tearDown
‪tearDown()
Definition: StandardPreviewRendererResolverTest.php:50
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Backend\Tests\Unit\Preview\StandardPreviewRendererResolverTest\resolveStandardContentPreviewRendererWithGeneralPreviewRendererDefinedForAllSubTypes
‪resolveStandardContentPreviewRendererWithGeneralPreviewRendererDefinedForAllSubTypes()
Definition: StandardPreviewRendererResolverTest.php:107
‪TYPO3\CMS\Core\Domain\Repository\PageRepository
Definition: PageRepository.php:69
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:52