diff options
Diffstat (limited to 'framework')
-rwxr-xr-x | framework/prado-cli.php | 78 |
1 files changed, 75 insertions, 3 deletions
diff --git a/framework/prado-cli.php b/framework/prado-cli.php index f8ce826c..8d629140 100755 --- a/framework/prado-cli.php +++ b/framework/prado-cli.php @@ -10,12 +10,16 @@ if(!isset($_SERVER['argv'])) //command line options. $options['create'] = array('c:', 'create=', '<directory>', 'create a new project <directory>'); +$options['tests'] = array('t', 'create-tests', '', 'create unit and function test fixtures'); + $console = new ConsoleOptions($options, $_SERVER['argv']); if($console->hasOptions()) { if($dir = $console->getOption('create')) create_new_prado_project($dir); + if($console->getOptions('tests')) + create_test_fixtures($dir); } else { @@ -51,15 +55,77 @@ function create_new_prado_project($dir) $htaccessFile = $protectedPath.'/.htaccess'; $defaultPageFile = $pagesPath.'/Home.page'; + $tests = $basePath.'/tests'; + $unit_tests = $tests.'/unit'; + $functional_tests = $tests.'/functional'; + create_directory($basePath, 0755); create_directory($assetPath,0777); create_directory($protectedPath,0755); create_directory($runtimePath,0777); create_directory($pagesPath,0755); + + create_directory($tests,0755); + create_directory($unit_tests,0755); + create_directory($functional_tests,0755); + + create_file($indexFile, render_index_file()); + create_file($htaccessFile, render_htaccess_file()); + create_file($defaultPageFile, render_default_page()); +} + +function create_test_fixtures($dir) +{ + if(strlen(trim($dir)) == 0) + return; - file_put_contents($indexFile, render_index_file()); - file_put_contents($htaccessFile, render_htaccess_file()); - file_put_contents($defaultPageFile, render_default_page()); + $rootPath = realpath(dirname(trim($dir))); + $basePath = $rootPath.'/'.basename($dir); + + $tests = $basePath.'/tests'; + $unit_tests = $tests.'/unit'; + $functional_tests = $tests.'/functional'; + + create_directory($tests,0755); + create_directory($unit_tests,0755); + create_directory($functional_tests,0755); + + $unit_test_index = $tests.'/unit.php'; + $functional_test_index = $tests.'/functional.php'; + + create_file($unit_test_index, render_unit_test_fixture()); + create_file($functional_test_index, render_functional_test_fixture()); +} + +function render_unit_test_fixture() +{ + $tester = realpath(dirname(__FILE__).'/../tests/test_tools/unit_tests.php'); +return '<?php + +include_once "'.$tester.'"; + +$app_directory = "../protected"; +$test_cases = dirname(__FILE__)."/unit"; + +$tester = new PradoUnitTester($test_cases, $app_directory); +$tester->run(new HtmlReporter()); + +?>'; +} + +function render_functional_test_fixture() +{ + $tester = realpath(dirname(__FILE__).'/../tests/test_tools/functional_tests.php'); +return '<?php + +include_once "'.$tester.'"; + +$test_cases = dirname(__FILE__)."/functional"; + +$tester=new PradoFunctionalTester($test_cases); +$tester->run(new SimpleReporter()); + +?>'; } function create_directory($dir, $mask) @@ -70,6 +136,12 @@ function create_directory($dir, $mask) chmod($dir, $mask); } +function create_file($filename, $content) +{ + if(!is_file($filename)) + file_put_contents($filename, $content); +} + function render_index_file() { $framework = realpath(dirname(__FILE__)).'/prado.php'; |