Przeglądaj źródła

ZF-11514
Zend_Mail
Zend_Mail_Message incorrectly merges configuration flags supplied via constructor


git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@24162 44c647ce-9c0f-0410-b52a-842ac1e357ba

adamlundrigan 14 lat temu
rodzic
commit
a397860035
2 zmienionych plików z 28 dodań i 1 usunięć
  1. 1 1
      library/Zend/Mail/Message.php
  2. 27 0
      tests/Zend/Mail/MessageTest.php

+ 1 - 1
library/Zend/Mail/Message.php

@@ -73,7 +73,7 @@ class Zend_Mail_Message extends Zend_Mail_Part implements Zend_Mail_Message_Inte
 
         if (!empty($params['flags'])) {
             // set key and value to the same value for easy lookup
-            $this->_flags = array_combine($params['flags'], $params['flags']);
+            $this->_flags = array_merge($this->_flags, array_combine($params['flags'],$params['flags']));
         }
 
         parent::__construct($params);

+ 27 - 0
tests/Zend/Mail/MessageTest.php

@@ -445,4 +445,31 @@ class Zend_Mail_MessageTest extends PHPUnit_Framework_TestCase
         $this->assertEquals(Zend_Mime_Decode::splitHeaderField($header, 'foo'), 'bar');
         $this->assertEquals(Zend_Mime_Decode::splitHeaderField($header, 'baz'), 42);
     }
+    
+    /**
+     * @group ZF-11514
+     */
+    public function testConstructorMergesConstructorFlagsIntoDefaultFlags()
+    {
+        $message = new ZF11514_Mail_Message(array(
+            'file'  => $this->_file,
+            'flags' => array('constructor')
+        ));
+        $flags = $message->getFlags();
+        $this->assertArrayHasKey('default', $flags);
+        $this->assertEquals('yes!', $flags['default']);
+        $this->assertArrayHasKey('constructor', $flags);
+        $this->assertEquals('constructor', $flags['constructor']);
+    }
 }
+
+/**
+ * Message class which sets a pre-defined default flag set
+ * @see ZF-11514
+ */
+class ZF11514_Mail_Message extends Zend_Mail_Message
+{
+    protected $_flags = array(
+        'default'=>'yes!'
+    );
+}