Skip to content

Commit

Permalink
Fixes #16903: Fixed 'yii\validators\NumberValidator' method 'isNotNum…
Browse files Browse the repository at this point in the history
…ber' returns false for true/false value
  • Loading branch information
annechko authored and samdark committed Nov 23, 2018
1 parent 3907895 commit d7ffda0
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 2 deletions.
1 change: 1 addition & 0 deletions framework/CHANGELOG.md
Expand Up @@ -4,6 +4,7 @@ Yii Framework 2 Change Log
2.0.16 under development
------------------------

- Bug #16903: Fixed 'yii\validators\NumberValidator' method 'isNotNumber' returns false for true/false value (annechko)
- Bug #16648: Html::strtolower() was corrupting UTF-8 strings (Kolyunya)
- Bug #13977: Skip validation if file input does not exist (RobinKamps, s1lver)
- Bug #16183: Fixed when `yii\helpers\BaseFileHelper` sometimes returned wrong value (samdark, SilverFire, OndrejVasicek)
Expand Down
5 changes: 3 additions & 2 deletions framework/validators/NumberValidator.php
Expand Up @@ -124,8 +124,9 @@ protected function validateValue($value)
private function isNotNumber($value)
{
return is_array($value)
|| (is_object($value) && !method_exists($value, '__toString'))
|| (!is_object($value) && !is_scalar($value) && $value !== null);
|| is_bool($value)
|| (is_object($value) && !method_exists($value, '__toString'))
|| (!is_object($value) && !is_scalar($value) && $value !== null);
}

/**
Expand Down
4 changes: 4 additions & 0 deletions tests/framework/validators/NumberValidatorTest.php
Expand Up @@ -77,6 +77,8 @@ public function testValidateValueSimple()
$this->assertTrue($val->validate(-20));
$this->assertTrue($val->validate('20'));
$this->assertTrue($val->validate(25.45));
$this->assertFalse($val->validate(false));
$this->assertFalse($val->validate(true));

$this->setPointDecimalLocale();
$this->assertFalse($val->validate('25,45'));
Expand All @@ -94,6 +96,8 @@ public function testValidateValueSimple()
$this->assertTrue($val->validate('020'));
$this->assertTrue($val->validate(0x14));
$this->assertFalse($val->validate('0x14')); // todo check this
$this->assertFalse($val->validate(false));
$this->assertFalse($val->validate(true));
}

public function testValidateValueAdvanced()
Expand Down

0 comments on commit d7ffda0

Please sign in to comment.