| [ Index ] |
PHP Cross Reference of GlotPress |
[Summary view] [Print] [Text view]
1 <?php 2 require_once ('init.php'); 3 4 class GP_Test_Translations extends GP_UnitTestCase { 5 6 function test_add_entry() { 7 $entry = new Translation_Entry(array('singular' => 'baba',)); 8 $entry2 = new Translation_Entry(array('singular' => 'dyado',)); 9 $empty = new Translation_Entry(); 10 $po = new Translations(); 11 $po->add_entry($entry); 12 $this->assertEquals(array($entry->key() => $entry), $po->entries); 13 // add the same entry more than once 14 // we do not need to test proper key generation here, see test_key() 15 $po->add_entry($entry); 16 $po->add_entry($entry); 17 $this->assertEquals(array($entry->key() => $entry), $po->entries); 18 $po->add_entry($entry2); 19 $this->assertEquals(array($entry->key() => $entry, $entry2->key() => $entry2), $po->entries); 20 // add empty entry 21 $this->assertEquals(false, $po->add_entry($empty)); 22 $this->assertEquals(array($entry->key() => $entry, $entry2->key() => $entry2), $po->entries); 23 24 // give add_entry() the arguments and let it create the entry itself 25 $po = new Translations(); 26 $po->add_entry(array('singular' => 'baba',)); 27 $entries= array_values($po->entries); 28 $this->assertEquals($entry->key(), $entries[0]->key()); 29 } 30 31 function test_translate() { 32 $entry1 = new Translation_Entry(array('singular' => 'baba', 'translations' => array('babax'))); 33 $entry2 = new Translation_Entry(array('singular' => 'baba', 'translations' => array('babay'), 'context' => 'x')); 34 $domain = new Translations(); 35 $domain->add_entry($entry1); 36 $domain->add_entry($entry2); 37 $this->assertEquals('babax', $domain->translate('baba')); 38 $this->assertEquals('babay', $domain->translate('baba', 'x')); 39 $this->assertEquals('baba', $domain->translate('baba', 'y')); 40 $this->assertEquals('babaz', $domain->translate('babaz')); 41 } 42 43 function test_translate_plural() { 44 $entry_incomplete = new Translation_Entry(array('singular' => 'baba', 'plural' => 'babas', 'translations' => array('babax'))); 45 $entry_toomany = new Translation_Entry(array('singular' => 'wink', 'plural' => 'winks', 'translations' => array('winki', 'winka', 'winko'))); 46 $entry_2 = new Translation_Entry(array('singular' => 'dyado', 'plural' => 'dyados', 'translations' => array('dyadox', 'dyadoy'))); 47 $domain = new Translations(); 48 $domain->add_entry($entry_incomplete); 49 $domain->add_entry($entry_toomany); 50 $domain->add_entry($entry_2); 51 $this->assertEquals('other', $domain->translate_plural('other', 'others', 1)); 52 $this->assertEquals('others', $domain->translate_plural('other', 'others', 111)); 53 // too few translations + cont logic 54 $this->assertEquals('babas', $domain->translate_plural('baba', 'babas', 2)); 55 $this->assertEquals('babas', $domain->translate_plural('baba', 'babas', 0)); 56 $this->assertEquals('babas', $domain->translate_plural('baba', 'babas', -1)); 57 $this->assertEquals('babas', $domain->translate_plural('baba', 'babas', 999)); 58 // proper 59 $this->assertEquals('dyadox', $domain->translate_plural('dyado', 'dyados', 1)); 60 $this->assertEquals('dyadoy', $domain->translate_plural('dyado', 'dyados', 0)); 61 $this->assertEquals('dyadoy', $domain->translate_plural('dyado', 'dyados', 18881)); 62 $this->assertEquals('dyadoy', $domain->translate_plural('dyado', 'dyados', -18881)); 63 } 64 65 function test_digit_and_merge() { 66 $entry_digit_1 = new Translation_Entry(array('singular' => 1, 'translations' => array('1'))); 67 $entry_digit_2 = new Translation_Entry(array('singular' => 2, 'translations' => array('2'))); 68 $domain = new Translations(); 69 $domain->add_entry($entry_digit_1); 70 $domain->add_entry($entry_digit_2); 71 $dummy_translation = new Translations; 72 $this->assertEquals( '1', $domain->translate( '1' ) ); 73 $domain->merge_with( $dummy_translation ); 74 $this->assertEquals( '1', $domain->translate( '1' ) ); 75 } 76 77 function test_if_translation_has_been_updated_since_timestamp() { 78 $set = $this->factory->translation_set->create_with_project_and_locale(); 79 $original = $this->factory->original->create( array( 'project_id' => $set->project_id ) ); 80 $this->factory->translation->create( array( 81 'original_id' => $original->id, 82 'translation_set_id' => $set->id, 83 'status' => 'current', 84 ) ); 85 86 $this->assertTrue( gp_has_translation_been_updated( $set ) ); 87 88 $_SERVER['HTTP_IF_MODIFIED_SINCE'] = 'Sat, 27 Apr 2012 15:49:29 GMT'; 89 $this->assertTrue( gp_has_translation_been_updated( $set ) ); 90 91 $_SERVER['HTTP_IF_MODIFIED_SINCE'] = 'Wed, 2 Feb 2022 22:22:22 GMT'; 92 $this->assertFalse( gp_has_translation_been_updated( $set ) ); 93 } 94 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Fri May 24 04:00:00 2013 | Hosted by follow the white rabbit. |