From b615b52f473beb7b434eb74cb6cff3cb371c448e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur <eldy@destailleur.fr> Date: Tue, 26 Jul 2016 16:11:38 +0200 Subject: [PATCH] FIX html detection fails if only u tag is present --- htdocs/core/lib/functions.lib.php | 2 +- test/phpunit/FunctionsLibTest.php | 27 +++++++++++++++------------ 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 2ae90c1f0b5..54658f531c7 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -4548,7 +4548,7 @@ function dol_textishtml($msg,$option=0) { if (preg_match('/<html/i',$msg)) return true; elseif (preg_match('/<body/i',$msg)) return true; - elseif (preg_match('/<(b|em|i)>/i',$msg)) return true; + elseif (preg_match('/<(b|em|i|u)>/i',$msg)) return true; elseif (preg_match('/<(br|div|font|li|p|span|strong|table)>/i',$msg)) return true; elseif (preg_match('/<(br|div|font|li|p|span|strong|table)\s+[^<>\/]*>/i',$msg)) return true; elseif (preg_match('/<(br|div|font|li|p|span|strong|table)\s+[^<>\/]*\/>/i',$msg)) return true; diff --git a/test/phpunit/FunctionsLibTest.php b/test/phpunit/FunctionsLibTest.php index 79bcc931c84..4c76ba47770 100644 --- a/test/phpunit/FunctionsLibTest.php +++ b/test/phpunit/FunctionsLibTest.php @@ -206,40 +206,43 @@ class FunctionsLibTest extends PHPUnit_Framework_TestCase // True $input='<html>xxx</html>'; $after=dol_textishtml($input); - $this->assertTrue($after); + $this->assertTrue($after, 'Test with html tag'); $input='<body>xxx</body>'; $after=dol_textishtml($input); - $this->assertTrue($after); + $this->assertTrue($after, 'Test with body tag'); $input='xxx <b>yyy</b> zzz'; $after=dol_textishtml($input); - $this->assertTrue($after); + $this->assertTrue($after, 'Test with b tag'); + $input='xxx <u>yyy</u> zzz'; + $after=dol_textishtml($input); + $this->assertTrue($after, 'Test with u tag'); $input='text with <div>some div</div>'; $after=dol_textishtml($input); - $this->assertTrue($after); + $this->assertTrue($after, 'Test with div tag'); $input='text with HTML entities'; $after=dol_textishtml($input); - $this->assertTrue($after); + $this->assertTrue($after, 'Test with entities tag'); $input='xxx<br>'; $after=dol_textishtml($input); - $this->assertTrue($after); + $this->assertTrue($after, 'Test with entities br'); $input='xxx<br >'; $after=dol_textishtml($input); - $this->assertTrue($after); + $this->assertTrue($after, 'Test with entities br'); $input='xxx<br style="eee">'; $after=dol_textishtml($input); - $this->assertTrue($after); + $this->assertTrue($after, 'Test with entities br and attributes'); $input='xxx<br style="eee" >'; $after=dol_textishtml($input); - $this->assertTrue($after); + $this->assertTrue($after, 'Test with entities br and attributes bis'); $input='<h2>abc</h2>'; $after=dol_textishtml($input); - $this->assertTrue($after); + $this->assertTrue($after, 'Test with entities h2'); $input='<img id="abc" src="https://xxx.com/aaa/image.png" />'; $after=dol_textishtml($input); - $this->assertTrue($after,'Failure on test of img tag'); + $this->assertTrue($after, 'Test with img tag'); $input='<a class="azerty" href="https://xxx.com/aaa/image.png" />'; $after=dol_textishtml($input); - $this->assertTrue($after,'Failure on test of a tag'); + $this->assertTrue($after, 'Test with a tag'); // False $input='xxx < br>'; -- GitLab