diff options
Diffstat (limited to 'framework/prado-cli.php')
| -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'; | 
