diff --git a/lib/Cake/Controller/ComponentCollection.php b/lib/Cake/Controller/ComponentCollection.php
index <HASH>..<HASH> 100644
--- a/lib/Cake/Controller/ComponentCollection.php
+++ b/lib/Cake/Controller/ComponentCollection.php
@@ -55,6 +55,16 @@ class ComponentCollection extends ObjectCollection implements CakeEventListener 
 	}
 
 /**
+ * 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.
  *
  * @return Controller Controller instance
diff --git a/lib/Cake/TestSuite/ControllerTestCase.php b/lib/Cake/TestSuite/ControllerTestCase.php
index <HASH>..<HASH> 100644
--- a/lib/Cake/TestSuite/ControllerTestCase.php
+++ b/lib/Cake/TestSuite/ControllerTestCase.php
@@ -334,6 +334,7 @@ abstract class ControllerTestCase extends CakeTestCase {
 		$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) {
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 #<I>