mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
[2.x]Fix can't load aliased component on ControllerTestCase
This commit is contained in:
parent
51206d7358
commit
74a8611eef
3 changed files with 67 additions and 3 deletions
|
@ -79,6 +79,12 @@ if (!class_exists('PostsController')) {
|
||||||
public $components = array(
|
public $components = array(
|
||||||
'RequestHandler',
|
'RequestHandler',
|
||||||
'Email',
|
'Email',
|
||||||
|
'AliasedEmail' => array(
|
||||||
|
'className' => 'Email',
|
||||||
|
),
|
||||||
|
'AliasedPluginEmail' => array(
|
||||||
|
'className' => 'TestPlugin.TestPluginEmail',
|
||||||
|
),
|
||||||
'Auth'
|
'Auth'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -270,6 +276,46 @@ class ControllerTestCaseTest extends CakeTestCase {
|
||||||
$this->assertFalse($Tests->TestPluginComment->save(array()));
|
$this->assertFalse($Tests->TestPluginComment->save(array()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests ControllerTestCase::generate() using aliased component
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testGenerateWithMockedAliasedComponent()
|
||||||
|
{
|
||||||
|
$Posts = $this->Case->generate('Posts', array(
|
||||||
|
'components' => array(
|
||||||
|
'AliasedEmail' => array('send')
|
||||||
|
)
|
||||||
|
));
|
||||||
|
$Posts->AliasedEmail->expects($this->once())
|
||||||
|
->method('send')
|
||||||
|
->will($this->returnValue(true));
|
||||||
|
|
||||||
|
$this->assertInstanceOf('EmailComponent', $Posts->AliasedEmail);
|
||||||
|
$this->assertTrue($Posts->AliasedEmail->send());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests ControllerTestCase::generate() using aliased plugin component
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testGenerateWithMockedAliasedPluginComponent()
|
||||||
|
{
|
||||||
|
$Posts = $this->Case->generate('Posts', array(
|
||||||
|
'components' => array(
|
||||||
|
'AliasedPluginEmail' => array('send')
|
||||||
|
)
|
||||||
|
));
|
||||||
|
$Posts->AliasedPluginEmail->expects($this->once())
|
||||||
|
->method('send')
|
||||||
|
->will($this->returnValue(true));
|
||||||
|
|
||||||
|
$this->assertInstanceOf('TestPluginEmailComponent', $Posts->AliasedPluginEmail);
|
||||||
|
$this->assertTrue($Posts->AliasedPluginEmail->send());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests testAction
|
* Tests testAction
|
||||||
*
|
*
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?php
|
||||||
|
App::uses('EmailComponent', 'Controller/Component');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TestPluginEmailComponent
|
||||||
|
*
|
||||||
|
* @package Cake.Test.TestApp.Plugin.TestPlugin.Controller.Component
|
||||||
|
*/
|
||||||
|
class TestPluginEmailComponent extends EmailComponent {
|
||||||
|
}
|
|
@ -388,7 +388,15 @@ abstract class ControllerTestCase extends CakeTestCase {
|
||||||
if ($methods === true) {
|
if ($methods === true) {
|
||||||
$methods = array();
|
$methods = array();
|
||||||
}
|
}
|
||||||
|
$config = isset($controllerObj->components[$component]) ? $controllerObj->components[$component] : array();
|
||||||
|
if (isset($config['className'])) {
|
||||||
|
$alias = $component;
|
||||||
|
$component = $config['className'];
|
||||||
|
}
|
||||||
list($plugin, $name) = pluginSplit($component, true);
|
list($plugin, $name) = pluginSplit($component, true);
|
||||||
|
if (!isset($alias)) {
|
||||||
|
$alias = $name;
|
||||||
|
}
|
||||||
$componentClass = $name . 'Component';
|
$componentClass = $name . 'Component';
|
||||||
App::uses($componentClass, $plugin . 'Controller/Component');
|
App::uses($componentClass, $plugin . 'Controller/Component');
|
||||||
if (!class_exists($componentClass)) {
|
if (!class_exists($componentClass)) {
|
||||||
|
@ -396,11 +404,11 @@ abstract class ControllerTestCase extends CakeTestCase {
|
||||||
'class' => $componentClass
|
'class' => $componentClass
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
$config = isset($controllerObj->components[$component]) ? $controllerObj->components[$component] : array();
|
|
||||||
/** @var Component|PHPUnit_Framework_MockObject_MockObject $componentObj */
|
/** @var Component|PHPUnit_Framework_MockObject_MockObject $componentObj */
|
||||||
$componentObj = $this->getMock($componentClass, $methods, array($controllerObj->Components, $config));
|
$componentObj = $this->getMock($componentClass, $methods, array($controllerObj->Components, $config));
|
||||||
$controllerObj->Components->set($name, $componentObj);
|
$controllerObj->Components->set($alias, $componentObj);
|
||||||
$controllerObj->Components->enable($name);
|
$controllerObj->Components->enable($alias);
|
||||||
|
unset($alias);
|
||||||
}
|
}
|
||||||
|
|
||||||
$controllerObj->constructClasses();
|
$controllerObj->constructClasses();
|
||||||
|
|
Loading…
Reference in a new issue