Hash::filter() should not exclude 0.0

Refs #10385
This commit is contained in:
mark_story 2017-03-09 21:29:44 -05:00
parent 8d0e1fadf7
commit e698891d09
2 changed files with 16 additions and 3 deletions

View file

@ -655,8 +655,21 @@ class HashTest extends CakeTestCase {
* @return void * @return void
*/ */
public function testFilter() { public function testFilter() {
$result = Hash::filter(array('0', false, true, 0, array('one thing', 'I can tell you', 'is you got to be', false))); $result = Hash::filter(array(
$expected = array('0', 2 => true, 3 => 0, 4 => array('one thing', 'I can tell you', 'is you got to be')); '0',
false,
true,
0,
0.0,
array('one thing', 'I can tell you', 'is you got to be', false)
));
$expected = array(
'0',
2 => true,
3 => 0,
4 => 0.0,
5 => array('one thing', 'I can tell you', 'is you got to be')
);
$this->assertSame($expected, $result); $this->assertSame($expected, $result);
$result = Hash::filter(array(1, array(false))); $result = Hash::filter(array(1, array(false)));

View file

@ -573,7 +573,7 @@ class Hash {
* @return bool * @return bool
*/ */
protected static function _filter($var) { protected static function _filter($var) {
if ($var === 0 || $var === '0' || !empty($var)) { if ($var === 0 || $var === 0.0 || $var === '0' || !empty($var)) {
return true; return true;
} }
return false; return false;