From: Alain Peyrat Date: Wed, 9 Nov 2011 10:02:39 +0000 (+0000) Subject: Fix broken util_strip_accents() and add unit tests X-Git-Tag: v5_2_rc1~506 X-Git-Url: https://scm.fusionforge.org/anonscm/gitweb?p=fusionforge%2Ffusionforge.git;a=commitdiff_plain;h=b16a7524ddbf6c3dcd01935a012ea21a50caef95 Fix broken util_strip_accents() and add unit tests --- diff --git a/src/common/include/utils.php b/src/common/include/utils.php index 5ae234b063..d9edc7b39c 100644 --- a/src/common/include/utils.php +++ b/src/common/include/utils.php @@ -1084,7 +1084,11 @@ function util_secure_filename($file) { * @return string */ function util_strip_accents($text) { - return iconv ('UTF-8', 'US-ASCII//TRANSLIT', $text) ; + $find = utf8_decode($text); + $find = strtr($find, + utf8_decode('àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ'), + 'aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY'); + return utf8_encode($find); } /** diff --git a/tests/unit/utils/UtilsTest.php b/tests/unit/utils/UtilsTest.php index 3aa063483b..3d99e90f2b 100644 --- a/tests/unit/utils/UtilsTest.php +++ b/tests/unit/utils/UtilsTest.php @@ -88,4 +88,16 @@ class Utils_Tests extends PHPUnit_Framework_TestCase $this->assertEquals('1 TiB', human_readable_bytes(1024*1024*1024*1024)); $this->assertEquals('1 TB', human_readable_bytes(1000000000000, true)); } + + public function testGetFilteredStringFromRequest() + { + $_REQUEST=array('arg' => 'good'); + $this->assertEquals(getFilteredStringFromRequest('arg', '/^[a-z]+$/', 'default'), 'good'); + + $_REQUEST=array('arg' => 'BaD'); + $this->assertEquals(getFilteredStringFromRequest('arg', '/^[a-z]+$/', 'default'), 'default'); + + $_REQUEST=array('no_arg' => 'BaD'); + $this->assertEquals(getFilteredStringFromRequest('arg', '/^[a-z]+$/', 'default'), 'default'); + } }