Permalink
Browse files

Fix Set::merge() failing to merge correctly.

When merging 3 values, and the 2nd was empty, the resulting
merge was incorrect.

Fixes #3384
  • Loading branch information...
markstory committed Nov 19, 2012
1 parent 4ebe754 commit 6b4afb989e4257d47e022377297c0e453d49ddec
Showing with 4 additions and 1 deletion.
  1. +3 −0 lib/Cake/Test/Case/Utility/SetTest.php
  2. +1 −1 lib/Cake/Utility/Set.php
@@ -152,6 +152,9 @@ public function testMerge() {
$r = Set::merge('foo', 'bar');
$this->assertEquals(array('foo', 'bar'), $r);
+ $r = Set::merge(array('foo'), array(), array('bar'));
+ $this->assertEquals(array('foo', 'bar'), $r);
+
$r = Set::merge('foo', array('user' => 'bob', 'no-bar'), 'bar');
$this->assertEquals(array('foo', 'user' => 'bob', 'no-bar', 'bar'), $r);
View
@@ -45,7 +45,7 @@ class Set {
*/
public static function merge($data, $merge = null) {
$args = func_get_args();
- if (empty($args[1])) {
+ if (empty($args[1]) && count($args) <= 2) {
return (array)$args[0];
}
if (!is_array($args[0])) {

0 comments on commit 6b4afb9

Please sign in to comment.