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 mixed $value
* @param array $params
* @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 filter_var($value, \FILTER_VALIDATE_INT) !== false;
}
/**
* Validate the length of a string
*

View File

@ -116,19 +116,33 @@ class ValidateTest extends BaseTestCase
$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()
{
$v = new Validator(array('num' => '42.341569'));
$v->rule('integer', 'num');
$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->rule('integer', 'num');
@ -139,14 +153,6 @@ class ValidateTest extends BaseTestCase
$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()
{
$v = new Validator(array('str' => 'happy'));