[ticket/12205] Do not display 0 for empty integers when show_novalue is off

PHPBB3-12205
This commit is contained in:
Joas Schilling 2014-02-25 18:24:45 +01:00
parent 823dca737f
commit ffbc7ccb64
2 changed files with 43 additions and 1 deletions

View file

@ -532,7 +532,7 @@ class custom_profile
switch ($this->profile_types[$field_type])
{
case 'int':
if ($value === '' && !$ident_ary['data']['field_show_novalue'])
if (($value === '' || $value === null) && !$ident_ary['data']['field_show_novalue'])
{
return NULL;
}

View file

@ -0,0 +1,42 @@
<?php
/**
*
* @package testing
* @copyright (c) 2014 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
require_once dirname(__FILE__) . '/../../phpBB/includes/functions_profile_fields.php';
class phpbb_profile_get_profile_value_test extends phpbb_test_case
{
static public function get_profile_value_int_data()
{
return array(
array(FIELD_INT, '10', true, 10),
array(FIELD_INT, '0', true, 0),
array(FIELD_INT, '', true, 0),
array(FIELD_INT, null, true, 0),
array(FIELD_INT, '10', false, 10),
array(FIELD_INT, '0', false, 0),
array(FIELD_INT, '', false, null),
array(FIELD_INT, null, false, null),
);
}
/**
* @dataProvider get_profile_value_int_data
*/
public function test_get_profile_value_int($type, $value, $show_novalue, $expected)
{
$cp = new custom_profile;
$this->assertSame($expected, $cp->get_profile_value(array(
'value' => $value,
'data' => array(
'field_type' => $type,
'field_show_novalue' => $show_novalue,
),
)));
}
}