‪TYPO3CMS  ‪main
ImageContentObjectTest.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 PHPUnit\Framework\MockObject\MockObject;
23 use Psr\EventDispatcher\EventDispatcherInterface;
24 use Symfony\Component\DependencyInjection\Container;
30 use TYPO3\CMS\Core\Imaging\ImageResource;
43 use TYPO3\TestingFramework\Core\AccessibleObjectInterface;
44 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
45 
46 final class ‪ImageContentObjectTest extends UnitTestCase
47 {
48  protected bool ‪$resetSingletonInstances = true;
49 
50  protected ‪ImageContentObject&MockObject&AccessibleObjectInterface ‪$subject;
51 
52  protected function ‪setUp(): void
53  {
54  parent::setUp();
55  $tsfe = $this->getMockBuilder(TypoScriptFrontendController::class)->disableOriginalConstructor()->getMock();
56  ‪$GLOBALS['TSFE'] = $tsfe;
57  $contentObjectRenderer = new ‪ContentObjectRenderer($tsfe);
58 
59  $container = new Container();
60  $container->set(EventDispatcherInterface::class, new ‪NoopEventDispatcher());
61  GeneralUtility::setContainer($container);
62  $this->subject = $this->getAccessibleMock(ImageContentObject::class, null, [
64  new ‪NullFrontend('hash'),
65  new ‪NullFrontend('runtime'),
66  ),
67  ]);
68  $this->subject->setRequest(new ‪ServerRequest());
69  $this->subject->setContentObjectRenderer($contentObjectRenderer);
70  $pageRenderer = $this->getMockBuilder(PageRenderer::class)->disableOriginalConstructor()->onlyMethods([])->getMock();
71  $this->subject->_set('pageRenderer', $pageRenderer);
72  }
73 
75  {
76  return [
77  [null, null],
78  ['', null],
79  ['', []],
80  ['fooo', ['foo' => 'bar']],
81  ];
82  }
83 
87  #[DataProvider('getImageTagTemplateFallsBackToDefaultTemplateIfNoTemplateIsFoundDataProvider')]
88  #[Test]
89  public function ‪getImageTagTemplateFallsBackToDefaultTemplateIfNoTemplateIsFound(?string $key, ?array $configuration): void
90  {
91  $defaultImgTagTemplate = '<img src="###SRC###" width="###WIDTH###" height="###HEIGHT###" ###PARAMS### ###ALTPARAMS### ###SELFCLOSINGTAGSLASH###>';
92  $result = $this->subject->_call('getImageTagTemplate', $key, $configuration);
93  self::assertEquals($result, $defaultImgTagTemplate);
94  }
95 
97  {
98  return [
99  [
100  'foo',
101  [
102  'layout.' => [
103  'foo.' => [
104  'element' => '<img src="###SRC###" srcset="###SOURCES###" ###PARAMS### ###ALTPARAMS### ###FOOBAR######SELFCLOSINGTAGSLASH###>',
105  ],
106  ],
107  ],
108  '<img src="###SRC###" srcset="###SOURCES###" ###PARAMS### ###ALTPARAMS### ###FOOBAR######SELFCLOSINGTAGSLASH###>',
109  ],
110 
111  ];
112  }
113 
117  #[DataProvider('getImageTagTemplateReturnTemplateElementIdentifiedByKeyDataProvider')]
118  #[Test]
119  public function ‪getImageTagTemplateReturnTemplateElementIdentifiedByKey(string $key, array $configuration, string $expectation): void
120  {
121  $result = $this->subject->_call('getImageTagTemplate', $key, $configuration);
122  self::assertEquals($result, $expectation);
123  }
124 
126  {
127  return [
128  ['foo', [], null],
129  ['foo', ['sourceCollection.' => 1], 'bar'],
130  ];
131  }
132 
136  #[DataProvider('getImageSourceCollectionReturnsEmptyStringIfNoSourcesAreDefinedDataProvider')]
137  #[Test]
139  ?string $layoutKey,
140  ?array $configuration,
141  ?string $file
142  ): void {
143  $result = $this->subject->_call('getImageSourceCollection', $layoutKey, $configuration, $file);
144  self::assertSame($result, '');
145  }
146 
150  #[Test]
152  {
153  $cObj = $this->getMockBuilder(ContentObjectRenderer::class)
154  ->onlyMethods(['stdWrap', 'getImgResource'])
155  ->getMock();
156 
157  $cObj->start([], 'tt_content');
158 
159  $layoutKey = 'test';
160 
161  $configuration = [
162  'layoutKey' => 'test',
163  'layout.' => [
164  'test.' => [
165  'element' => '<img ###SRC### ###SRCCOLLECTION### ###SELFCLOSINGTAGSLASH###>',
166  'source' => '---###SRC###---',
167  ],
168  ],
169  'sourceCollection.' => [
170  '1.' => [
171  'width' => '200',
172  ],
173  ],
174  ];
175 
176  $file = 'testImageName';
177 
178  // Avoid calling of stdWrap
179  $cObj
180  ->method('stdWrap')
181  ->willReturnArgument(0);
182 
183  // Avoid calling of imgResource
184  $cObj
185  ->expects(self::once())
186  ->method('getImgResource')
187  ->with(self::equalTo('testImageName'))
188  ->willReturn(new ImageResource(100, 100, '', 'bar', 'bar'));
189 
190  $this->subject->setContentObjectRenderer($cObj);
191  $result = $this->subject->_call('getImageSourceCollection', $layoutKey, $configuration, $file);
192 
193  self::assertEquals('---bar---', $result);
194  }
195 
203  {
204  $sourceCollectionArray = [
205  'small.' => [
206  'width' => 200,
207  'srcsetCandidate' => '600w',
208  'mediaQuery' => '(max-device-width: 600px)',
209  'dataKey' => 'small',
210  ],
211  'smallRetina.' => [
212  'if.directReturn' => 0,
213  'width' => 200,
214  'pixelDensity' => '2',
215  'srcsetCandidate' => '600w 2x',
216  'mediaQuery' => '(max-device-width: 600px) AND (min-resolution: 192dpi)',
217  'dataKey' => 'smallRetina',
218  ],
219  ];
220  return [
221  [
222  'default',
223  [
224  'layoutKey' => 'default',
225  'layout.' => [
226  'default.' => [
227  'element' => '<img src="###SRC###" width="###WIDTH###" height="###HEIGHT###" ###PARAMS### ###ALTPARAMS### ##SELFCLOSINGTAGSLASH###>',
228  'source' => '',
229  ],
230  ],
231  'sourceCollection.' => $sourceCollectionArray,
232  ],
233  ],
234  ];
235  }
236 
240  #[DataProvider('getImageSourceCollectionRendersDefinedLayoutKeyDataDefaultProvider')]
241  #[Test]
242  public function ‪getImageSourceCollectionRendersDefinedLayoutKeyDefault(string $layoutKey, array $configuration): void
243  {
244  $cObj = $this->getMockBuilder(ContentObjectRenderer::class)
245  ->onlyMethods(['stdWrap', 'getImgResource'])
246  ->getMock();
247 
248  $cObj->start([], 'tt_content');
249 
250  $file = 'testImageName';
251 
252  // Avoid calling of stdWrap
253  $cObj
254  ->method('stdWrap')
255  ->willReturnArgument(0);
256 
257  $this->subject->setContentObjectRenderer($cObj);
258  $result = $this->subject->_call('getImageSourceCollection', $layoutKey, $configuration, $file);
259 
260  self::assertEmpty($result);
261  }
262 
270  {
271  $sourceCollectionArray = [
272  'small.' => [
273  'width' => 200,
274  'srcsetCandidate' => '600w',
275  'mediaQuery' => '(max-device-width: 600px)',
276  'dataKey' => 'small',
277  ],
278  'smallRetina.' => [
279  'if.directReturn' => 1,
280  'width' => 200,
281  'pixelDensity' => '2',
282  'srcsetCandidate' => '600w 2x',
283  'mediaQuery' => '(max-device-width: 600px) AND (min-resolution: 192dpi)',
284  'dataKey' => 'smallRetina',
285  ],
286  ];
287  return [
288  [
289  'srcset',
290  [
291  'layoutKey' => 'srcset',
292  'layout.' => [
293  'srcset.' => [
294  'element' => '<img src="###SRC###" srcset="###SOURCECOLLECTION###" ###PARAMS### ###ALTPARAMS######SELFCLOSINGTAGSLASH###>',
295  'source' => '|*|###SRC### ###SRCSETCANDIDATE###,|*|###SRC### ###SRCSETCANDIDATE###',
296  ],
297  ],
298  'sourceCollection.' => $sourceCollectionArray,
299  ],
300  'xhtml_strict',
301  'bar-file.jpg 600w,bar-file.jpg 600w 2x',
302  ],
303  [
304  'picture',
305  [
306  'layoutKey' => 'picture',
307  'layout.' => [
308  'picture.' => [
309  'element' => '<picture>###SOURCECOLLECTION###<img src="###SRC###" ###PARAMS### ###ALTPARAMS######SELFCLOSINGTAGSLASH###></picture>',
310  'source' => '<source src="###SRC###" media="###MEDIAQUERY###"###SELFCLOSINGTAGSLASH###>',
311  ],
312  ],
313  'sourceCollection.' => $sourceCollectionArray,
314  ],
315  'xhtml_strict',
316  '<source src="bar-file.jpg" media="(max-device-width: 600px)" /><source src="bar-file.jpg" media="(max-device-width: 600px) AND (min-resolution: 192dpi)" />',
317  ],
318  [
319  'picture',
320  [
321  'layoutKey' => 'picture',
322  'layout.' => [
323  'picture.' => [
324  'element' => '<picture>###SOURCECOLLECTION###<img src="###SRC###" ###PARAMS### ###ALTPARAMS######SELFCLOSINGTAGSLASH###></picture>',
325  'source' => '<source src="###SRC###" media="###MEDIAQUERY###"###SELFCLOSINGTAGSLASH###>',
326  ],
327  ],
328  'sourceCollection.' => $sourceCollectionArray,
329  ],
330  '',
331  '<source src="bar-file.jpg" media="(max-device-width: 600px)"><source src="bar-file.jpg" media="(max-device-width: 600px) AND (min-resolution: 192dpi)">',
332  ],
333  [
334  'data',
335  [
336  'layoutKey' => 'data',
337  'layout.' => [
338  'data.' => [
339  'element' => '<img src="###SRC###" ###SOURCECOLLECTION### ###PARAMS### ###ALTPARAMS######SELFCLOSINGTAGSLASH###>',
340  'source' => 'data-###DATAKEY###="###SRC###"',
341  ],
342  ],
343  'sourceCollection.' => $sourceCollectionArray,
344  ],
345  'xhtml_strict',
346  'data-small="bar-file.jpg"data-smallRetina="bar-file.jpg"',
347  ],
348  ];
349  }
350 
354  #[DataProvider('getImageSourceCollectionRendersDefinedLayoutKeyDataDataProvider')]
355  #[Test]
357  string $layoutKey,
358  array $configuration,
359  string $doctype,
360  string $expectedHtml
361  ): void {
362  $cObj = $this->getMockBuilder(ContentObjectRenderer::class)
363  ->onlyMethods(['stdWrap', 'getImgResource'])
364  ->getMock();
365 
366  $cObj->start([], 'tt_content');
367 
368  $file = 'testImageName';
369  $pageRenderer = $this->getMockBuilder(PageRenderer::class)->disableOriginalConstructor()->onlyMethods([])->getMock();
370  $pageRenderer->setLanguage(new ‪Locale());
371  $pageRenderer->setDocType(DocType::createFromConfigurationKey($doctype));
372  GeneralUtility::setSingletonInstance(PageRenderer::class, $pageRenderer);
373 
374  // Avoid calling of stdWrap
375  $cObj
376  ->method('stdWrap')
377  ->willReturnArgument(0);
378 
379  // Avoid calling of imgResource
380  $cObj
381  ->expects(self::exactly(2))
382  ->method('getImgResource')
383  ->with(self::equalTo('testImageName'))
384  ->willReturn(new ImageResource(100, 100, '', 'bar-file.jpg', 'bar-file.jpg'));
385 
386  ‪$subject = $this->getAccessibleMock(ImageContentObject::class, null, [
388  new ‪NullFrontend('hash'),
389  new ‪NullFrontend('runtime'),
390  ),
391  ]);
392  ‪$subject->_set('pageRenderer', $pageRenderer);
395  $result = ‪$subject->_call('getImageSourceCollection', $layoutKey, $configuration, $file);
396 
397  self::assertEquals($expectedHtml, $result);
398  }
399 
403  #[Test]
405  {
406  $cObj = $this->getAccessibleMock(
407  ContentObjectRenderer::class,
408  ['getResourceFactory', 'stdWrap', 'getImgResource']
409  );
410  $cObj->start([], 'tt_content');
411 
412  // Avoid calling stdwrap and getImgResource
413  $cObj
414  ->method('stdWrap')
415  ->willReturnArgument(0);
416 
417  $cObj
418  ->method('getImgResource')
419  ->willReturn(new ImageResource(100, 100, '', 'bar-file.jpg', 'bar-file.jpg'));
420 
421  $resourceFactory = $this->createMock(ResourceFactory::class);
422  $cObj->method('getResourceFactory')->willReturn($resourceFactory);
423 
424  $modifyImageSourceCollectionEvent = null;
425 
427  $container = GeneralUtility::getContainer();
428 
429  $container->set(
430  'modify-image-source-collection-listener',
431  static function (‪ModifyImageSourceCollectionEvent $event) use (&$modifyImageSourceCollectionEvent) {
432  $modifyImageSourceCollectionEvent = $event;
433  $event->‪setSourceCollection('---modified-source-collection---');
434  }
435  );
436 
437  $listenerProdiver = GeneralUtility::makeInstance(ListenerProvider::class, $container);
438  $listenerProdiver->addListener(ModifyImageSourceCollectionEvent::class, 'modify-image-source-collection-listener');
439  $container->set(ListenerProvider::class, $listenerProdiver);
440  $container->set(EventDispatcherInterface::class, new ‪EventDispatcher($listenerProdiver));
441 
442  $configuration = [
443  'layoutKey' => 'data',
444  'layout.' => [
445  'data.' => [
446  'element' => '<img src="###SRC###" ###SOURCECOLLECTION### ###PARAMS### ###ALTPARAMS######SELFCLOSINGTAGSLASH###>',
447  'source' => 'data-###DATAKEY###="###SRC###"',
448  ],
449  ],
450  'sourceCollection.' => [
451  'small.' => [
452  'width' => 200,
453  'srcsetCandidate' => '600w',
454  'mediaQuery' => '(max-device-width: 600px)',
455  'dataKey' => 'small',
456  ],
457  ],
458  ];
459 
460  $this->subject->setContentObjectRenderer($cObj);
461  $result = $this->subject->_call('getImageSourceCollection', 'data', $configuration, ‪StringUtility::getUniqueId('testImage-'));
462 
463  self::assertEquals('---modified-source-collection---', $result);
464 
465  self::assertInstanceOf(ModifyImageSourceCollectionEvent::class, $modifyImageSourceCollectionEvent);
466  self::assertEquals('---modified-source-collection---', $modifyImageSourceCollectionEvent->getSourceCollection());
467  self::assertEquals('', $modifyImageSourceCollectionEvent->getFullSourceCollection());
468  self::assertEquals('(max-device-width: 600px)', $modifyImageSourceCollectionEvent->getSourceConfiguration()['mediaQuery']);
469  self::assertStringStartsWith('testImage-', $modifyImageSourceCollectionEvent->getSourceRenderConfiguration()['file']);
470  self::assertEquals($cObj, $modifyImageSourceCollectionEvent->getContentObjectRenderer());
471  }
472 
479  array $sourceRenderConfiguration,
480  array $sourceConfiguration
481  ): string {
482  self::assertIsArray($sourceRenderConfiguration);
483  self::assertIsArray($sourceConfiguration);
484  return 'isGetOneSourceCollectionCalledCallback';
485  }
486 
492  public static function ‪linkWrapDataProvider(): array
493  {
494  $content = ‪StringUtility::getUniqueId();
495  return [
496  'Handles a tag as wrap.' => [
497  '<tag>' . $content . '</tag>',
498  $content,
499  '<tag>|</tag>',
500  ],
501  'Handles simple text as wrap.' => [
502  'alpha' . $content . 'omega',
503  $content,
504  'alpha|omega',
505  ],
506  'Trims whitespace around tags.' => [
507  '<tag>' . $content . '</tag>',
508  $content,
509  "\t <tag>\t |\t </tag>\t ",
510  ],
511  'A wrap without pipe is placed before the content.' => [
512  '<tag>' . $content,
513  $content,
514  '<tag>',
515  ],
516  'For an empty string as wrap the content is returned as is.' => [
517  $content,
518  $content,
519  '',
520  ],
521  'For a valid rootline level the uid will be inserted.' => [
522  '<a href="?id=55">' . $content . '</a>',
523  $content,
524  '<a href="?id={3}"> | </a>',
525  ],
526  'For an invalid rootline level there is no replacement.' => [
527  '<a href="?id={4}">' . $content . '</a>',
528  $content,
529  '<a href="?id={4}"> | </a>',
530  ],
531  ];
532  }
533 
541  #[DataProvider('linkWrapDataProvider')]
542  #[Test]
543  public function ‪linkWrap(string $expected, string $content, $wrap): void
544  {
545  $pageInformation = new ‪PageInformation();
546  $pageInformation->setLocalRootLine([3 => ['uid' => 55]]);
547  $request = (new ‪ServerRequest())->withAttribute('frontend.page.information', $pageInformation);
548  $this->subject->setRequest($request);
549  $actual = $this->subject->_call('linkWrap', $content, $wrap);
550  self::assertEquals($expected, $actual);
551  }
552 }
‪TYPO3\CMS\Frontend\Tests\Unit\ContentObject\ImageContentObjectTest\$subject
‪ImageContentObject &MockObject &AccessibleObjectInterface $subject
Definition: ImageContentObjectTest.php:50
‪TYPO3\CMS\Frontend\Tests\Unit\ContentObject\ImageContentObjectTest\getImageSourceCollectionReturnsEmptyStringIfNoSourcesAreDefined
‪getImageSourceCollectionReturnsEmptyStringIfNoSourcesAreDefined(?string $layoutKey, ?array $configuration, ?string $file)
Definition: ImageContentObjectTest.php:138
‪TYPO3\CMS\Frontend\ContentObject\Event\ModifyImageSourceCollectionEvent
Definition: ModifyImageSourceCollectionEvent.php:26
‪TYPO3\CMS\Frontend\ContentObject\ImageContentObject
Definition: ImageContentObject.php:31
‪TYPO3\CMS\Frontend\Tests\Unit\ContentObject\ImageContentObjectTest\getImageSourceCollectionReturnsEmptyStringIfNoSourcesAreDefinedDataProvider
‪static getImageSourceCollectionReturnsEmptyStringIfNoSourcesAreDefinedDataProvider()
Definition: ImageContentObjectTest.php:125
‪TYPO3\CMS\Frontend\Tests\Unit\ContentObject\ImageContentObjectTest\getImageTagTemplateFallsBackToDefaultTemplateIfNoTemplateIsFoundDataProvider
‪static getImageTagTemplateFallsBackToDefaultTemplateIfNoTemplateIsFoundDataProvider()
Definition: ImageContentObjectTest.php:74
‪TYPO3\CMS\Frontend\Tests\Unit\ContentObject\ImageContentObjectTest\modifyImageSourceCollectionEventIsCalled
‪modifyImageSourceCollectionEventIsCalled()
Definition: ImageContentObjectTest.php:404
‪TYPO3\CMS\Frontend\Tests\Unit\ContentObject\ImageContentObjectTest\linkWrapDataProvider
‪static array linkWrapDataProvider()
Definition: ImageContentObjectTest.php:492
‪TYPO3\CMS\Frontend\ContentObject\AbstractContentObject\setContentObjectRenderer
‪setContentObjectRenderer(ContentObjectRenderer $cObj)
Definition: AbstractContentObject.php:61
‪TYPO3\CMS\Frontend\Tests\Unit\ContentObject\ImageContentObjectTest\isGetOneSourceCollectionCalledCallback
‪isGetOneSourceCollectionCalledCallback(array $sourceRenderConfiguration, array $sourceConfiguration)
Definition: ImageContentObjectTest.php:478
‪TYPO3\CMS\Core\Cache\Frontend\NullFrontend
Definition: NullFrontend.php:30
‪TYPO3\CMS\Frontend\Tests\Unit\ContentObject\ImageContentObjectTest\$resetSingletonInstances
‪bool $resetSingletonInstances
Definition: ImageContentObjectTest.php:48
‪TYPO3\CMS\Frontend\Tests\Unit\ContentObject\ImageContentObjectTest\getImageTagTemplateReturnTemplateElementIdentifiedByKey
‪getImageTagTemplateReturnTemplateElementIdentifiedByKey(string $key, array $configuration, string $expectation)
Definition: ImageContentObjectTest.php:119
‪TYPO3\CMS\Core\EventDispatcher\EventDispatcher
Definition: EventDispatcher.php:30
‪TYPO3\CMS\Core\Page\PageRenderer
Definition: PageRenderer.php:44
‪TYPO3\CMS\Frontend\Tests\Unit\ContentObject\ImageContentObjectTest\setUp
‪setUp()
Definition: ImageContentObjectTest.php:52
‪TYPO3\CMS\Frontend\Tests\Unit\ContentObject\ImageContentObjectTest\getImageSourceCollectionRendersDefinedSources
‪getImageSourceCollectionRendersDefinedSources()
Definition: ImageContentObjectTest.php:151
‪TYPO3\CMS\Frontend\Tests\Unit\ContentObject\ImageContentObjectTest\getImageSourceCollectionRendersDefinedLayoutKeyDataDefaultProvider
‪static array getImageSourceCollectionRendersDefinedLayoutKeyDataDefaultProvider()
Definition: ImageContentObjectTest.php:202
‪TYPO3\CMS\Frontend\Tests\Unit\ContentObject\ImageContentObjectTest\getImageSourceCollectionRendersDefinedLayoutKeyDefault
‪getImageSourceCollectionRendersDefinedLayoutKeyDefault(string $layoutKey, array $configuration)
Definition: ImageContentObjectTest.php:242
‪TYPO3\CMS\Frontend\ContentObject\Event\ModifyImageSourceCollectionEvent\setSourceCollection
‪setSourceCollection(string $sourceCollection)
Definition: ModifyImageSourceCollectionEvent.php:35
‪TYPO3\CMS\Core\Resource\ResourceFactory
Definition: ResourceFactory.php:42
‪TYPO3\CMS\Frontend\Tests\Unit\ContentObject
Definition: CaseContentObjectTest.php:18
‪TYPO3\CMS\Frontend\Tests\Unit\ContentObject\ImageContentObjectTest\getImageTagTemplateFallsBackToDefaultTemplateIfNoTemplateIsFound
‪getImageTagTemplateFallsBackToDefaultTemplateIfNoTemplateIsFound(?string $key, ?array $configuration)
Definition: ImageContentObjectTest.php:89
‪TYPO3\CMS\Core\Http\ServerRequest
Definition: ServerRequest.php:39
‪TYPO3\CMS\Frontend\Tests\Unit\ContentObject\ImageContentObjectTest
Definition: ImageContentObjectTest.php:47
‪TYPO3\CMS\Frontend\Tests\Unit\ContentObject\ImageContentObjectTest\getImageSourceCollectionRendersDefinedLayoutKeyDataDataProvider
‪static array getImageSourceCollectionRendersDefinedLayoutKeyDataDataProvider()
Definition: ImageContentObjectTest.php:269
‪TYPO3\CMS\Core\EventDispatcher\NoopEventDispatcher
Definition: NoopEventDispatcher.php:29
‪TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController
Definition: TypoScriptFrontendController.php:58
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Frontend\ContentObject\AbstractContentObject\setRequest
‪setRequest(ServerRequestInterface $request)
Definition: AbstractContentObject.php:56
‪TYPO3\CMS\Frontend\Tests\Unit\ContentObject\ImageContentObjectTest\getImageTagTemplateReturnTemplateElementIdentifiedByKeyDataProvider
‪static getImageTagTemplateReturnTemplateElementIdentifiedByKeyDataProvider()
Definition: ImageContentObjectTest.php:96
‪TYPO3\CMS\Core\Localization\Locale
Definition: Locale.php:30
‪TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer
Definition: ContentObjectRenderer.php:102
‪TYPO3\CMS\Core\Type\DocType
‪DocType
Definition: DocType.php:27
‪TYPO3\CMS\Frontend\Tests\Unit\ContentObject\ImageContentObjectTest\getImageSourceCollectionRendersDefinedLayoutKeyData
‪getImageSourceCollectionRendersDefinedLayoutKeyData(string $layoutKey, array $configuration, string $doctype, string $expectedHtml)
Definition: ImageContentObjectTest.php:356
‪TYPO3\CMS\Core\Service\MarkerBasedTemplateService
Definition: MarkerBasedTemplateService.php:27
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:52
‪TYPO3\CMS\Frontend\Tests\Unit\ContentObject\ImageContentObjectTest\linkWrap
‪linkWrap(string $expected, string $content, $wrap)
Definition: ImageContentObjectTest.php:543
‪TYPO3\CMS\Core\Utility\StringUtility
Definition: StringUtility.php:24
‪TYPO3\CMS\Core\EventDispatcher\ListenerProvider
Definition: ListenerProvider.php:30
‪TYPO3\CMS\Frontend\Page\PageInformation
Definition: PageInformation.php:28
‪TYPO3\CMS\Core\Utility\StringUtility\getUniqueId
‪static getUniqueId(string $prefix='')
Definition: StringUtility.php:57