Changeset 42343 for trunk/tests/phpunit/tests/pomo/translations.php
- Timestamp:
- 11/30/2017 11:09:33 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/phpunit/tests/pomo/translations.php
r41722 r42343 7 7 8 8 function test_add_entry() { 9 $entry = new Translation_Entry(array('singular' => 'baba',));10 $entry2 = new Translation_Entry( array('singular' => 'dyado',));11 $empty = new Translation_Entry();12 $po = new Translations();13 $po->add_entry( $entry);14 $this->assertEquals( array($entry->key() => $entry), $po->entries);9 $entry = new Translation_Entry( array( 'singular' => 'baba' ) ); 10 $entry2 = new Translation_Entry( array( 'singular' => 'dyado' ) ); 11 $empty = new Translation_Entry(); 12 $po = new Translations(); 13 $po->add_entry( $entry ); 14 $this->assertEquals( array( $entry->key() => $entry ), $po->entries ); 15 15 // add the same entry more than once 16 16 // we do not need to test proper key generation here, see test_key() 17 $po->add_entry($entry); 18 $po->add_entry($entry); 19 $this->assertEquals(array($entry->key() => $entry), $po->entries); 20 $po->add_entry($entry2); 21 $this->assertEquals(array($entry->key() => $entry, $entry2->key() => $entry2), $po->entries); 17 $po->add_entry( $entry ); 18 $po->add_entry( $entry ); 19 $this->assertEquals( array( $entry->key() => $entry ), $po->entries ); 20 $po->add_entry( $entry2 ); 21 $this->assertEquals( 22 array( 23 $entry->key() => $entry, 24 $entry2->key() => $entry2, 25 ), $po->entries 26 ); 22 27 // add empty entry 23 $this->assertEquals(false, $po->add_entry($empty)); 24 $this->assertEquals(array($entry->key() => $entry, $entry2->key() => $entry2), $po->entries); 28 $this->assertEquals( false, $po->add_entry( $empty ) ); 29 $this->assertEquals( 30 array( 31 $entry->key() => $entry, 32 $entry2->key() => $entry2, 33 ), $po->entries 34 ); 25 35 26 36 // give add_entry() the arguments and let it create the entry itself 27 37 $po = new Translations(); 28 $po->add_entry( array('singular' => 'baba',));29 $entries = array_values($po->entries);30 $this->assertEquals( $entry->key(), $entries[0]->key());38 $po->add_entry( array( 'singular' => 'baba' ) ); 39 $entries = array_values( $po->entries ); 40 $this->assertEquals( $entry->key(), $entries[0]->key() ); 31 41 } 32 42 33 43 function test_translate() { 34 $entry1 = new Translation_Entry(array('singular' => 'baba', 'translations' => array('babax'))); 35 $entry2 = new Translation_Entry(array('singular' => 'baba', 'translations' => array('babay'), 'context' => 'x')); 44 $entry1 = new Translation_Entry( 45 array( 46 'singular' => 'baba', 47 'translations' => array( 'babax' ), 48 ) 49 ); 50 $entry2 = new Translation_Entry( 51 array( 52 'singular' => 'baba', 53 'translations' => array( 'babay' ), 54 'context' => 'x', 55 ) 56 ); 36 57 $domain = new Translations(); 37 $domain->add_entry( $entry1);38 $domain->add_entry( $entry2);39 $this->assertEquals( 'babax', $domain->translate('baba'));40 $this->assertEquals( 'babay', $domain->translate('baba', 'x'));41 $this->assertEquals( 'baba', $domain->translate('baba', 'y'));42 $this->assertEquals( 'babaz', $domain->translate('babaz'));58 $domain->add_entry( $entry1 ); 59 $domain->add_entry( $entry2 ); 60 $this->assertEquals( 'babax', $domain->translate( 'baba' ) ); 61 $this->assertEquals( 'babay', $domain->translate( 'baba', 'x' ) ); 62 $this->assertEquals( 'baba', $domain->translate( 'baba', 'y' ) ); 63 $this->assertEquals( 'babaz', $domain->translate( 'babaz' ) ); 43 64 } 44 65 45 66 function test_translate_plural() { 46 $entry_incomplete = new Translation_Entry(array('singular' => 'baba', 'plural' => 'babas', 'translations' => array('babax'))); 47 $entry_toomany = new Translation_Entry(array('singular' => 'wink', 'plural' => 'winks', 'translations' => array('winki', 'winka', 'winko'))); 48 $entry_2 = new Translation_Entry(array('singular' => 'dyado', 'plural' => 'dyados', 'translations' => array('dyadox', 'dyadoy'))); 49 $domain = new Translations(); 50 $domain->add_entry($entry_incomplete); 51 $domain->add_entry($entry_toomany); 52 $domain->add_entry($entry_2); 53 $this->assertEquals('other', $domain->translate_plural('other', 'others', 1)); 54 $this->assertEquals('others', $domain->translate_plural('other', 'others', 111)); 67 $entry_incomplete = new Translation_Entry( 68 array( 69 'singular' => 'baba', 70 'plural' => 'babas', 71 'translations' => array( 'babax' ), 72 ) 73 ); 74 $entry_toomany = new Translation_Entry( 75 array( 76 'singular' => 'wink', 77 'plural' => 'winks', 78 'translations' => array( 'winki', 'winka', 'winko' ), 79 ) 80 ); 81 $entry_2 = new Translation_Entry( 82 array( 83 'singular' => 'dyado', 84 'plural' => 'dyados', 85 'translations' => array( 'dyadox', 'dyadoy' ), 86 ) 87 ); 88 $domain = new Translations(); 89 $domain->add_entry( $entry_incomplete ); 90 $domain->add_entry( $entry_toomany ); 91 $domain->add_entry( $entry_2 ); 92 $this->assertEquals( 'other', $domain->translate_plural( 'other', 'others', 1 ) ); 93 $this->assertEquals( 'others', $domain->translate_plural( 'other', 'others', 111 ) ); 55 94 // too few translations + cont logic 56 $this->assertEquals( 'babas', $domain->translate_plural('baba', 'babas', 2));57 $this->assertEquals( 'babas', $domain->translate_plural('baba', 'babas', 0));58 $this->assertEquals( 'babas', $domain->translate_plural('baba', 'babas', -1));59 $this->assertEquals( 'babas', $domain->translate_plural('baba', 'babas', 999));95 $this->assertEquals( 'babas', $domain->translate_plural( 'baba', 'babas', 2 ) ); 96 $this->assertEquals( 'babas', $domain->translate_plural( 'baba', 'babas', 0 ) ); 97 $this->assertEquals( 'babas', $domain->translate_plural( 'baba', 'babas', -1 ) ); 98 $this->assertEquals( 'babas', $domain->translate_plural( 'baba', 'babas', 999 ) ); 60 99 // proper 61 $this->assertEquals( 'dyadox', $domain->translate_plural('dyado', 'dyados', 1));62 $this->assertEquals( 'dyadoy', $domain->translate_plural('dyado', 'dyados', 0));63 $this->assertEquals( 'dyadoy', $domain->translate_plural('dyado', 'dyados', 18881));64 $this->assertEquals( 'dyadoy', $domain->translate_plural('dyado', 'dyados', -18881));100 $this->assertEquals( 'dyadox', $domain->translate_plural( 'dyado', 'dyados', 1 ) ); 101 $this->assertEquals( 'dyadoy', $domain->translate_plural( 'dyado', 'dyados', 0 ) ); 102 $this->assertEquals( 'dyadoy', $domain->translate_plural( 'dyado', 'dyados', 18881 ) ); 103 $this->assertEquals( 'dyadoy', $domain->translate_plural( 'dyado', 'dyados', -18881 ) ); 65 104 } 66 105 67 106 function test_digit_and_merge() { 68 $entry_digit_1 = new Translation_Entry(array('singular' => 1, 'translations' => array('1'))); 69 $entry_digit_2 = new Translation_Entry(array('singular' => 2, 'translations' => array('2'))); 70 $domain = new Translations(); 71 $domain->add_entry($entry_digit_1); 72 $domain->add_entry($entry_digit_2); 107 $entry_digit_1 = new Translation_Entry( 108 array( 109 'singular' => 1, 110 'translations' => array( '1' ), 111 ) 112 ); 113 $entry_digit_2 = new Translation_Entry( 114 array( 115 'singular' => 2, 116 'translations' => array( '2' ), 117 ) 118 ); 119 $domain = new Translations(); 120 $domain->add_entry( $entry_digit_1 ); 121 $domain->add_entry( $entry_digit_2 ); 73 122 $dummy_translation = new Translations; 74 123 $this->assertEquals( '1', $domain->translate( '1' ) );
Note: See TracChangeset
for help on using the changeset viewer.