Browse Source

Make CakeEmail::config() merge configuration.

This allows you to incremementally overwrite configuration and better
matches other config methods in CakePHP.

Fixes #3848
mark_story 13 years ago
parent
commit
ca1f9e800e

+ 1 - 1
lib/Cake/Network/Email/CakeEmail.php

@@ -1138,7 +1138,7 @@ class CakeEmail {
 			}
 			$config = $configs->{$config};
 		}
-		$this->_config += $config;
+		$this->_config = array_merge($this->_config, $config);
 		if (!empty($config['charset'])) {
 			$this->charset = $config['charset'];
 		}

+ 5 - 0
lib/Cake/Test/Case/Network/Email/CakeEmailTest.php

@@ -718,6 +718,11 @@ class CakeEmailTest extends CakeTestCase {
 
 		$this->CakeEmail->config(array());
 		$this->assertSame($transportClass->config(), array());
+
+		$config = array('test' => 'test@example.com');
+		$this->CakeEmail->config($config);
+		$expected = array('test' => 'test@example.com', 'test2' => true);
+		$this->assertSame($expected, $this->CakeEmail->config());
 	}
 
 /**