Browse Source

Merge pull request #8085 from cakephp/issue-8081

Inflect Controller::$name when it is derived from request params.
ADmad 10 years ago
parent
commit
bc1ec2548a
2 changed files with 8 additions and 1 deletions
  1. 2 1
      src/Controller/Controller.php
  2. 6 0
      tests/TestCase/Controller/ControllerTest.php

+ 2 - 1
src/Controller/Controller.php

@@ -26,6 +26,7 @@ use Cake\Network\Response;
 use Cake\ORM\Locator\LocatorAwareTrait;
 use Cake\Routing\RequestActionTrait;
 use Cake\Routing\Router;
+use Cake\Utility\Inflector;
 use Cake\Utility\MergeVariablesTrait;
 use Cake\View\ViewVarsTrait;
 use LogicException;
@@ -236,7 +237,7 @@ class Controller implements EventListenerInterface, EventDispatcherInterface
         }
 
         if ($this->name === null && isset($request->params['controller'])) {
-            $this->name = $request->params['controller'];
+            $this->name = Inflector::camelize($request->params['controller']);
         }
 
         if ($this->name === null) {

+ 6 - 0
tests/TestCase/Controller/ControllerTest.php

@@ -359,6 +359,12 @@ class ControllerTest extends TestCase
         $this->assertEquals('Posts', $controller->modelClass);
         $this->assertInstanceOf('Cake\ORM\Table', $controller->Posts);
 
+        $request->params['controller'] = 'posts';
+        $controller = new \TestApp\Controller\PostsController($request, $response);
+        $this->assertEquals('Posts', $controller->modelClass);
+        $this->assertInstanceOf('Cake\ORM\Table', $controller->Posts);
+        unset($request->params['controller']);
+
         $controller = new \TestApp\Controller\Admin\PostsController($request, $response);
         $this->assertEquals('Posts', $controller->modelClass);
         $this->assertInstanceOf('Cake\ORM\Table', $controller->Posts);