diff --git a/lib/Cake/TestSuite/ControllerTestCase.php b/lib/Cake/TestSuite/ControllerTestCase.php index ebf2af08c..9c78bcfae 100644 --- a/lib/Cake/TestSuite/ControllerTestCase.php +++ b/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' )); } diff --git a/lib/Cake/View/View.php b/lib/Cake/View/View.php index 9fecab65e..26b9f2e35 100644 --- a/lib/Cake/View/View.php +++ b/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; } diff --git a/lib/Cake/tests/cases/libs/controller_test_case.test.php b/lib/Cake/tests/cases/libs/controller_test_case.test.php index b06159ced..a64d36521 100644 --- a/lib/Cake/tests/cases/libs/controller_test_case.test.php +++ b/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();