mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2025-01-19 02:56:15 +00:00
Merge pull request #4122 from chinpei215/master-scaffold-error-fix
Fix a fatal error occurs in combination with a scaffold error.
This commit is contained in:
commit
a6caf28ea6
2 changed files with 76 additions and 3 deletions
|
@ -63,7 +63,7 @@ class ScaffoldMockControllerWithFields extends Controller {
|
||||||
/**
|
/**
|
||||||
* function beforeScaffold
|
* function beforeScaffold
|
||||||
*
|
*
|
||||||
* @param string method
|
* @param string $method Method name.
|
||||||
* @return bool true
|
* @return bool true
|
||||||
*/
|
*/
|
||||||
public function beforeScaffold($method) {
|
public function beforeScaffold($method) {
|
||||||
|
@ -73,6 +73,39 @@ class ScaffoldMockControllerWithFields extends Controller {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ScaffoldMockControllerWithError class
|
||||||
|
*
|
||||||
|
* @package Cake.Test.Case.Controller
|
||||||
|
*/
|
||||||
|
class ScaffoldMockControllerWithError extends Controller {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* name property
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $name = 'ScaffoldMock';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* scaffold property
|
||||||
|
*
|
||||||
|
* @var mixed
|
||||||
|
*/
|
||||||
|
public $scaffold;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* function beforeScaffold
|
||||||
|
*
|
||||||
|
* @param string $method Method name.
|
||||||
|
* @return bool false
|
||||||
|
*/
|
||||||
|
public function beforeScaffold($method) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TestScaffoldMock class
|
* TestScaffoldMock class
|
||||||
*
|
*
|
||||||
|
@ -83,7 +116,7 @@ class TestScaffoldMock extends Scaffold {
|
||||||
/**
|
/**
|
||||||
* Overload _scaffold
|
* Overload _scaffold
|
||||||
*
|
*
|
||||||
* @param CakeRequest $request
|
* @param CakeRequest $request Request object for scaffolding
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
protected function _scaffold(CakeRequest $request) {
|
protected function _scaffold(CakeRequest $request) {
|
||||||
|
@ -344,4 +377,40 @@ class ScaffoldTest extends CakeTestCase {
|
||||||
$this->assertNotRegExp('/textarea name="data\[ScaffoldMock\]\[body\]" cols="30" rows="6" id="ScaffoldMockBody"/', $result);
|
$this->assertNotRegExp('/textarea name="data\[ScaffoldMock\]\[body\]" cols="30" rows="6" id="ScaffoldMockBody"/', $result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* test in case of scaffold error
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testScaffoldError() {
|
||||||
|
$request = new CakeRequest(null, false);
|
||||||
|
$this->Controller = new ScaffoldMockControllerWithError($request);
|
||||||
|
$this->Controller->response = $this->getMock('CakeResponse', array('_sendHeader'));
|
||||||
|
|
||||||
|
$params = array(
|
||||||
|
'plugin' => null,
|
||||||
|
'pass' => array(1),
|
||||||
|
'form' => array(),
|
||||||
|
'named' => array(),
|
||||||
|
'url' => array('url' => 'scaffold_mock/edit'),
|
||||||
|
'controller' => 'scaffold_mock',
|
||||||
|
'action' => 'edit',
|
||||||
|
);
|
||||||
|
$this->Controller->request->base = '';
|
||||||
|
$this->Controller->request->webroot = '/';
|
||||||
|
$this->Controller->request->here = '/scaffold_mock/edit';
|
||||||
|
$this->Controller->request->addParams($params);
|
||||||
|
|
||||||
|
//set router.
|
||||||
|
Router::reload();
|
||||||
|
Router::setRequestInfo($this->Controller->request);
|
||||||
|
|
||||||
|
$this->Controller->constructClasses();
|
||||||
|
ob_start();
|
||||||
|
new Scaffold($this->Controller, $this->Controller->request);
|
||||||
|
$this->Controller->response->send();
|
||||||
|
$result = ob_get_clean();
|
||||||
|
|
||||||
|
$this->assertRegExp('/Scaffold Error/', $result);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,4 +31,8 @@ function _scaffoldError() {<br />
|
||||||
|
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<?php echo $this->element('exception_stack_trace'); ?>
|
<?php
|
||||||
|
if (isset($error) && $error instanceof Exception) {
|
||||||
|
echo $this->element('exception_stack_trace');
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
Loading…
Add table
Reference in a new issue