radarrplexorganizrnginxsonarrdashboardembycouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdall
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							95 lines
						
					
					
						
							3.8 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							95 lines
						
					
					
						
							3.8 KiB
						
					
					
				| <?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\Component\Translation\Tests\Extractor; | |
| 
 | |
| use PHPUnit\Framework\TestCase; | |
| use Symfony\Component\Translation\Extractor\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/extractor/'; | |
|         $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)), | |
|         ); | |
|     } | |
| }
 | |
| 
 |