Преглед изворни кода

Fixed notice in AddCacheWarmerPass if there is no cache warmer defined.

Jakub Zalas пре 13 година
родитељ
комит
8da880c394

+ 4 - 0
src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddCacheWarmerPass.php

@@ -37,6 +37,10 @@ class AddCacheWarmerPass implements CompilerPassInterface
             $warmers[$priority][] = new Reference($id);
             $warmers[$priority][] = new Reference($id);
         }
         }
 
 
+        if (empty($warmers)) {
+            return;
+        }
+
         // sort by priority and flatten
         // sort by priority and flatten
         krsort($warmers);
         krsort($warmers);
         $warmers = call_user_func_array('array_merge', $warmers);
         $warmers = call_user_func_array('array_merge', $warmers);

+ 20 - 0
src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/AddCacheWarmerPassTest.php

@@ -69,4 +69,24 @@ class AddCacheWarmerPassTest extends \PHPUnit_Framework_TestCase
         $addCacheWarmerPass = new AddCacheWarmerPass();
         $addCacheWarmerPass = new AddCacheWarmerPass();
         $addCacheWarmerPass->process($container);
         $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);
+    }
 }
 }