1<?php 2 3namespace Gettext\Tests; 4 5use Gettext\Translation; 6use Gettext\Translations; 7 8class TranslationTest extends AbstractTest 9{ 10 public function testReferences() 11 { 12 $translations = static::get('phpcode/input', 'PhpCode'); 13 $translation = $translations->find(null, 'text 10 with plural'); 14 15 $this->assertInstanceOf('Gettext\\Translation', $translation); 16 17 $references = $translation->getReferences(); 18 19 $this->assertCount(1, $references); 20 $this->assertTrue($translation->hasReferences()); 21 $this->assertEquals(static::asset('phpcode/input.php'), $references[0][0]); 22 $this->assertEquals(19, $references[0][1]); 23 24 $translation->deleteReferences(); 25 $this->assertCount(0, $translation->getReferences()); 26 } 27 28 public function testNoReferences() 29 { 30 $po = static::get('phpcode/input', 'PhpCode')->toPoString(['noLocation' => true]); 31 $translations = Translations::fromPoString($po); 32 $translation = $translations->find(null, 'text 10 with plural'); 33 34 $this->assertInstanceOf('Gettext\\Translation', $translation); 35 36 $references = $translation->getReferences(); 37 38 $this->assertCount(0, $references); 39 $this->assertFalse($translation->hasReferences()); 40 } 41 42 public function testPlurals() 43 { 44 $translations = static::get('phpcode/input', 'PhpCode'); 45 $translation = $translations->find(null, 'text 10 with plural'); 46 47 $this->assertTrue($translation->hasPlural()); 48 $this->assertTrue($translation->is('', 'text 10 with plural')); 49 50 $translation = $translations->find(null, 'text 2'); 51 52 $this->assertFalse($translation->hasPlural()); 53 54 $translation->setPluralTranslations(['texts 2']); 55 56 $pluralTranslations = $translation->getPluralTranslations(); 57 $this->assertCount(1, $pluralTranslations); 58 $this->assertEquals('texts 2', $pluralTranslations[0]); 59 } 60 61 public function testMerge() 62 { 63 $one = new Translation(null, '1 child'); 64 $two = new Translation(null, '1 child'); 65 $two->setTranslation('1 fillo'); 66 67 $one->mergeWith($two); 68 69 $this->assertEquals('1 child', $one->getOriginal()); 70 $this->assertEquals('1 fillo', $one->getTranslation()); 71 } 72} 73