Security update for Core, with self-updated composer
[yaffs-website] / vendor / symfony / dependency-injection / Tests / Compiler / RemoveUnusedDefinitionsPassTest.php
index 57dd42b487ab44223fca9752617d84f18da35913..c6f4e5e79d64d40f3757ba088bfda9d189a55b3f 100644 (file)
@@ -15,6 +15,7 @@ use PHPUnit\Framework\TestCase;
 use Symfony\Component\DependencyInjection\Compiler\AnalyzeServiceReferencesPass;
 use Symfony\Component\DependencyInjection\Compiler\RepeatedPass;
 use Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass;
+use Symfony\Component\DependencyInjection\Compiler\ResolveParameterPlaceHoldersPass;
 use Symfony\Component\DependencyInjection\Definition;
 use Symfony\Component\DependencyInjection\Reference;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
@@ -106,6 +107,28 @@ class RemoveUnusedDefinitionsPassTest extends TestCase
         $this->assertTrue($container->hasDefinition('foobar'));
     }
 
+    public function testProcessConsiderEnvVariablesAsUsedEvenInPrivateServices()
+    {
+        $container = new ContainerBuilder();
+        $container->setParameter('env(FOOBAR)', 'test');
+        $container
+            ->register('foo')
+            ->setArguments(array('%env(FOOBAR)%'))
+            ->setPublic(false)
+        ;
+
+        $resolvePass = new ResolveParameterPlaceHoldersPass();
+        $resolvePass->process($container);
+
+        $this->process($container);
+
+        $this->assertFalse($container->hasDefinition('foo'));
+
+        $envCounters = $container->getEnvCounters();
+        $this->assertArrayHasKey('FOOBAR', $envCounters);
+        $this->assertSame(1, $envCounters['FOOBAR']);
+    }
+
     protected function process(ContainerBuilder $container)
     {
         $repeatedPass = new RepeatedPass(array(new AnalyzeServiceReferencesPass(), new RemoveUnusedDefinitionsPass()));