1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- <?php
- /*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Symfony\Bundle\FrameworkBundle\Tests\Translation;
- use Symfony\Bundle\FrameworkBundle\Tests\TestCase;
- use Symfony\Bundle\FrameworkBundle\Translation\PhpExtractor;
- use Symfony\Component\Translation\MessageCatalogue;
- class PhpExtractorTest extends TestCase
- {
- /**
- * @dataProvider resourcesProvider
- *
- * @param array|string $resource
- */
- public function testExtraction($resource)
- {
- // Arrange
- $extractor = new PhpExtractor();
- $extractor->setPrefix('prefix');
- $catalogue = new MessageCatalogue('en');
- // Act
- $extractor->extract($resource, $catalogue);
- $expectedHeredoc = <<<EOF
- heredoc key with whitespace and escaped \$\n sequences
- EOF;
- $expectedNowdoc = <<<'EOF'
- nowdoc key with whitespace and nonescaped \$\n sequences
- EOF;
- // Assert
- $expectedCatalogue = array(
- 'messages' => array(
- 'single-quoted key' => 'prefixsingle-quoted key',
- 'double-quoted key' => 'prefixdouble-quoted key',
- 'heredoc key' => 'prefixheredoc key',
- 'nowdoc key' => 'prefixnowdoc key',
- "double-quoted key with whitespace and escaped \$\n\" sequences" => "prefixdouble-quoted key with whitespace and escaped \$\n\" sequences",
- 'single-quoted key with whitespace and nonescaped \$\n\' sequences' => 'prefixsingle-quoted key with whitespace and nonescaped \$\n\' sequences',
- 'single-quoted key with "quote mark at the end"' => 'prefixsingle-quoted key with "quote mark at the end"',
- $expectedHeredoc => 'prefix'.$expectedHeredoc,
- $expectedNowdoc => 'prefix'.$expectedNowdoc,
- '{0} There is no apples|{1} There is one apple|]1,Inf[ There are %count% apples' => 'prefix{0} There is no apples|{1} There is one apple|]1,Inf[ There are %count% apples',
- ),
- 'not_messages' => array(
- 'other-domain-test-no-params-short-array' => 'prefixother-domain-test-no-params-short-array',
- 'other-domain-test-no-params-long-array' => 'prefixother-domain-test-no-params-long-array',
- 'other-domain-test-params-short-array' => 'prefixother-domain-test-params-short-array',
- 'other-domain-test-params-long-array' => 'prefixother-domain-test-params-long-array',
- 'other-domain-test-trans-choice-short-array-%count%' => 'prefixother-domain-test-trans-choice-short-array-%count%',
- 'other-domain-test-trans-choice-long-array-%count%' => 'prefixother-domain-test-trans-choice-long-array-%count%',
- 'typecast' => 'prefixtypecast',
- 'msg1' => 'prefixmsg1',
- 'msg2' => 'prefixmsg2',
- ),
- );
- $actualCatalogue = $catalogue->all();
- $this->assertEquals($expectedCatalogue, $actualCatalogue);
- }
- public function resourcesProvider()
- {
- $directory = __DIR__.'/../Fixtures/Resources/views/';
- $splFiles = array();
- foreach (new \DirectoryIterator($directory) as $fileInfo) {
- if ($fileInfo->isDot()) {
- continue;
- }
- if ('translation.html.php' === $fileInfo->getBasename()) {
- $phpFile = $fileInfo->getPathname();
- }
- $splFiles[] = $fileInfo->getFileInfo();
- }
- return array(
- array($directory),
- array($phpFile),
- array(glob($directory.'*')),
- array($splFiles),
- array(new \ArrayObject(glob($directory.'*'))),
- array(new \ArrayObject($splFiles)),
- );
- }
- }
|