Browse Source

Fixing the ControllerTestCase tests

Jose Lorenzo Rodriguez 15 years ago
parent
commit
ca32143292

+ 11 - 4
lib/Cake/TestSuite/ControllerTestCase.php

@@ -254,7 +254,13 @@ class ControllerTestCase extends CakeTestCase {
  * @return Controller Mocked controller
  */
 	public function generate($controller, $mocks = array()) {
-		if (!class_exists($controller.'Controller') && App::import('Controller', $controller) === false) {
+		list($plugin, $controller) = pluginSplit($controller);
+		if ($plugin) {
+			App::uses($plugin . 'AppController', $plugin . '.Controller');
+			$plugin .= '.';
+		}
+		App::uses($controller . 'Controller', $plugin . 'Controller');
+		if (!class_exists($controller.'Controller')) {
 			throw new MissingControllerException(array('controller' => $controller.'Controller'));
 		}
 		ClassRegistry::flush();
@@ -295,10 +301,11 @@ class ControllerTestCase extends CakeTestCase {
 			if ($methods === true) {
 				$methods = array();
 			}
-			list($plugin, $name) = pluginSplit($component);
-			if (!App::import('Component', $component)) {
+			list($plugin, $name) = pluginSplit($component, true);
+			App::uses($name . 'Component', $plugin . 'Controller/Component');
+			if (!class_exists($name . 'Component')) {
 				throw new MissingComponentFileException(array(
-					'file' => Inflector::underscore($name) . '.php',
+					'file' => $name . 'Component.php',
 					'class' => $name.'Component'
 				));
 			}			

+ 1 - 1
lib/Cake/View/View.php

@@ -687,7 +687,7 @@ class View extends Object {
 		if (strpos($name, DS) === false && $name[0] !== '.') {
 			$name = $this->viewPath . DS . $subDir . Inflector::underscore($name);
 		} elseif (strpos($name, DS) !== false) {
-			if ($name{0} === DS || $name{1} === ':') {
+			if ($name[0] === DS || $name[1] === ':') {
 				if (is_file($name)) {
 					return $name;
 				}

+ 3 - 3
lib/Cake/tests/cases/libs/controller_test_case.test.php

@@ -123,9 +123,9 @@ class ControllerTestCaseTest extends CakeTestCase {
 		parent::setUp();
 		App::build(array(
 			'plugins' => array(LIBS . 'tests' . DS . 'test_app' . DS . 'plugins' . DS),
-			'controllers' => array(LIBS . 'tests' . DS . 'test_app' . DS . 'controllers' . DS),
-			'models' => array(LIBS . 'tests' . DS . 'test_app' . DS . 'models' . DS),
-			'views' => array(LIBS . 'tests' . DS . 'test_app' . DS . 'views' . DS)
+			'Controller' => array(LIBS . 'tests' . DS . 'test_app' . DS . 'controllers' . DS),
+			'Model' => array(LIBS . 'tests' . DS . 'test_app' . DS . 'models' . DS),
+			'View' => array(LIBS . 'tests' . DS . 'test_app' . DS . 'views' . DS)
 		));
 		$this->Case = new ControllerTestCase();
 		Router::reload();