diff --git a/lib/Cake/Network/CakeEmail.php b/lib/Cake/Network/CakeEmail.php index ae62d4a400d..c2f60c4cc4c 100644 --- a/lib/Cake/Network/CakeEmail.php +++ b/lib/Cake/Network/CakeEmail.php @@ -675,14 +675,14 @@ public function viewRender($viewClass = null) { /** * Variables to be set on render * - * @param array + * @param array $viewVars * @return mixed */ public function viewVars($viewVars = null) { if ($viewVars === null) { return $this->_viewVars; } - $this->_viewVars = $viewVars; + $this->_viewVars = array_merge($this->_viewVars, (array)$viewVars); return $this; } diff --git a/lib/Cake/tests/Case/Network/CakeEmailTest.php b/lib/Cake/tests/Case/Network/CakeEmailTest.php index d96503a0ef4..0186d9a69de 100644 --- a/lib/Cake/tests/Case/Network/CakeEmailTest.php +++ b/lib/Cake/tests/Case/Network/CakeEmailTest.php @@ -431,6 +431,24 @@ public function testTemplate() { $this->assertIdentical($this->CakeEmail->template(), $expected); } +/** + * testViewVars method + * + * @return void + */ + public function testViewVars() { + $this->assertIdentical($this->CakeEmail->viewVars(), array()); + + $this->CakeEmail->viewVars(array('value' => 12345)); + $this->assertIdentical($this->CakeEmail->viewVars(), array('value' => 12345)); + + $this->CakeEmail->viewVars(array('name' => 'CakePHP')); + $this->assertIdentical($this->CakeEmail->viewVars(), array('value' => 12345, 'name' => 'CakePHP')); + + $this->CakeEmail->viewVars(array('value' => 4567)); + $this->assertIdentical($this->CakeEmail->viewVars(), array('value' => 4567, 'name' => 'CakePHP')); + } + /** * testAttachments method *