From 8da880c394b8e91d9797e1f1dfc384f2b46b910f Mon Sep 17 00:00:00 2001 From: Jakub Zalas Date: Thu, 24 May 2012 23:58:50 +0100 Subject: [PATCH] Fixed notice in AddCacheWarmerPass if there is no cache warmer defined. --- .../Compiler/AddCacheWarmerPass.php | 4 ++++ .../Compiler/AddCacheWarmerPassTest.php | 20 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddCacheWarmerPass.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddCacheWarmerPass.php index abd7b2c00c..a143b557b5 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddCacheWarmerPass.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddCacheWarmerPass.php @@ -37,6 +37,10 @@ class AddCacheWarmerPass implements CompilerPassInterface $warmers[$priority][] = new Reference($id); } + if (empty($warmers)) { + return; + } + // sort by priority and flatten krsort($warmers); $warmers = call_user_func_array('array_merge', $warmers); diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/AddCacheWarmerPassTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/AddCacheWarmerPassTest.php index aac8276a68..03eacc3636 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/AddCacheWarmerPassTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/AddCacheWarmerPassTest.php @@ -69,4 +69,24 @@ class AddCacheWarmerPassTest extends \PHPUnit_Framework_TestCase $addCacheWarmerPass = new AddCacheWarmerPass(); $addCacheWarmerPass->process($container); } + + public function testThatCacheWarmersMightBeNotDefined() + { + $definition = $this->getMock('Symfony\Component\DependencyInjection\Definition'); + $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerBuilder'); + + $container->expects($this->atLeastOnce()) + ->method('findTaggedServiceIds') + ->will($this->returnValue(array())); + $container->expects($this->never())->method('getDefinition'); + $container->expects($this->atLeastOnce()) + ->method('hasDefinition') + ->with('cache_warmer') + ->will($this->returnValue(true)); + + $definition->expects($this->never())->method('replaceArgument'); + + $addCacheWarmerPass = new AddCacheWarmerPass(); + $addCacheWarmerPass->process($container); + } }