N°6405 - Fix XML displayed corrupted when using \DesignerLongTextField due to usage of \utils::EscapeHtml() without double encoding

This commit is contained in:
Molkobain
2023-06-21 11:32:52 +02:00
parent 2074a0fa0d
commit 216a1b95b1
5 changed files with 133 additions and 10 deletions

View File

@@ -841,17 +841,19 @@ class utilsTest extends ItopTestCase
*
* @dataProvider escapeHtmlProvider
*/
public function testEscapeHtml($sInput, $sExpectedEscaped)
public function testEscapeHtml($sInput, $sExpectedEscaped, $bDoubleEncode = false)
{
if (is_null($sExpectedEscaped)) {
$sExpectedEscaped = $sInput;
}
$sEscaped = utils::EscapeHtml($sInput);
$sEscaped = utils::EscapeHtml($sInput, $bDoubleEncode);
self::assertSame($sExpectedEscaped, $sEscaped);
$sEscapedDecoded = utils::EscapedHtmlDecode($sEscaped);
self::assertSame($sInput, $sEscapedDecoded);
if (false === $bDoubleEncode) {
self::assertSame($sInput, $sEscapedDecoded);
}
}
public function escapeHtmlProvider()
@@ -859,8 +861,17 @@ class utilsTest extends ItopTestCase
return [
'no escape' => ['abcdefghijklmnop', null],
'&' => ['abcdefghijklmnop&0123456789', 'abcdefghijklmnop&0123456789'],
['"double quotes"', '"double quotes"'],
["'simple quotes'", ''simple quotes''],
'double quotes' => ['"double quotes"', '"double quotes"'],
'simple quotes' => ["'simple quotes'", ''simple quotes''],
'no double encode' => [
'<root><title>Foo & Bar</title></root>',
'&lt;root&gt;&lt;title&gt;Foo &amp; Bar&lt;/title&gt;&lt;/root&gt;'
],
'double encode forced (for XML mostly)' => [
'<root><title>Foo &amp; Bar</title></root>',
'&lt;root&gt;&lt;title&gt;Foo &amp;amp; Bar&lt;/title&gt;&lt;/root&gt;',
true
],
];
}
}