diff --git a/cake/console/libs/tasks/controller.php b/cake/console/libs/tasks/controller.php index a32f60bc3..fb9a4bed5 100644 --- a/cake/console/libs/tasks/controller.php +++ b/cake/console/libs/tasks/controller.php @@ -59,7 +59,7 @@ class ControllerTask extends BakeTask { */ function execute() { if (empty($this->args)) { - $this->__interactive(); + return $this->__interactive(); } if (isset($this->args[0])) { @@ -178,7 +178,7 @@ class ControllerTask extends BakeTask { ); } } else { - list($wannaBakeCrud, $wannaBakeCrud) = $this->_askAboutMethods(); + list($wannaBakeCrud, $wannaBakeAdminCrud) = $this->_askAboutMethods(); } if (strtolower($wannaBakeCrud) == 'y') { @@ -189,6 +189,7 @@ class ControllerTask extends BakeTask { $actions .= $this->bakeActions($controllerName, $admin, strtolower($wannaUseSession) == 'y'); } + $baked = false; if ($this->interactive === true) { $this->confirmController($controllerName, $useDynamicScaffold, $helpers, $components); $looksGood = $this->in(__('Look okay?', true), array('y','n'), 'y'); @@ -205,6 +206,7 @@ class ControllerTask extends BakeTask { $this->bakeTest($controllerName); } } + return $baked; } /** diff --git a/cake/tests/cases/console/libs/tasks/controller.test.php b/cake/tests/cases/console/libs/tasks/controller.test.php index 13b45d7cb..afd575038 100644 --- a/cake/tests/cases/console/libs/tasks/controller.test.php +++ b/cake/tests/cases/console/libs/tasks/controller.test.php @@ -320,20 +320,20 @@ class ControllerTaskTest extends CakeTestCase { $this->assertTrue(strpos($result, "\$this->set('articles', \$this->paginate());") !== false); $this->assertTrue(strpos($result, 'function view($id = null)') !== false); - $this->assertTrue(strpos($result, "\$this->Session->setFlash(sprintf(__('Invalid %s', true), 'article'));") !== false); + $this->assertTrue(strpos($result, "\$this->Session->setFlash(__('Invalid article', true));") !== false); $this->assertTrue(strpos($result, "\$this->set('article', \$this->Article->read(null, \$id)") !== false); $this->assertTrue(strpos($result, 'function add()') !== false); $this->assertTrue(strpos($result, 'if (!empty($this->data))') !== false); $this->assertTrue(strpos($result, 'if ($this->Article->save($this->data))') !== false); - $this->assertTrue(strpos($result, "\$this->Session->setFlash(sprintf(__('The %s has been saved', true), 'article'));") !== false); + $this->assertTrue(strpos($result, "\$this->Session->setFlash(__('The article has been saved', true));") !== false); $this->assertTrue(strpos($result, 'function edit($id = null)') !== false); - $this->assertTrue(strpos($result, "\$this->Session->setFlash(sprintf(__('The %s could not be saved. Please, try again.', true), 'article'));") !== false); + $this->assertTrue(strpos($result, "\$this->Session->setFlash(__('The article could not be saved. Please, try again.', true));") !== false); $this->assertTrue(strpos($result, 'function delete($id = null)') !== false); $this->assertTrue(strpos($result, 'if ($this->Article->delete($id))') !== false); - $this->assertTrue(strpos($result, "\$this->Session->setFlash(sprintf(__('%s deleted', true), 'Article'));") !== false); + $this->assertTrue(strpos($result, "\$this->Session->setFlash(__('Article deleted', true));") !== false); $result = $this->Task->bakeActions('Articles', 'admin_', true); @@ -363,13 +363,13 @@ class ControllerTaskTest extends CakeTestCase { $this->assertTrue(strpos($result, "\$this->set('articles', \$this->paginate());") !== false); $this->assertTrue(strpos($result, 'function view($id = null)') !== false); - $this->assertTrue(strpos($result, "\$this->flash(sprintf(__('Invalid %s', true), 'article'), array('action' => 'index'))") !== false); + $this->assertTrue(strpos($result, "\$this->flash(__('Invalid article', true), array('action' => 'index'))") !== false); $this->assertTrue(strpos($result, "\$this->set('article', \$this->Article->read(null, \$id)") !== false); $this->assertTrue(strpos($result, 'function add()') !== false); $this->assertTrue(strpos($result, 'if (!empty($this->data))') !== false); $this->assertTrue(strpos($result, 'if ($this->Article->save($this->data))') !== false); - $this->assertTrue(strpos($result, "\$this->flash(sprintf(__('The %s has been saved.', true), 'article'), array('action' => 'index'))") !== false); + $this->assertTrue(strpos($result, "\$this->flash(__('The article has been saved.', true), array('action' => 'index'))") !== false); $this->assertTrue(strpos($result, 'function edit($id = null)') !== false); $this->assertTrue(strpos($result, "\$this->Article->Tag->find('list')") !== false); @@ -377,7 +377,7 @@ class ControllerTaskTest extends CakeTestCase { $this->assertTrue(strpos($result, 'function delete($id = null)') !== false); $this->assertTrue(strpos($result, 'if ($this->Article->delete($id))') !== false); - $this->assertTrue(strpos($result, "\$this->flash(sprintf(__('%s deleted', true), 'Article'), array('action' => 'index'))") !== false); + $this->assertTrue(strpos($result, "\$this->flash(__('Article deleted', true), array('action' => 'index'))") !== false); } /** @@ -424,6 +424,35 @@ class ControllerTaskTest extends CakeTestCase { $this->Task->expectAt(0, 'createFile', array($filename, new PatternExpectation('/class ArticlesController/'))); } +/** + * test Interactive mode. + * + * @return void + * @access public + */ + function testInteractiveAdminMethodsNotInteractive() { + $this->Task->connection = 'test_suite'; + $this->Task->interactive = true; + $this->Task->path = '/my/path'; + $this->Task->setReturnValue('in', '1'); + $this->Task->setReturnValueAt(1, 'in', 'y'); // build interactive + $this->Task->setReturnValueAt(2, 'in', 'n'); // build no scaffolds + $this->Task->setReturnValueAt(3, 'in', 'y'); // build normal methods + $this->Task->setReturnValueAt(4, 'in', 'y'); // build admin methods + $this->Task->setReturnValueAt(5, 'in', 'n'); // helpers? + $this->Task->setReturnValueAt(6, 'in', 'n'); // components? + $this->Task->setReturnValueAt(7, 'in', 'y'); // use sessions + $this->Task->setReturnValueAt(8, 'in', 'y'); // looks good + $this->Task->setReturnValue('createFile', true); + $this->Task->Project->setReturnValue('getPrefix', 'admin_'); + + $result = $this->Task->execute(); + $this->assertPattern('/admin_index/', $result); + + $filename = '/my/path/articles_controller.php'; + $this->Task->expectAt(0, 'createFile', array($filename, new PatternExpectation('/class ArticlesController/'))); + } + /** * test that execute runs all when the first arg == all *