示例#1
0
// propel:*
$content = $c->execute_command('propel:build-sql');
$t->ok(file_exists($c->tmp_dir . DS . 'data' . DS . 'sql' . DS . 'lib.model.schema.sql'), '"propel:build-sql" creates a "schema.sql" file under "data/sql" directory');
$content = $c->execute_command('propel:build-model');
$t->ok(file_exists($c->tmp_dir . DS . 'lib' . DS . 'model' . DS . 'Article.php'), '"propel:build-model" creates model classes under "lib/model" directory');
$content = $c->execute_command('propel:build-form');
$t->ok(file_exists($c->tmp_dir . DS . 'lib' . DS . 'form' . DS . DS . 'BaseFormPropel.class.php'), '"propel:build-form" creates form classes under "lib/form" directory');
$c->execute_command('propel:insert-sql --no-confirmation');
$t->ok(file_exists($c->tmp_dir . DS . 'data' . DS . 'database.sqlite'), '"propel:insert-sql" creates tables in the database');
$content = $c->execute_command('propel:generate-module --generate-in-cache frontend articleInitCrud Article');
$t->ok(file_exists($c->tmp_dir . DS . 'apps' . DS . 'frontend' . DS . 'modules' . DS . 'articleInitCrud' . DS . 'config' . DS . 'generator.yml'), '"propel:generate-module" initializes a CRUD module');
$content = $c->execute_command('propel:init-admin frontend articleInitAdmin Article');
$t->ok(file_exists($c->tmp_dir . DS . 'apps' . DS . 'frontend' . DS . 'modules' . DS . 'articleInitAdmin' . DS . 'config' . DS . 'generator.yml'), '"propel:init-admin" initializes an admin generator module');
// test:*
$content = $c->execute_command('test:functional frontend articleInitCrudActions');
$t->is($content, $c->get_fixture_content('test/functional/result.txt'), '"test:functional" can launch a particular functional test');
$content = $c->execute_command('test:functional frontend', 1);
$t->is($content, $c->get_fixture_content('test/functional/result-harness.txt'), '"test:functional" can launch all functional tests');
copy(dirname(__FILE__) . '/fixtures/test/unit/testTest.php', $c->tmp_dir . DS . 'test' . DS . 'unit' . DS . 'testTest.php');
$content = $c->execute_command('test:unit test');
$t->is($content, $c->get_fixture_content('/test/unit/result.txt'), '"test:unit" can launch a particular unit test');
$content = $c->execute_command('test:unit');
$t->is($content, $c->get_fixture_content('test/unit/result-harness.txt'), '"test:unit" can launch all unit tests');
$content = $c->execute_command('test:all', 1);
$t->is($content, $c->get_fixture_content('test/result-harness.txt'), '"test:all" launches all unit and functional tests');
$content = $c->execute_command(sprintf('project:freeze %s', realpath(dirname(__FILE__) . '/../../data')));
$t->like(file_get_contents($c->tmp_dir . DS . 'config' . DS . 'ProjectConfiguration.class.php'), '/dirname\\(__FILE__\\)/', '"project:freeze" freezes symfony lib and data dir into the project directory');
$content = $c->execute_command('project:unfreeze');
$t->unlike(file_get_contents($c->tmp_dir . DS . 'config' . DS . 'ProjectConfiguration.class.php'), '/dirname\\(__FILE__\\)/', '"project:unfreeze" unfreezes symfony lib and data dir');
$content = $c->execute_command('cache:clear');
// Test task autoloading
示例#2
0
$c = new sf_test_project();
$c->initialize($t);
// generate:*
$content = $c->execute_command('generate:project myproject --orm=Doctrine');
$t->ok(file_exists($c->tmp_dir . DS . 'symfony'), '"generate:project" installs the symfony CLI in root project directory');
$content = $c->execute_command('generate:app frontend');
$t->ok(is_dir($c->tmp_dir . DS . 'apps' . DS . 'frontend'), '"generate:app" creates a "frontend" directory under "apps" directory');
$t->like(file_get_contents($c->tmp_dir . '/apps/frontend/config/settings.yml'), '/escaping_strategy: +true/', '"generate:app" switches escaping_strategy "on" by default');
$t->like(file_get_contents($c->tmp_dir . '/apps/frontend/config/settings.yml'), '/csrf_secret: +\\w+/', '"generate:app" generates a csrf_token by default');
$content = $c->execute_command('generate:app backend --escaping-strategy=false --csrf-secret=false');
$t->like(file_get_contents($c->tmp_dir . '/apps/backend/config/settings.yml'), '/escaping_strategy: +false/', '"generate:app" switches escaping_strategy "false"');
$t->like(file_get_contents($c->tmp_dir . '/apps/backend/config/settings.yml'), '/csrf_secret: +false/', '"generate:app" switches csrf_token to "false"');
// failing
$content = $c->execute_command('generate:module wrongapp foo', 1);
$content = $c->execute_command('generate:module frontend foo');
$t->ok(is_dir($c->tmp_dir . DS . 'apps' . DS . 'frontend' . DS . 'modules' . DS . 'foo'), '"generate:module" creates a "foo" directory under "modules" directory');
copy(__DIR__ . '/fixtures/factories.yml', $c->tmp_dir . DS . 'apps' . DS . 'frontend' . DS . 'config' . DS . 'factories.yml');
// test:*
copy(__DIR__ . '/fixtures/test/unit/testTest.php', $c->tmp_dir . DS . 'test' . DS . 'unit' . DS . 'testTest.php');
$content = $c->execute_command('test:unit test');
$t->is($content, $c->get_fixture_content('/test/unit/result.txt'), '"test:unit" can launch a particular unit test');
$content = $c->execute_command('test:unit');
$t->is($content, $c->get_fixture_content('test/unit/result-harness.txt'), '"test:unit" can launch all unit tests');
$content = $c->execute_command('cache:clear');
// Test task autoloading
mkdir($c->tmp_dir . DS . 'lib' . DS . 'task');
mkdir($pluginDir = $c->tmp_dir . DS . 'plugins' . DS . 'myFooPlugin' . DS . 'lib' . DS . 'task', 0777, true);
copy(__DIR__ . '/fixtures/task/myPluginTask.class.php', $pluginDir . DS . 'myPluginTask.class.php');
file_put_contents($projectConfigurationFile = $c->tmp_dir . DS . 'config' . DS . 'ProjectConfiguration.class.php', str_replace('$this->enablePlugins(\'sfDoctrinePlugin\')', '$this->enablePlugins(array(\'sfDoctrinePlugin\', \'myFooPlugin\'))', file_get_contents($projectConfigurationFile)));
$c->execute_command('p:run');
$c->shutdown();