2
0
Quellcode durchsuchen

merge revision 25172 to release-1.12

git-svn-id: http://framework.zend.com/svn/framework/standard/branches/release-1.12@25173 44c647ce-9c0f-0410-b52a-842ac1e357ba
rob vor 13 Jahren
Ursprung
Commit
4b634c4d50
2 geänderte Dateien mit 16 neuen und 4 gelöschten Zeilen
  1. 4 4
      library/Zend/Form/Element.php
  2. 12 0
      tests/Zend/Form/ElementTest.php

+ 4 - 4
library/Zend/Form/Element.php

@@ -2242,14 +2242,14 @@ class Zend_Form_Element implements Zend_Validate_Interface
             if (null !== $translator) {
                 $message = $translator->translate($message);
             }
-            if (($this->isArray() || is_array($value))
-                && !empty($value)
-            ) {
+            if ($this->isArray() || is_array($value)) {
                 $aggregateMessages = array();
                 foreach ($value as $val) {
                     $aggregateMessages[] = str_replace('%value%', $val, $message);
                 }
-                $messages[$key] = implode($this->getErrorMessageSeparator(), $aggregateMessages);
+                if (count($aggregateMessages)) {
+                    $messages[$key] = implode($this->getErrorMessageSeparator(), $aggregateMessages);
+                }
             } else {
                 $messages[$key] = str_replace('%value%', $value, $message);
             }

+ 12 - 0
tests/Zend/Form/ElementTest.php

@@ -2232,6 +2232,18 @@ class Zend_Form_ElementTest extends PHPUnit_Framework_TestCase
         $this->assertTrue(is_array($paths), var_export($paths, 1));
         $this->assertContains('Decorator', $paths[0]);
     }
+
+    /**
+     * @group ZF-12439
+     */
+    public function testSettingAnEmptyArrayValueGeneratesAValidErrorMessage()
+    {
+        $this->element->setValue(array());
+        $this->element->addErrorMessage('Invalid value entered');
+        $this->element->markAsError();
+        $messages = $this->element->getMessages();
+        $this->assertEquals('Invalid value entered', array_shift($messages));
+    }
 }
 
 class Zend_Form_ElementTest_Decorator extends Zend_Form_Decorator_Abstract