From 3ef4c4fbe7da4b8feb9566d3455badffec55e151 Mon Sep 17 00:00:00 2001 From: marc tobias Date: Tue, 6 Mar 2018 14:51:48 +0100 Subject: [PATCH] ParameterParser: getStringList removes empty strings --- lib/ParameterParser.php | 3 ++- test/php/Nominatim/ParameterParserTest.php | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/ParameterParser.php b/lib/ParameterParser.php index feddc3aa..c9a97c25 100644 --- a/lib/ParameterParser.php +++ b/lib/ParameterParser.php @@ -74,7 +74,8 @@ class ParameterParser $sValue = $this->getString($sName); if ($sValue) { - return explode(',', $sValue); + // removes all NULL, FALSE and Empty Strings but leaves 0 (zero) values + return array_values(array_filter(explode(',', $sValue), 'strlen')); } return $aDefault; diff --git a/test/php/Nominatim/ParameterParserTest.php b/test/php/Nominatim/ParameterParserTest.php index 78739534..105f9d34 100644 --- a/test/php/Nominatim/ParameterParserTest.php +++ b/test/php/Nominatim/ParameterParserTest.php @@ -115,7 +115,7 @@ class ParameterParserTest extends \PHPUnit_Framework_TestCase $this->assertSame('default', $oParams->getString('non-exists', 'default')); $this->assertSame('abc', $oParams->getString('str1')); $this->assertSame(false, $oParams->getStringList('str2')); - $this->assertSame(false, $oParams->getStringList('str3')); // FIXME: should be 0 instead? + $this->assertSame(false, $oParams->getStringList('str3')); // sadly PHP magic treats 0 as false when returned } @@ -155,8 +155,7 @@ class ParameterParserTest extends \PHPUnit_Framework_TestCase $this->assertSame(false, $oParams->getStringList('non-exists')); $this->assertSame(['a', 'b'], $oParams->getStringList('non-exists', ['a', 'b'])); - // FIXME: unclear if empty string items should be removed - $this->assertSame(['', 'a', 'b', 'c', '', 'c', 'd'], $oParams->getStringList('list1')); + $this->assertSame(['a', 'b', 'c', 'c', 'd'], $oParams->getStringList('list1')); $this->assertSame(['a'], $oParams->getStringList('list2')); $this->assertSame(false, $oParams->getStringList('list3')); $this->assertSame(false, $oParams->getStringList('list4')); -- 2.39.5