Applying patch from 'mulleto'. Fixes plugin view file location with CamelCase plugin names. Test cases added.

Fixes #6334

git-svn-id: https://svn.cakephp.org/repo/branches/1.2.x.x@8202 3807eeeb-6ff5-0310-8944-8be069107fe0
This commit is contained in:
mark_story 2009-06-24 22:02:00 +00:00
parent 16eb51e91c
commit fd818bc493
2 changed files with 25 additions and 2 deletions

View file

@ -800,7 +800,7 @@ class View extends Object {
} }
} }
$paths = $this->_paths($this->plugin); $paths = $this->_paths(Inflector::underscore($this->plugin));
foreach ($paths as $path) { foreach ($paths as $path) {
if (file_exists($path . $name . $this->ext)) { if (file_exists($path . $name . $this->ext)) {
@ -840,7 +840,7 @@ class View extends Object {
if (!is_null($this->layoutPath)) { if (!is_null($this->layoutPath)) {
$subDir = $this->layoutPath . DS; $subDir = $this->layoutPath . DS;
} }
$paths = $this->_paths($this->plugin); $paths = $this->_paths(Inflector::underscore($this->plugin));
$file = 'layouts' . DS . $subDir . $name; $file = 'layouts' . DS . $subDir . $name;
$exts = array($this->ext, '.ctp', '.thtml'); $exts = array($this->ext, '.ctp', '.thtml');

View file

@ -248,6 +248,29 @@ class ViewTest extends CakeTestCase {
$this->assertEqual($result, $expected); $this->assertEqual($result, $expected);
} }
/** /**
* test that CamelCase plugins still find their view files.
*
* @return void
**/
function testCamelCasePluginGetTemplate() {
$this->Controller->plugin = 'TestPlugin';
$this->Controller->name = 'TestPlugin';
$this->Controller->viewPath = 'tests';
$this->Controller->action = 'index';
$View = new TestView($this->Controller);
Configure::write('pluginPaths', array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS));
Configure::write('viewPaths', array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'views'. DS));
$expected = TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS .'test_plugin' . DS . 'views' . DS .'tests' . DS .'index.ctp';
$result = $View->getViewFileName('index');
$this->assertEqual($result, $expected);
$expected = TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS .'test_plugin' . DS . 'views' . DS . 'layouts' . DS .'default.ctp';
$result = $View->getLayoutFileName();
$this->assertEqual($result, $expected);
}
/**
* testGetTemplate method * testGetTemplate method
* *
* @access public * @access public