‪TYPO3CMS  11.5
HtmlentitiesViewHelperTest.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 
21 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
22 
23 class ‪HtmlentitiesViewHelperTest extends FunctionalTestCase
24 {
28  protected ‪$initializeDatabase = false;
29 
33  public function ‪renderUsesValueAsSourceIfSpecified(): void
34  {
35  $view = new ‪StandaloneView();
36  $view->setTemplateSource('<f:format.htmlentities value="Some string" />');
37  self::assertEquals('Some string', $view->render());
38  }
39 
43  public function ‪renderUsesChildnodesAsSourceIfSpecified(): void
44  {
45  $view = new ‪StandaloneView();
46  $view->setTemplateSource('<f:format.htmlentities>Some string</f:format.htmlentities>');
47  self::assertEquals('Some string', $view->render());
48  }
49 
54  {
55  $source = 'This is a sample text without special characters.';
56  $view = new ‪StandaloneView();
57  $view->setTemplateSource('<f:format.htmlentities value="' . $source . '" />');
58  self::assertEquals($source, $view->render());
59  }
60 
64  public function ‪renderEncodesSimpleString(): void
65  {
66  $source = 'Some special characters: &©"\'';
67  $expectedResult = 'Some special characters: &amp;&copy;&quot;&#039;';
68  $view = new ‪StandaloneView();
69  $view->setTemplateSource('<f:format.htmlentities>' . $source . '</f:format.htmlentities>');
70  self::assertEquals($expectedResult, $view->render());
71  }
72 
76  public function ‪renderRespectsKeepQuoteArgument(): void
77  {
78  $source = 'Some special characters: &©"\'';
79  $expectedResult = 'Some special characters: &amp;&copy;"\'';
80  $view = new ‪StandaloneView();
81  $view->setTemplateSource('<f:format.htmlentities keepQuotes="true">' . $source . '</f:format.htmlentities>');
82  self::assertEquals($expectedResult, $view->render());
83  }
84 
88  public function ‪renderRespectsEncodingArgument(): void
89  {
90  $source = mb_convert_encoding('Some special characters: &©"\'', 'ISO-8859-1', 'UTF-8');
91  $expectedResult = 'Some special characters: &amp;&copy;&quot;&#039;';
92  $view = new ‪StandaloneView();
93  $view->setTemplateSource('<f:format.htmlentities encoding="ISO-8859-1">' . $source . '</f:format.htmlentities>');
94  self::assertEquals($expectedResult, $view->render());
95  }
96 
101  {
102  $source = 'already &quot;encoded&quot;';
103  $expectedResult = 'already &amp;quot;encoded&amp;quot;';
104  $view = new ‪StandaloneView();
105  $view->setTemplateSource('<f:format.htmlentities>' . $source . '</f:format.htmlentities>');
106  self::assertEquals($expectedResult, $view->render());
107  }
108 
113  {
114  $source = 'already &quot;encoded&quot;';
115  $expectedResult = 'already &quot;encoded&quot;';
116  $view = new ‪StandaloneView();
117  $view->setTemplateSource('<f:format.htmlentities doubleEncode="false">' . $source . '</f:format.htmlentities>');
118  self::assertEquals($expectedResult, $view->render());
119  }
120 
124  public function ‪renderEscapesObjectIfPossible(): void
125  {
126  $toStringClass = new class () {
127  public function __toString(): string
128  {
129  return '<script>alert(\'"&xss"\')</script>';
130  }
131  };
132  $view = new ‪StandaloneView();
133  $view->assign('source', $toStringClass);
134  $view->setTemplateSource('<f:format.htmlentities value="{source}" />');
135  self::assertEquals('&lt;script&gt;alert(&#039;&quot;&amp;xss&quot;&#039;)&lt;/script&gt;', $view->render());
136  }
137 }
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Format\HtmlentitiesViewHelperTest\renderRespectsEncodingArgument
‪renderRespectsEncodingArgument()
Definition: HtmlentitiesViewHelperTest.php:87
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Format\HtmlentitiesViewHelperTest\renderConvertsAlreadyConvertedEntitiesByDefault
‪renderConvertsAlreadyConvertedEntitiesByDefault()
Definition: HtmlentitiesViewHelperTest.php:99
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Format\HtmlentitiesViewHelperTest\renderUsesChildnodesAsSourceIfSpecified
‪renderUsesChildnodesAsSourceIfSpecified()
Definition: HtmlentitiesViewHelperTest.php:42
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Format\HtmlentitiesViewHelperTest\renderDoesNotModifyValueIfItDoesNotContainSpecialCharacters
‪renderDoesNotModifyValueIfItDoesNotContainSpecialCharacters()
Definition: HtmlentitiesViewHelperTest.php:52
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Format\HtmlentitiesViewHelperTest\$initializeDatabase
‪bool $initializeDatabase
Definition: HtmlentitiesViewHelperTest.php:27
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Format
Definition: BytesViewHelperTest.php:18
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Format\HtmlentitiesViewHelperTest\renderEncodesSimpleString
‪renderEncodesSimpleString()
Definition: HtmlentitiesViewHelperTest.php:63
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Format\HtmlentitiesViewHelperTest
Definition: HtmlentitiesViewHelperTest.php:24
‪TYPO3\CMS\Fluid\View\StandaloneView
Definition: StandaloneView.php:31
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Format\HtmlentitiesViewHelperTest\renderRespectsKeepQuoteArgument
‪renderRespectsKeepQuoteArgument()
Definition: HtmlentitiesViewHelperTest.php:75
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Format\HtmlentitiesViewHelperTest\renderUsesValueAsSourceIfSpecified
‪renderUsesValueAsSourceIfSpecified()
Definition: HtmlentitiesViewHelperTest.php:32
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Format\HtmlentitiesViewHelperTest\renderDoesNotConvertAlreadyConvertedEntitiesIfDoubleQuoteIsFalse
‪renderDoesNotConvertAlreadyConvertedEntitiesIfDoubleQuoteIsFalse()
Definition: HtmlentitiesViewHelperTest.php:111
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\Format\HtmlentitiesViewHelperTest\renderEscapesObjectIfPossible
‪renderEscapesObjectIfPossible()
Definition: HtmlentitiesViewHelperTest.php:123