Browse Source

ZF-10690: Zend_Validate_EmailAddress: Allow setMessage to set all messages

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@24828 44c647ce-9c0f-0410-b52a-842ac1e357ba
adamlundrigan 13 years ago
parent
commit
102a782fa9
2 changed files with 21 additions and 5 deletions
  1. 5 5
      library/Zend/Validate/EmailAddress.php
  2. 16 0
      tests/Zend/Validate/EmailAddressTest.php

+ 5 - 5
library/Zend/Validate/EmailAddress.php

@@ -207,17 +207,17 @@ class Zend_Validate_EmailAddress extends Zend_Validate_Abstract
      */
      */
     public function setMessage($messageString, $messageKey = null)
     public function setMessage($messageString, $messageKey = null)
     {
     {
-        $messageKeys = $messageKey;
         if ($messageKey === null) {
         if ($messageKey === null) {
-            $keys = array_keys($this->_messageTemplates);
-            $messageKeys = current($keys);
+            $this->_options['hostname']->setMessage($messageString);
+            parent::setMessage($messageString);
+            return $this;
         }
         }
 
 
-        if (!isset($this->_messageTemplates[$messageKeys])) {
+        if (!isset($this->_messageTemplates[$messageKey])) {
             $this->_options['hostname']->setMessage($messageString, $messageKey);
             $this->_options['hostname']->setMessage($messageString, $messageKey);
         }
         }
 
 
-        $this->_messageTemplates[$messageKeys] = $messageString;
+        $this->_messageTemplates[$messageKey] = $messageString;
         return $this;
         return $this;
     }
     }
 
 

+ 16 - 0
tests/Zend/Validate/EmailAddressTest.php

@@ -518,6 +518,22 @@ class Zend_Validate_EmailAddressTest extends PHPUnit_Framework_TestCase
         $messages = $this->_validator->getMessageTemplates();
         $messages = $this->_validator->getMessageTemplates();
         $this->assertEquals('TestMessage', $messages[Zend_Validate_EmailAddress::INVALID]);
         $this->assertEquals('TestMessage', $messages[Zend_Validate_EmailAddress::INVALID]);
     }
     }
+    
+    /**
+     * Testing setMessage for all messages
+     *
+     * @group ZF-10690
+     */
+    public function testSetMultipleMessages()
+    {
+        $messages = $this->_validator->getMessageTemplates();
+        $this->assertNotEquals('TestMessage', $messages[Zend_Validate_EmailAddress::INVALID]);
+        $this->_validator->setMessage('TestMessage');
+        $messages = $this->_validator->getMessageTemplates();
+        $this->assertEquals('TestMessage', $messages[Zend_Validate_EmailAddress::INVALID]);
+        $this->assertEquals('TestMessage', $messages[Zend_Validate_EmailAddress::INVALID_FORMAT]);
+        $this->assertEquals('TestMessage', $messages[Zend_Validate_EmailAddress::DOT_ATOM]);
+    }
 
 
     /**
     /**
      * Testing validateMxSupported
      * Testing validateMxSupported