Fixed some validation tests

This commit is contained in:
Jose Lorenzo Rodriguez 2012-04-29 01:06:24 -04:30
parent 30761f9153
commit 8700f3c7a2
3 changed files with 7 additions and 13 deletions

View file

@ -311,13 +311,12 @@ class ModelValidator {
return false;
}
if (!empty($this->_validate) && $this->_validate === $this->_model->validate) {
if ($this->_validate === $this->_model->validate) {
return true;
}
$this->_validate = $this->_model->validate;
$this->_processWhitelist();
$this->_fields = array();
$methods = $this->getMethods();
foreach ($this->_validate as $fieldName => $ruleSet) {

View file

@ -171,12 +171,13 @@ class CakeRule {
* @return boolean
*/
public function checkRequired(&$data) {
$required = !isset($data[$this->_field]) && $this->required === true;
$required = $required || (
isset($this->data[$this->_field]) && (empty($data[$this->_field]) &&
!is_numeric($data[$this->_field])) && $this->allowEmpty === false
return (
(!isset($data[$this->_field]) && $this->required === true) ||
(
isset($data[$this->_field]) && (empty($data[$this->_field]) &&
!is_numeric($data[$this->_field])) && $this->allowEmpty === false
)
);
return $required;
}
/**

View file

@ -346,8 +346,6 @@ class ModelValidationTest extends BaseModelTest {
$this->assertEquals($data, $result);
$result = $TestModel->validates();
$this->assertTrue($result);
$result = $Validator->validates();
$this->assertTrue($result);
$data = array('TestValidate' => array(
'user_id' => '1',
@ -517,8 +515,6 @@ class ModelValidationTest extends BaseModelTest {
'title' => array('tooShort')
);
$this->assertEquals($expected, $result);
$result = $Validator->validates();
$this->assertFalse($result);
$TestModel->validate = array(
'title' => array(
@ -540,8 +536,6 @@ class ModelValidationTest extends BaseModelTest {
'title' => array('tooShort', 'onlyLetters')
);
$this->assertEquals($expected, $result);
$result = $Validator->validates();
$this->assertFalse($result);
$result = $TestModel->validationErrors;
$this->assertEquals($expected, $result);
}