From d00a2d6215918736a3ca61b4a8810f91bf07309f Mon Sep 17 00:00:00 2001 From: Neil Lathwood Date: Wed, 8 Mar 2017 04:15:22 +0000 Subject: [PATCH] fix: Updated set_null() function to be more useful #6030 (#6049) * fix: Updated set_null() function to be more useful #6030 * drop isset * Added unit test * change to assertNull --- includes/common.php | 8 +++++--- tests/CommonFunctionsTest.php | 11 +++++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/includes/common.php b/includes/common.php index 293339e6bc..a7b49a899b 100644 --- a/includes/common.php +++ b/includes/common.php @@ -1605,10 +1605,12 @@ function uw_to_dbm($value) * @param int $min * @return null */ -function set_null($value, $default = null, $min = 0) +function set_null($value, $default = null, $min = null) { - if (!isset($value) || !is_numeric($value) || (isset($min) && $value <= $min)) { - $value = $default; + if (!is_numeric($value)) { + return $default; + } elseif (isset($min) && $value < $min) { + return $default; } return $value; } diff --git a/tests/CommonFunctionsTest.php b/tests/CommonFunctionsTest.php index b172a26e59..ffa443b32d 100644 --- a/tests/CommonFunctionsTest.php +++ b/tests/CommonFunctionsTest.php @@ -84,6 +84,17 @@ class CommonFunctionsTest extends \PHPUnit_Framework_TestCase $this->assertEquals('Toner, S/N CR_UM-16021314488.', safedescr($data)); } + public function testSetNull() + { + $this->assertNull(set_null('BAD-DATA')); + $this->assertEquals(0, set_null(0)); + $this->assertEquals(25, set_null(25)); + $this->assertEquals(-25, set_null(-25)); + $this->assertEquals(99, set_null(' ', 99)); + $this->assertNull(set_null(-25, null, 0)); + $this->assertEquals(2, set_null(2, 0, 2)); + } + public function testIsIp() { $this->assertTrue(is_ip('192.168.0.1'));