Fixing TestTask not being able to find plugin objects when baking test skeletons interactively. Test case added. Fixes #1361

This commit is contained in:
mark_story 2010-12-13 22:00:37 -05:00
parent 5ffc84d28a
commit e410509684
3 changed files with 38 additions and 3 deletions

View file

@ -181,7 +181,20 @@ class TestTask extends BakeTask {
* @access public
*/
function getClassName($objectType) {
$options = App::objects(strtolower($objectType));
$type = strtolower($objectType);
if ($this->plugin) {
$path = Inflector::pluralize($type);
if ($type === 'helper') {
$path = 'views' . DS . $path;
} elseif ($type === 'component') {
$path = 'controllers' . DS . $path;
} elseif ($type === 'behavior') {
$path = 'models' . DS . $path;
}
$options = App::objects($type, App::pluginPath($this->plugin) . $path, false);
} else {
$options = App::objects($type);
}
$this->out(sprintf(__('Choose a %s class', true), $objectType));
$keys = array();
foreach ($options as $key => $option) {

View file

@ -44,7 +44,7 @@ Mock::generatePartial(
);
Mock::generatePartial(
'TestTask', 'MockTestTask',
array('in', '_stop', 'err', 'out', 'createFile', 'isLoadableClass')
array('in', '_stop', 'err', 'out', 'hr', 'createFile', 'isLoadableClass')
);
/**
@ -278,6 +278,7 @@ class TestTaskTest extends CakeTestCase {
*/
function endTest() {
ClassRegistry::flush();
App::build();
}
/**
@ -560,6 +561,26 @@ class TestTaskTest extends CakeTestCase {
$this->Task->bake('Helper', 'Form');
}
/**
* test interactive with plugins lists from the plugin
*
* @return void
*/
function testInteractiveWithPlugin() {
$testApp = TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS;
App::build(array(
'plugins' => array($testApp)
), true);
$this->Task->plugin = 'TestPlugin';
$path = $testApp . 'test_plugin' . DS . 'tests' . DS . 'cases' . DS . 'helpers' . DS . 'other_helper.test.php';
$this->Task->setReturnValueAt(0, 'in', 5); //helper
$this->Task->setReturnValueAt(1, 'in', 1); //OtherHelper
$this->Task->expectAt(0, 'createFile', array($path, '*'));
$this->Task->expectAt(9, 'out', array('1. OtherHelper'));
$this->Task->execute();
}
/**
* Test filename generation for each type + plugins
*

View file

@ -211,7 +211,8 @@ class DbAroUserTest extends CakeTestModel {
* @access public
*/
var $useTable = 'auth_users';
/**
/**
* bindNode method
*
* @param mixed $ref