diff --git a/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php b/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php index 499f39c6c95c0..27b22c81abbbb 100644 --- a/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php +++ b/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php @@ -81,7 +81,7 @@ public function build(ContainerBuilder $container) $container->addCompilerPass(new FormPass()); $container->addCompilerPass(new TranslatorPass()); $container->addCompilerPass(new LoggingTranslatorPass()); - $container->addCompilerPass(new AddCacheWarmerPass()); + $container->addCompilerPass(new AddCacheWarmerPass(), PassConfig::TYPE_OPTIMIZE); $container->addCompilerPass(new AddCacheClearerPass()); $container->addCompilerPass(new AddExpressionLanguageProvidersPass()); $container->addCompilerPass(new TranslationExtractorPass()); diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/CacheWarmer/CacheWarmer.php b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/CacheWarmer/CacheWarmer.php new file mode 100644 index 0000000000000..4d2ab62e4e68d --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/CacheWarmer/CacheWarmer.php @@ -0,0 +1,20 @@ +mkdir($cacheDir.'/cache_warmer'); + } + + public function isOptional() + { + return true; + } +} \ No newline at end of file diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/DependencyInjection/Compiler/CacheWarmerPass.php b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/DependencyInjection/Compiler/CacheWarmerPass.php new file mode 100644 index 0000000000000..18716a112770d --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/DependencyInjection/Compiler/CacheWarmerPass.php @@ -0,0 +1,16 @@ +hasDefinition('cache_warmer_test.cache_warmer')) { + $container->getDefinition('cache_warmer_test.cache_warmer')->addTag('kernel.cache_warmer'); + } + } +} \ No newline at end of file diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/TestBundle.php b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/TestBundle.php index e7982cfaab7cc..de7d9dea14978 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/TestBundle.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/Bundle/TestBundle/TestBundle.php @@ -11,6 +11,7 @@ namespace Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle; +use Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\DependencyInjection\Compiler\CacheWarmerPass; use Symfony\Component\HttpKernel\Bundle\Bundle; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\DependencyInjection\Config\CustomConfig; @@ -25,5 +26,7 @@ public function build(ContainerBuilder $container) $extension = $container->getExtension('test'); $extension->setCustomConfig(new CustomConfig()); + + $container->addCompilerPass(new CacheWarmerPass()); } } diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/CacheWarmerTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/CacheWarmerTest.php new file mode 100644 index 0000000000000..1eb53d0b5e174 --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/CacheWarmerTest.php @@ -0,0 +1,51 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Bundle\FrameworkBundle\Tests\Functional; + +use Symfony\Bundle\FrameworkBundle\Console\Application; +use Symfony\Component\Console\Input\ArrayInput; +use Symfony\Component\Console\Output\NullOutput; +use Symfony\Component\Console\Tester\CommandTester; + +class CacheWarmerTest extends WebTestCase +{ + /** + * @var Application + */ + private $application; + + protected function setUp() + { + $kernel = static::createKernel(array('test_case' => 'CacheWarmer', 'root_config' => 'config.yml')); + $this->application = new Application($kernel); + $this->application->doRun(new ArrayInput(array()), new NullOutput()); + } + + public function testCacheWarmer() + { + $tester = $this->createCommandTester(); + $tester->execute(array()); + + $cacheDirectory = $this->application->getKernel()->getCacheDir().'/cache_warmer'; + $this->assertTrue(file_exists($cacheDirectory), 'Cache directory does not exist.'); + } + + /** + * @return CommandTester + */ + private function createCommandTester() + { + $command = $this->application->find('cache:warmup'); + + return new CommandTester($command); + } +} diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/CacheWarmer/bundles.php b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/CacheWarmer/bundles.php new file mode 100644 index 0000000000000..351cf79d43231 --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/CacheWarmer/bundles.php @@ -0,0 +1,9 @@ +