diff --git a/lang/en.php b/lang/en.php index 36c3358..8e14f78 100644 --- a/lang/en.php +++ b/lang/en.php @@ -23,7 +23,8 @@ return array( 'dateFormat' => "must be date with format '%s'", 'dateBefore' => "must be date before '%s'", 'dateAfter' => "must be date after '%s'", - 'contains' => "must contain %s" + 'contains' => "must contain %s", + 'boolean' => "must be a boolean", ); diff --git a/src/Valitron/Validator.php b/src/Valitron/Validator.php index d80a544..40a76fc 100644 --- a/src/Valitron/Validator.php +++ b/src/Valitron/Validator.php @@ -430,6 +430,18 @@ class Validator return $vtime > $ptime; } + /** + * Validate that a field contains a boolean. + * + * @param string $field + * @param mixed $value + * @return bool + */ + protected function validateBoolean($field, $value) + { + return (is_bool($value)) ? true : false; + } + /** * Get array of fields and data */ diff --git a/tests/Valitron/ValidateTest.php b/tests/Valitron/ValidateTest.php index a474b04..34f8cca 100644 --- a/tests/Valitron/ValidateTest.php +++ b/tests/Valitron/ValidateTest.php @@ -640,6 +640,20 @@ class ValidateTest extends BaseTestCase $v->rule('testRule', 'name', array('foo', 'bar'))->message('Invalid name selected.'); $this->assertFalse($v->validate()); } + + public function testBooleanValid() + { + $v = new Validator(array('test' => true)); + $v->rule('boolean', 'test'); + $this->assertTrue($v->validate()); + } + + public function testBooleanInvalid() + { + $v = new Validator(array('test' => 'true')); + $v->rule('boolean', 'test'); + $this->assertFalse($v->validate()); + } } function sampleFunctionCallback($field, $value, array $params) {