* Copyright 2005-2007, Cake Software Foundation, Inc. * 1785 E. Sahara Avenue, Suite 490-204 * Las Vegas, Nevada 89104 * * Licensed under The Open Group Test Suite License * Redistributions of files must retain the above copyright notice. * * @filesource * @copyright Copyright 2005-2007, Cake Software Foundation, Inc. * @link https://trac.cakephp.org/wiki/Developement/TestSuite CakePHP(tm) Tests * @package cake.tests * @subpackage cake.tests.cases.console * @since CakePHP(tm) v 1.2.0.5432 * @version $Revision$ * @modifiedby $LastChangedBy$ * @lastmodified $Date$ * @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License */ if (!defined('DISABLE_AUTO_DISPATCH')) { define('DISABLE_AUTO_DISPATCH', true); } ob_start(); $argv = false; require CAKE . 'console' . DS . 'cake.php'; $out = ob_get_clean(); class TestShellDispatcher extends ShellDispatcher { var $params = array(); function __construct($args = array()) { set_time_limit(0); $this->__initConstants(); $this->parseParams($args); } } /** * Short description for class. * * @package cake.tests * @subpackage cake.tests.cases.libs */ class ShellDispatcherTest extends UnitTestCase { function testParseParams() { $Dispatcher =& new TestShellDispatcher(); $params = array('/cake/1.2.x.x/cake/console/cake.php', 'bake', '-app', 'new', '-working', '/var/www/htdocs' ); $expected = array('app' => 'new', 'working' => '/var/www/htdocs/new', 'root' => '/var/www/htdocs' ); $Dispatcher->parseParams($params); $this->assertEqual($expected, $Dispatcher->params); $params = array('cake.php'); $expected = array('app' => 'app', 'working' => ROOT . DS . 'app', 'root' => ROOT, ); $Dispatcher->params = $Dispatcher->args = array(); $Dispatcher->parseParams($params); $this->assertEqual($expected, $Dispatcher->params); $params = array('cake.php', '-app', 'new', ); $expected = array('app' => 'new', 'working' => ROOT . DS . 'new', 'root' => ROOT ); $Dispatcher->params = $Dispatcher->args = array(); $Dispatcher->parseParams($params); $this->assertEqual($expected, $Dispatcher->params); $params = array('./cake.php', 'bake', '-app', 'new', '-working', ' /cake/1.2.x.x/cake/console' ); $expected = array('app' => 'new', 'working' => ROOT . DS . 'new', 'root' => ROOT ); $Dispatcher->params = $Dispatcher->args = array(); $Dispatcher->parseParams($params); $this->assertEqual($expected, $Dispatcher->params); $params = array('./console/cake.php', 'bake', '-app', 'new', '-working', ' /cake/1.2.x.x/cake' ); $expected = array('app' => 'new', 'working' => ROOT . DS . 'new', 'root' => ROOT ); $Dispatcher->params = $Dispatcher->args = array(); $Dispatcher->parseParams($params); $this->assertEqual($expected, $Dispatcher->params); $params = array('./console/cake.php', 'bake', '-app', 'new', '-dry', '-working', ' /cake/1.2.x.x/cake' ); $expected = array('app' => 'new', 'working' => ROOT . DS . 'new', 'root' => ROOT, 'dry' => 1 ); $Dispatcher->params = $Dispatcher->args = array(); $Dispatcher->parseParams($params); $this->assertEqual($expected, $Dispatcher->params); $params = array('./console/cake.php', '-working', '/cake/1.2.x.x/cake', 'schema', 'run', 'create', '-dry', '-f', '-name', 'DbAcl' ); $expected = array('app' => 'app', 'working' => ROOT . DS . 'app', 'root' => ROOT, 'dry' => 1, 'f' => 1, 'name' => 'DbAcl' ); $Dispatcher->params = $Dispatcher->args = array(); $Dispatcher->parseParams($params); $this->assertEqual($expected, $Dispatcher->params); $expected = array('./console/cake.php', 'schema', 'run', 'create'); $this->assertEqual($expected, $Dispatcher->args); $params = array('/cake/1.2.x.x/cake/console/cake.php', '-working', '/cake/1.2.x.x/app', 'schema', 'run', 'create', '-dry', '-name', 'DbAcl' ); $expected = array('app' => 'app', 'working' => '/cake/1.2.x.x/app', 'root' => '/cake/1.2.x.x', 'dry' => 1, 'name' => 'DbAcl' ); $Dispatcher->params = $Dispatcher->args = array(); $Dispatcher->parseParams($params); $this->assertEqual($expected, $Dispatcher->params); $expected = array('/cake/1.2.x.x/cake/console/cake.php', 'schema', 'run', 'create'); $this->assertEqual($expected, $Dispatcher->args); } } ?>