瀏覽代碼

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 年之前
父節點
當前提交
102a782fa9
共有 2 個文件被更改,包括 21 次插入5 次删除
  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)
     {
-        $messageKeys = $messageKey;
         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->_messageTemplates[$messageKeys] = $messageString;
+        $this->_messageTemplates[$messageKey] = $messageString;
         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();
         $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