]> git.openstreetmap.org Git - nominatim.git/commitdiff
ParameterParser: getStringList removes empty strings
authormarc tobias <mtmail@gmx.net>
Tue, 6 Mar 2018 13:51:48 +0000 (14:51 +0100)
committermarc tobias <mtmail@gmx.net>
Tue, 6 Mar 2018 13:51:48 +0000 (14:51 +0100)
lib/ParameterParser.php
test/php/Nominatim/ParameterParserTest.php

index feddc3aa1d9b0c7ac79cb8c5e11218b2baf12fff..c9a97c25c5f6b0f29f0e9cb3b139b32e8f9d2841 100644 (file)
@@ -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;
index 7873953461193d3798465236226867a653de5ffb..105f9d34839638ac6e7373033cd61d6eef9d8efa 100644 (file)
@@ -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'));