Fixing failing tests, and issues around Controller::$view not getting

set properly.
This commit is contained in:
mark_story 2011-03-09 07:31:11 -05:00
parent de57802f05
commit c8f33b77a1
4 changed files with 12 additions and 5 deletions

View file

@ -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']);
}

View file

@ -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;

View file

@ -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,

View file

@ -171,6 +171,7 @@ class ControllerTestCase extends CakeTestCase {
* Tests a controller action.
*
* ### Options:
*
* - `data` POST or GET data to pass
* - `method` POST or GET
*