Browse Source

Use string keys for presence and not empty failure messages.

ADmad 11 years ago
parent
commit
21fce4f6fe
2 changed files with 8 additions and 8 deletions
  1. 2 2
      src/Validation/Validator.php
  2. 6 6
      tests/TestCase/Validation/ValidatorTest.php

+ 2 - 2
src/Validation/Validator.php

@@ -99,7 +99,7 @@ class Validator implements \ArrayAccess, \IteratorAggregate, \Countable
             $keyPresent = array_key_exists($name, $data);
 
             if (!$keyPresent && !$this->_checkPresence($field, $newRecord)) {
-                $errors[$name][] = isset($this->_presenceMessages[$name])
+                $errors[$name]['_required'] = isset($this->_presenceMessages[$name])
                     ? $this->_presenceMessages[$name]
                     : $requiredMessage;
                 continue;
@@ -115,7 +115,7 @@ class Validator implements \ArrayAccess, \IteratorAggregate, \Countable
             $isEmpty = $this->_fieldIsEmpty($data[$name]);
 
             if (!$canBeEmpty && $isEmpty) {
-                $errors[$name][] = isset($this->_allowEmptyMessages[$name])
+                $errors[$name]['_empty'] = isset($this->_allowEmptyMessages[$name])
                     ? $this->_allowEmptyMessages[$name]
                     : $emptyMessage;
                 continue;

+ 6 - 6
tests/TestCase/Validation/ValidatorTest.php

@@ -154,7 +154,7 @@ class ValidatorTest extends TestCase
         $validator = new Validator;
         $validator->requirePresence('title');
         $errors = $validator->errors(['foo' => 'something']);
-        $expected = ['title' => ['This field is required']];
+        $expected = ['title' => ['_required' => 'This field is required']];
         $this->assertEquals($expected, $errors);
 
         $this->assertEmpty($validator->errors(['title' => 'bar']));
@@ -173,7 +173,7 @@ class ValidatorTest extends TestCase
         $validator = new Validator;
         $validator->requirePresence('title', true, 'Custom message');
         $errors = $validator->errors(['foo' => 'something']);
-        $expected = ['title' => ['Custom message']];
+        $expected = ['title' => ['_required' => 'Custom message']];
         $this->assertEquals($expected, $errors);
     }
 
@@ -336,15 +336,15 @@ class ValidatorTest extends TestCase
         $validator = new Validator;
         $validator->notEmpty('title');
         $errors = $validator->errors(['title' => '']);
-        $expected = ['title' => ['This field cannot be left empty']];
+        $expected = ['title' => ['_empty' => 'This field cannot be left empty']];
         $this->assertEquals($expected, $errors);
 
         $errors = $validator->errors(['title' => []]);
-        $expected = ['title' => ['This field cannot be left empty']];
+        $expected = ['title' => ['_empty' => 'This field cannot be left empty']];
         $this->assertEquals($expected, $errors);
 
         $errors = $validator->errors(['title' => null]);
-        $expected = ['title' => ['This field cannot be left empty']];
+        $expected = ['title' => ['_empty' => 'This field cannot be left empty']];
         $this->assertEquals($expected, $errors);
 
         $errors = $validator->errors(['title' => 0]);
@@ -367,7 +367,7 @@ class ValidatorTest extends TestCase
         $validator = new Validator;
         $validator->notEmpty('title', 'Custom message');
         $errors = $validator->errors(['title' => '']);
-        $expected = ['title' => ['Custom message']];
+        $expected = ['title' => ['_empty' => 'Custom message']];
         $this->assertEquals($expected, $errors);
     }