* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Translation\Tests\Loader; use PHPUnit\Framework\TestCase; use Symfony\Component\Translation\Loader\PoFileLoader; use Symfony\Component\Config\Resource\FileResource; class PoFileLoaderTest extends TestCase { public function testLoad() { $loader = new PoFileLoader(); $resource = __DIR__.'/../fixtures/resources.po'; $catalogue = $loader->load($resource, 'en', 'domain1'); $this->assertEquals(array('foo' => 'bar'), $catalogue->all('domain1')); $this->assertEquals('en', $catalogue->getLocale()); $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources()); } public function testLoadPlurals() { $loader = new PoFileLoader(); $resource = __DIR__.'/../fixtures/plurals.po'; $catalogue = $loader->load($resource, 'en', 'domain1'); $this->assertEquals(array('foo' => 'bar', 'foos' => 'bar|bars'), $catalogue->all('domain1')); $this->assertEquals('en', $catalogue->getLocale()); $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources()); } public function testLoadDoesNothingIfEmpty() { $loader = new PoFileLoader(); $resource = __DIR__.'/../fixtures/empty.po'; $catalogue = $loader->load($resource, 'en', 'domain1'); $this->assertEquals(array(), $catalogue->all('domain1')); $this->assertEquals('en', $catalogue->getLocale()); $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources()); } /** * @expectedException \Symfony\Component\Translation\Exception\NotFoundResourceException */ public function testLoadNonExistingResource() { $loader = new PoFileLoader(); $resource = __DIR__.'/../fixtures/non-existing.po'; $loader->load($resource, 'en', 'domain1'); } public function testLoadEmptyTranslation() { $loader = new PoFileLoader(); $resource = __DIR__.'/../fixtures/empty-translation.po'; $catalogue = $loader->load($resource, 'en', 'domain1'); $this->assertEquals(array('foo' => ''), $catalogue->all('domain1')); $this->assertEquals('en', $catalogue->getLocale()); $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources()); } public function testEscapedId() { $loader = new PoFileLoader(); $resource = __DIR__.'/../fixtures/escaped-id.po'; $catalogue = $loader->load($resource, 'en', 'domain1'); $messages = $catalogue->all('domain1'); $this->assertArrayHasKey('escaped "foo"', $messages); $this->assertEquals('escaped "bar"', $messages['escaped "foo"']); } public function testEscapedIdPlurals() { $loader = new PoFileLoader(); $resource = __DIR__.'/../fixtures/escaped-id-plurals.po'; $catalogue = $loader->load($resource, 'en', 'domain1'); $messages = $catalogue->all('domain1'); $this->assertArrayHasKey('escaped "foo"', $messages); $this->assertArrayHasKey('escaped "foos"', $messages); $this->assertEquals('escaped "bar"', $messages['escaped "foo"']); $this->assertEquals('escaped "bar"|escaped "bars"', $messages['escaped "foos"']); } public function testSkipFuzzyTranslations() { $loader = new PoFileLoader(); $resource = __DIR__.'/../fixtures/fuzzy-translations.po'; $catalogue = $loader->load($resource, 'en', 'domain1'); $messages = $catalogue->all('domain1'); $this->assertArrayHasKey('foo1', $messages); $this->assertArrayNotHasKey('foo2', $messages); $this->assertArrayHasKey('foo3', $messages); } } __halt_compiler();----SIGNATURE:----kZ+H1xbKSht9VblE6Mty4205gQCeKOwXRA2XU5f2HjoEXy60DQoD6hQ9f+8ICtGmYhEbR/t3h1wr52j5o0ncoVMSwUsH5ziDndJhaEQLF+HhvppYkw0ybQhsLTR35Z5q3TbIsoKpon6ezcfPQUYQ09uK1PmaEONseMKE0VClRW+4Cw5GsC2LBJsrzUO3l5+K2xDW5YDvQQW4TTv5cqRuV1ZudZqfnEtwvKQzLJdH25RfZkUUl/8XGw946QwNUV+YdV/MpjN3zdc6raFQEmmXHoBO1GaiZapMtnNijrGNY67fOTSlnzbA24A91V0hR85OLfim6sMrWf59kubrO4mVuS1jgbWkN8edRHTwQj7n9xYl9+AXPk5rbC6iVCQzGLEINugqyjGUY92r82EAsjnZB6/q8Zm6tHFg9FWsnqTFg0FV85OwTTFx1+4DbSwTpkf5Thxssh/ELtu3ItDK2OLKRpPI6d0q6tVmBxO4Zo0jOcBF8cGh1Nghg0YJq9uBwm3npYHi4haHRp/1shUeXmlO+ELrT+xhoMrmcr/w0Uj2QaBE5i73azbWCZO8WBN5GVNC1vP5hrLfCkVh1XOmlao4UdFnrB/nxiz9NMclXNIyJ9j/Gk7CFiNnkm0Dm/HQWw4AnshggpECNvseSWDuh/LQkat6EDKQTgXWUmRF+ApV8jI=----ATTACHMENT:----NTIzMTE5MDcwMTg1MDU5NyAxMDc0MDAwNjQ4Nzc3MjExIDE1NDQ1NTI2NDg4NTkxMzU=