Skip to content
Permalink
Browse files

Make sure ComponentCollection has the controller dependency.

Add setter method as changing ComponentCollection's constructor now is
not possible. This fixes issues where components that rely on
Collection->getController() in their constructor can work properly.

Fixes #3946
  • Loading branch information...
markstory committed Jul 30, 2013
1 parent 4c7bc11 commit 95b74bd9efee7e3c63e08bb9f983cfdec72c3cb2
Showing with 11 additions and 0 deletions.
  1. +10 −0 lib/Cake/Controller/ComponentCollection.php
  2. +1 −0 lib/Cake/TestSuite/ControllerTestCase.php
@@ -54,6 +54,16 @@ public function init(Controller $Controller) {
}
}
/**
* Set the controller associated with the collection.
*
* @param Controller $Controller Controller to set
* @return void
*/
public function setController(Controller $Controller) {
$this->_Controller = $Controller;
}
/**
* Get the controller associated with the collection.
*
@@ -334,6 +334,7 @@ public function generate($controller, $mocks = array()) {
$request = $this->getMock('CakeRequest');
$response = $this->getMock('CakeResponse', array('_sendHeader'));
$controllerObj->__construct($request, $response);
$controllerObj->Components->setController($controllerObj);
$config = ClassRegistry::config('Model');
foreach ($mocks['models'] as $model => $methods) {

0 comments on commit 95b74bd

Please sign in to comment.
You can’t perform that action at this time.