From d91f7c2cd630b6c2e697b1f492437a6211001e94 Mon Sep 17 00:00:00 2001 From: mark_story Date: Wed, 24 Nov 2010 22:44:12 -0500 Subject: [PATCH] Adding test for correct merge order for $uses. Fixing incorrect merge ordering for $uses, so it matches historical behaviour. Fixes #1309 --- cake/libs/controller/controller.php | 4 ++-- cake/tests/cases/libs/controller/controller.test.php | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/cake/libs/controller/controller.php b/cake/libs/controller/controller.php index dafe6b6d8a5..b8659907f12 100644 --- a/cake/libs/controller/controller.php +++ b/cake/libs/controller/controller.php @@ -399,7 +399,7 @@ function __mergeVars() { $this->{$var} = Set::merge($app, $normal); } } else { - $this->{$var} = Set::merge($this->{$var}, array_diff($appVars[$var], $this->{$var})); + $this->{$var} = array_merge($this->{$var}, array_diff($appVars[$var], $this->{$var})); } } } @@ -423,7 +423,7 @@ function __mergeVars() { $this->{$var} = Set::merge($app, $normal); } } else { - $this->{$var} = Set::merge($this->{$var}, array_diff($appVars[$var], $this->{$var})); + $this->{$var} = array_merge($this->{$var}, array_diff($appVars[$var], $this->{$var})); } } } diff --git a/cake/tests/cases/libs/controller/controller.test.php b/cake/tests/cases/libs/controller/controller.test.php index 6d3d5926360..b0ea499bbb7 100644 --- a/cake/tests/cases/libs/controller/controller.test.php +++ b/cake/tests/cases/libs/controller/controller.test.php @@ -937,6 +937,10 @@ function testMergeVars() { $this->assertEqual(count(array_diff($TestController->uses, $uses)), 0); $this->assertEqual(count(array_diff_assoc(Set::normalize($TestController->components), Set::normalize($components))), 0); + $expected = array('ControllerComment', 'ControllerAlias', 'ControllerPost'); + $this->assertEqual($expected, $TestController->uses, '$uses was merged incorrectly, AppController models should be last.'); + + $TestController =& new AnotherTestController(); $TestController->constructClasses();