Merge pull request #1 from willemwollebrants/feature/fix-interger-validation

Feature/fix interger validation
This commit is contained in:
notona 2017-02-22 10:34:19 +09:00 committed by GitHub
commit 326d61f186
2 changed files with 29 additions and 17 deletions

View File

@ -233,13 +233,19 @@ class Validator
* *
* @param string $field * @param string $field
* @param mixed $value * @param mixed $value
* @param array $params
* @return bool * @return bool
*/ */
protected function validateInteger($field, $value) protected function validateInteger($field, $value, $params)
{ {
if (isset($params[0]) && (bool) $params[0]){
//strict mode
return preg_match('/^-?([0-9])+$/i', $value); return preg_match('/^-?([0-9])+$/i', $value);
} }
return filter_var($value, \FILTER_VALIDATE_INT) !== false;
}
/** /**
* Validate the length of a string * Validate the length of a string
* *

View File

@ -116,19 +116,33 @@ class ValidateTest extends BaseTestCase
$this->assertTrue($v->validate()); $this->assertTrue($v->validate());
} }
public function testIntegerStrict(){
$v = new Validator(array('num' => ' 41243'));
$v->rule('integer', 'num');
$this->assertTrue($v->validate());
$v = new Validator(array('num' => ' 41243'));
$v->rule('integer', 'num', true);
$this->assertFalse($v->validate());
$v = new Validator(array('num' => '+41243'));
$v->rule('integer', 'num');
$this->assertTrue($v->validate());
$v = new Validator(array('num' => '+41243'));
$v->rule('integer', 'num', true);
$this->assertFalse($v->validate());
}
public function testIntegerInvalid() public function testIntegerInvalid()
{ {
$v = new Validator(array('num' => '42.341569')); $v = new Validator(array('num' => '42.341569'));
$v->rule('integer', 'num'); $v->rule('integer', 'num');
$this->assertFalse($v->validate()); $this->assertFalse($v->validate());
$v = new Validator(array('num' => ' 41243'));
$v->rule('integer', 'num');
$this->assertFalse($v->validate());
$v = new Validator(array('num' => '+1231'));
$v->rule('integer', 'num');
$this->assertFalse($v->validate());
$v = new Validator(array('num' => '--1231')); $v = new Validator(array('num' => '--1231'));
$v->rule('integer', 'num'); $v->rule('integer', 'num');
@ -139,14 +153,6 @@ class ValidateTest extends BaseTestCase
$this->assertFalse($v->validate()); $this->assertFalse($v->validate());
} }
public function testIntegerWithMaxValidation()
{
$v = new Validator(array('num' => ' 4212341569'));
$v->rule('integer', 'num');
$v->rule('max', 'num', 1000);
$this->assertFalse($v->validate());
}
public function testLengthValid() public function testLengthValid()
{ {
$v = new Validator(array('str' => 'happy')); $v = new Validator(array('str' => 'happy'));