示例#1
0
 /**
  * testParseParams method
  *
  * @return void
  */
 public 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', 'webroot' => 'webroot', 'working' => str_replace('/', DS, '/var/www/htdocs/new'), 'root' => str_replace('/', DS, '/var/www/htdocs'));
     $Dispatcher->parseParams($params);
     $this->assertEquals($expected, $Dispatcher->params);
     $params = array('cake.php');
     $expected = array('app' => 'app', 'webroot' => 'webroot', 'working' => str_replace('\\', DS, dirname(CAKE_CORE_INCLUDE_PATH) . DS . 'app'), 'root' => str_replace('\\', DS, dirname(CAKE_CORE_INCLUDE_PATH)));
     $Dispatcher->params = $Dispatcher->args = array();
     $Dispatcher->parseParams($params);
     $this->assertEquals($expected, $Dispatcher->params);
     $params = array('cake.php', '-app', 'new');
     $expected = array('app' => 'new', 'webroot' => 'webroot', 'working' => str_replace('\\', DS, dirname(CAKE_CORE_INCLUDE_PATH) . DS . 'new'), 'root' => str_replace('\\', DS, dirname(CAKE_CORE_INCLUDE_PATH)));
     $Dispatcher->params = $Dispatcher->args = array();
     $Dispatcher->parseParams($params);
     $this->assertEquals($expected, $Dispatcher->params);
     $params = array('./cake.php', 'bake', '-app', 'new', '-working', '/cake/1.2.x.x/cake/console');
     $expected = array('app' => 'new', 'webroot' => 'webroot', 'working' => str_replace('\\', DS, dirname(CAKE_CORE_INCLUDE_PATH) . DS . 'new'), 'root' => str_replace('\\', DS, dirname(CAKE_CORE_INCLUDE_PATH)));
     $Dispatcher->params = $Dispatcher->args = array();
     $Dispatcher->parseParams($params);
     $this->assertEquals($expected, $Dispatcher->params);
     $params = array('./console/cake.php', 'bake', '-app', 'new', '-working', '/cake/1.2.x.x/cake');
     $expected = array('app' => 'new', 'webroot' => 'webroot', 'working' => str_replace('\\', DS, dirname(CAKE_CORE_INCLUDE_PATH) . DS . 'new'), 'root' => str_replace('\\', DS, dirname(CAKE_CORE_INCLUDE_PATH)));
     $Dispatcher->params = $Dispatcher->args = array();
     $Dispatcher->parseParams($params);
     $this->assertEquals($expected, $Dispatcher->params);
     $params = array('./console/cake.php', 'bake', '-app', 'new', '-dry', '-working', '/cake/1.2.x.x/cake');
     $expected = array('app' => 'new', 'working' => str_replace('\\', DS, dirname(CAKE_CORE_INCLUDE_PATH) . DS . 'new'), 'root' => str_replace('\\', DS, dirname(CAKE_CORE_INCLUDE_PATH)), 'webroot' => 'webroot');
     $Dispatcher->params = $Dispatcher->args = array();
     $Dispatcher->parseParams($params);
     $this->assertEquals($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', 'webroot' => 'webroot', 'working' => str_replace('\\', DS, dirname(CAKE_CORE_INCLUDE_PATH) . DS . 'app'), 'root' => str_replace('\\', DS, dirname(CAKE_CORE_INCLUDE_PATH)));
     $Dispatcher->params = $Dispatcher->args = array();
     $Dispatcher->parseParams($params);
     $this->assertEquals($expected, $Dispatcher->params);
     $expected = array('./console/cake.php', 'schema', 'run', 'create', '-dry', '-f', '-name', 'DbAcl');
     $this->assertEquals($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', 'webroot' => 'webroot', 'working' => str_replace('/', DS, '/cake/1.2.x.x/app'), 'root' => str_replace('/', DS, '/cake/1.2.x.x'));
     $Dispatcher->params = $Dispatcher->args = array();
     $Dispatcher->parseParams($params);
     $this->assertEquals($expected, $Dispatcher->params);
     $params = array('cake.php', '-working', 'C:/wamp/www/cake/app', 'bake', '-app', 'C:/wamp/www/apps/cake/app');
     $expected = array('app' => 'app', 'webroot' => 'webroot', 'working' => 'C:\\wamp\\www\\apps\\cake\\app', 'root' => 'C:\\wamp\\www\\apps\\cake');
     $Dispatcher->params = $Dispatcher->args = array();
     $Dispatcher->parseParams($params);
     $this->assertEquals($expected, $Dispatcher->params);
     $params = array('cake.php', '-working', 'C:\\wamp\\www\\cake\\app', 'bake', '-app', 'C:\\wamp\\www\\apps\\cake\\app');
     $expected = array('app' => 'app', 'webroot' => 'webroot', 'working' => 'C:\\wamp\\www\\apps\\cake\\app', 'root' => 'C:\\wamp\\www\\apps\\cake');
     $Dispatcher->params = $Dispatcher->args = array();
     $Dispatcher->parseParams($params);
     $this->assertEquals($expected, $Dispatcher->params);
     $params = array('cake.php', '-working', 'C:\\wamp\\www\\apps', 'bake', '-app', 'cake\\app', '-url', 'http://example.com/some/url/with/a/path');
     $expected = array('app' => 'app', 'webroot' => 'webroot', 'working' => 'C:\\wamp\\www\\apps\\cake\\app', 'root' => 'C:\\wamp\\www\\apps\\cake');
     $Dispatcher->params = $Dispatcher->args = array();
     $Dispatcher->parseParams($params);
     $this->assertEquals($expected, $Dispatcher->params);
     $params = array('/home/amelo/dev/cake-common/cake/console/cake.php', '-root', '/home/amelo/dev/lsbu-vacancy', '-working', '/home/amelo/dev/lsbu-vacancy', '-app', 'app');
     $expected = array('app' => 'app', 'webroot' => 'webroot', 'working' => '/home/amelo/dev/lsbu-vacancy/app', 'root' => '/home/amelo/dev/lsbu-vacancy');
     $Dispatcher->params = $Dispatcher->args = array();
     $Dispatcher->parseParams($params);
     $this->assertEquals($expected, $Dispatcher->params);
     $params = array('/cake/1.2.x.x/cake/console/cake.php', 'bake', '-app', 'new', '-app', 'old', '-working', '/var/www/htdocs');
     $expected = array('app' => 'old', 'webroot' => 'webroot', 'working' => str_replace('/', DS, '/var/www/htdocs/old'), 'root' => str_replace('/', DS, '/var/www/htdocs'));
     $Dispatcher->parseParams($params);
     $this->assertEquals($expected, $Dispatcher->params);
     if (DS === '\\') {
         $params = array('cake.php', '-working', 'D:\\www', 'bake', 'my_app');
         $expected = array('working' => 'D:\\\\www', 'app' => 'www', 'root' => 'D:\\', 'webroot' => 'webroot');
         $Dispatcher->params = $Dispatcher->args = array();
         $Dispatcher->parseParams($params);
         $this->assertEquals($expected, $Dispatcher->params);
     }
 }