c0274738d0f0d2f41deb5bf06655b2f78eca0ef3
[yaffs-website] / vendor / symfony / translation / Tests / DependencyInjection / TranslationPassTest.php
1 <?php
2
3 /*
4  * This file is part of the Symfony package.
5  *
6  * (c) Fabien Potencier <fabien@symfony.com>
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11
12 namespace Symfony\Component\Translation\Tests\DependencyInjection;
13
14 use PHPUnit\Framework\TestCase;
15 use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument;
16 use Symfony\Component\DependencyInjection\ContainerBuilder;
17 use Symfony\Component\DependencyInjection\Definition;
18 use Symfony\Component\DependencyInjection\Reference;
19 use Symfony\Component\Translation\DependencyInjection\TranslatorPass;
20
21 class TranslationPassTest extends TestCase
22 {
23     public function testValidCollector()
24     {
25         $loader = (new Definition())
26             ->addTag('translation.loader', array('alias' => 'xliff', 'legacy-alias' => 'xlf'));
27
28         $reader = new Definition();
29
30         $translator = (new Definition())
31             ->setArguments(array(null, null, null, null));
32
33         $container = new ContainerBuilder();
34         $container->setDefinition('translator.default', $translator);
35         $container->setDefinition('translation.reader', $reader);
36         $container->setDefinition('translation.xliff_loader', $loader);
37
38         $pass = new TranslatorPass('translator.default', 'translation.reader');
39         $pass->process($container);
40
41         $expectedReader = (new Definition())
42             ->addMethodCall('addLoader', array('xliff', new Reference('translation.xliff_loader')))
43             ->addMethodCall('addLoader', array('xlf', new Reference('translation.xliff_loader')))
44         ;
45         $this->assertEquals($expectedReader, $reader);
46
47         $expectedLoader = (new Definition())
48             ->addTag('translation.loader', array('alias' => 'xliff', 'legacy-alias' => 'xlf'))
49         ;
50         $this->assertEquals($expectedLoader, $loader);
51
52         $this->assertSame(array('translation.xliff_loader' => array('xliff', 'xlf')), $translator->getArgument(3));
53
54         $expected = array('translation.xliff_loader' => new ServiceClosureArgument(new Reference('translation.xliff_loader')));
55         $this->assertEquals($expected, $container->getDefinition((string) $translator->getArgument(0))->getArgument(0));
56     }
57
58     /**
59      * @group legacy
60      * @expectedDeprecation The default value for $readerServiceId will change in 4.0 to "translation.reader".
61      *
62      * A test that verifies the deprecated "translation.loader" gets the LoaderInterfaces added.
63      *
64      * This test should be removed in 4.0.
65      */
66     public function testValidCollectorWithDeprecatedTranslationLoader()
67     {
68         $loader = (new Definition())
69             ->addTag('translation.loader', array('alias' => 'xliff', 'legacy-alias' => 'xlf'));
70
71         $legacyReader = new Definition();
72         $reader = new Definition();
73
74         $translator = (new Definition())
75             ->setArguments(array(null, null, null, null));
76
77         $container = new ContainerBuilder();
78         $container->setDefinition('translator.default', $translator);
79         $container->setDefinition('translation.loader', $legacyReader);
80         $container->setDefinition('translation.reader', $reader);
81         $container->setDefinition('translation.xliff_loader', $loader);
82
83         $pass = new TranslatorPass();
84         $pass->process($container);
85
86         $expectedReader = (new Definition())
87             ->addMethodCall('addLoader', array('xliff', new Reference('translation.xliff_loader')))
88             ->addMethodCall('addLoader', array('xlf', new Reference('translation.xliff_loader')))
89         ;
90         $this->assertEquals($expectedReader, $legacyReader);
91         $this->assertEquals($expectedReader, $reader);
92
93         $expectedLoader = (new Definition())
94             ->addTag('translation.loader', array('alias' => 'xliff', 'legacy-alias' => 'xlf'))
95         ;
96         $this->assertEquals($expectedLoader, $loader);
97
98         $this->assertSame(array('translation.xliff_loader' => array('xliff', 'xlf')), $translator->getArgument(3));
99
100         $expected = array('translation.xliff_loader' => new ServiceClosureArgument(new Reference('translation.xliff_loader')));
101         $this->assertEquals($expected, $container->getDefinition((string) $translator->getArgument(0))->getArgument(0));
102     }
103 }