‪TYPO3CMS  11.5
HtmlViewHelperTest.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 Psr\Log\LogLevel;
26 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
27 
28 class ‪HtmlViewHelperTest extends FunctionalTestCase
29 {
33  protected ‪$initializeDatabase = false;
34 
36  'LOG' => [
37  'TYPO3' => [
38  'HtmlSanitizer' => [
39  'writerConfiguration' => [
40  LogLevel::DEBUG => [
41  DummyWriter::class => [],
42  ],
43  ],
44  ],
45  ],
46  ],
47  ];
48 
49  protected function ‪tearDown(): void
50  {
51  parent::tearDown();
53  }
54 
55  public static function ‪isSanitizedDataProvider(): array
56  {
57  // @todo splitter for functional tests cannot deal with external classes
59  }
60 
67  public function ‪isSanitizedUsingNodeInstruction(string $payload, string $expectation): void
68  {
69  $view = new ‪StandaloneView();
70  $view->setTemplateSource(sprintf('<f:sanitize.html>%s</f:sanitize.html>', $payload));
71  self::assertSame($expectation, $view->render());
72  }
73 
80  public function ‪isSanitizedUsingInlineInstruction(string $payload, string $expectation): void
81  {
82  $view = new ‪StandaloneView();
83  $view->assign('payload', $payload);
84  $view->setTemplateSource('{payload -> f:sanitize.html()}');
85  self::assertSame($expectation, $view->render());
86  }
87 
91  public function ‪incidentIsLogged(): void
92  {
93  $templatePath = __DIR__ . '/Fixtures/Template.html';
94  $view = new ‪StandaloneView();
95  $view->setTemplatePathAndFilename($templatePath);
96  $view->assign('payload', '<script>alert(1)</script>');
97  $view->render();
98 
99  $logItemDataExpectation = [
100  'behavior' => 'default',
101  'nodeType' => 1,
102  'nodeName' => 'script',
103  'initiator' => HtmlViewHelper::class,
104  ];
105  $logItem = end(‪DummyWriter::$logs);
106  self::assertInstanceOf(LogRecord::class, $logItem);
107  self::assertSame($logItemDataExpectation, $logItem->getData());
108  self::assertSame('TYPO3.HtmlSanitizer.Visitor.CommonVisitor', $logItem->getComponent());
109  }
110 }
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Sanitize\HtmlViewHelperTest\isSanitizedDataProvider
‪static isSanitizedDataProvider()
Definition: HtmlViewHelperTest.php:54
‪TYPO3\CMS\Fluid\ViewHelpers\Sanitize\HtmlViewHelper
Definition: HtmlViewHelper.php:60
‪TYPO3\CMS\Core\Tests\Functional\Html\DefaultSanitizerBuilderTest\isSanitizedDataProvider
‪static isSanitizedDataProvider()
Definition: DefaultSanitizerBuilderTest.php:58
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Sanitize\HtmlViewHelperTest\isSanitizedUsingNodeInstruction
‪isSanitizedUsingNodeInstruction(string $payload, string $expectation)
Definition: HtmlViewHelperTest.php:66
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Sanitize\HtmlViewHelperTest\tearDown
‪tearDown()
Definition: HtmlViewHelperTest.php:48
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Sanitize\HtmlViewHelperTest
Definition: HtmlViewHelperTest.php:29
‪TYPO3\CMS\Core\Log\LogRecord
Definition: LogRecord.php:22
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Sanitize\HtmlViewHelperTest\incidentIsLogged
‪incidentIsLogged()
Definition: HtmlViewHelperTest.php:90
‪TYPO3\CMS\Core\Tests\Functional\Fixtures\Log\DummyWriter\$logs
‪static array $logs
Definition: DummyWriter.php:26
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Sanitize\HtmlViewHelperTest\isSanitizedUsingInlineInstruction
‪isSanitizedUsingInlineInstruction(string $payload, string $expectation)
Definition: HtmlViewHelperTest.php:79
‪TYPO3\CMS\Core\Tests\Functional\Html\DefaultSanitizerBuilderTest
Definition: DefaultSanitizerBuilderTest.php:33
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Sanitize\HtmlViewHelperTest\$initializeDatabase
‪bool $initializeDatabase
Definition: HtmlViewHelperTest.php:32
‪TYPO3\CMS\Fluid\View\StandaloneView
Definition: StandaloneView.php:31
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Sanitize\HtmlViewHelperTest\$configurationToUseInTestInstance
‪$configurationToUseInTestInstance
Definition: HtmlViewHelperTest.php:34
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Sanitize
Definition: HtmlViewHelperTest.php:18
‪TYPO3\CMS\Core\Tests\Functional\Fixtures\Log\DummyWriter
Definition: DummyWriter.php:24