Fixed error where App::import() failed to load new class types added in 2.0. Also fixed couple of test cases.

This commit is contained in:
ADmad 2011-05-01 03:19:44 +05:30
parent d61ebaee5d
commit 75437b45d9
2 changed files with 10 additions and 8 deletions

View file

@ -614,10 +614,10 @@ class App {
return true;
}
$originalType = $type = strtolower($type);
$specialPackage = in_array($type, array('file', 'vendor'));
if (!$specialPackage && isset(self::$legacy[$type . 's'])) {
$type = self::$legacy[$type . 's'];
$originalType = strtolower($type);
$specialPackage = in_array($originalType, array('file', 'vendor'));
if (!$specialPackage && isset(self::$legacy[$originalType . 's'])) {
$type = self::$legacy[$originalType . 's'];
}
list($plugin, $name) = pluginSplit($name);
if (!empty($plugin)) {
@ -628,11 +628,11 @@ class App {
return self::_loadClass($name, $plugin, $type, $originalType, $parent);
}
if ($type == 'file' && !empty($file)) {
if ($originalType == 'file' && !empty($file)) {
return self::_loadFile($name, $plugin, $search, $file, $return);
}
if ($type == 'vendor') {
if ($originalType == 'vendor') {
return self::_loadVendor($name, $plugin, $file, $ext);
}

View file

@ -285,9 +285,11 @@ class AppImportTest extends CakeTestCase {
$this->assertTrue(in_array('TestPluginPersisterOne', $result));
$result = App::objects('TestPlugin.helper');
sort($result);
$expected = array('OtherHelperHelper', 'PluggedHelper', 'TestPluginApp');
$this->assertEquals($result, $expected);
$result = App::objects('TestPlugin.View/Helper');
sort($result);
$expected = array('OtherHelperHelper', 'PluggedHelper', 'TestPluginApp');
$this->assertEquals($result, $expected);
@ -462,7 +464,7 @@ class AppImportTest extends CakeTestCase {
$result = App::import('Helper', 'TestPlugin.OtherHelper');
$this->assertTrue($result);
$this->assertTrue(class_exists('OtherHelperHelper'));
$result = App::import('Helper', 'TestPlugin.TestPluginApp');
$this->assertTrue($result);
$this->assertTrue(class_exists('TestPluginAppHelper'));
@ -470,7 +472,7 @@ class AppImportTest extends CakeTestCase {
$result = App::import('Datasource', 'TestPlugin.TestSource');
$this->assertTrue($result);
$this->assertTrue(class_exists('TestSource'));
App::build();
}