Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Applying patch from 'mulleto'. Fixes plugin view file location with C…

…amelCase 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
  • Loading branch information...
commit fd818bc493baee508ea032900623e2083cc74b33 1 parent 16eb51e
Mark Story markstory authored
4 cake/libs/view/view.php
View
@@ -800,7 +800,7 @@ function _getViewFileName($name = null) {
}
}
- $paths = $this->_paths($this->plugin);
+ $paths = $this->_paths(Inflector::underscore($this->plugin));
foreach ($paths as $path) {
if (file_exists($path . $name . $this->ext)) {
@@ -840,7 +840,7 @@ function _getLayoutFileName($name = null) {
if (!is_null($this->layoutPath)) {
$subDir = $this->layoutPath . DS;
}
- $paths = $this->_paths($this->plugin);
+ $paths = $this->_paths(Inflector::underscore($this->plugin));
$file = 'layouts' . DS . $subDir . $name;
$exts = array($this->ext, '.ctp', '.thtml');
23 cake/tests/cases/libs/view/view.test.php
View
@@ -248,6 +248,29 @@ function testPluginGetTemplate() {
$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
*
* @access public
Please sign in to comment.
Something went wrong with that request. Please try again.