From c8f33b77a154e0227d59bbc477bba728ece69566 Mon Sep 17 00:00:00 2001 From: mark_story Date: Wed, 9 Mar 2011 07:31:11 -0500 Subject: [PATCH] Fixing failing tests, and issues around Controller::$view not getting set properly. --- cake/libs/controller/controller.php | 11 +++++++++-- cake/libs/route/redirect_route.php | 3 +-- cake/tests/cases/libs/controller/scaffold.test.php | 2 +- cake/tests/lib/controller_test_case.php | 1 + 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/cake/libs/controller/controller.php b/cake/libs/controller/controller.php index 8040297ec..f09601c86 100644 --- a/cake/libs/controller/controller.php +++ b/cake/libs/controller/controller.php @@ -403,7 +403,14 @@ class Controller extends Object { /** * Sets the request objects and configures a number of controller properties - * based on the contents of the request. + * based on the contents of the request. The properties that get set are + * + * - $this->request - To the $request parameter + * - $this->plugin - To the $request->params['plugin'] + * - $this->view - To the $request->params['action'] + * - $this->autoLayout - To the false if $request->params['bare']; is set. + * - $this->autoRender - To false if $request->params['return'] == 1 + * - $this->passedArgs - The the combined results of params['named'] and params['pass] * * @param CakeRequest $request * @return void @@ -411,7 +418,7 @@ class Controller extends Object { public function setRequest(CakeRequest $request) { $this->request = $request; $this->plugin = isset($request->params['plugin']) ? $request->params['plugin'] : null; - + $this->view = isset($request->params['action']) ? $request->params['action'] : null; if (isset($request->params['pass']) && isset($request->params['named'])) { $this->passedArgs = array_merge($request->params['pass'], $request->params['named']); } diff --git a/cake/libs/route/redirect_route.php b/cake/libs/route/redirect_route.php index 8b9a63fe2..9746b7814 100644 --- a/cake/libs/route/redirect_route.php +++ b/cake/libs/route/redirect_route.php @@ -68,8 +68,7 @@ class RedirectRoute extends CakeRoute { $redirect = $this->redirect[0]; } if (isset($this->options['persist']) && is_array($redirect)) { - $argOptions['context'] = array('action' => $redirect['action'], 'controller' => $redirect['controller']); - $redirect += Router::getArgs($params['_args_'], $argOptions) + array('url' => array()); + $redirect += array('named' => $params['named'], 'pass' => $params['pass'], 'url' => array()); $redirect = Router::reverse($redirect); } $status = 301; diff --git a/cake/tests/cases/libs/controller/scaffold.test.php b/cake/tests/cases/libs/controller/scaffold.test.php index 54a67beff..7c1e4d51c 100644 --- a/cake/tests/cases/libs/controller/scaffold.test.php +++ b/cake/tests/cases/libs/controller/scaffold.test.php @@ -485,7 +485,7 @@ class ScaffoldViewTest extends CakeTestCase { function testEditScaffold() { $this->Controller->request->base = ''; $this->Controller->request->webroot = '/'; - $this->Controller->request->here = '/scaffold_mock'; + $this->Controller->request->here = '/scaffold_mock/edit/1'; $params = array( 'plugin' => null, diff --git a/cake/tests/lib/controller_test_case.php b/cake/tests/lib/controller_test_case.php index 150bf12a5..76d34f310 100644 --- a/cake/tests/lib/controller_test_case.php +++ b/cake/tests/lib/controller_test_case.php @@ -171,6 +171,7 @@ class ControllerTestCase extends CakeTestCase { * Tests a controller action. * * ### Options: + * * - `data` POST or GET data to pass * - `method` POST or GET *