Make WordPress Core


Ignore:
Timestamp:
11/30/2017 11:09:33 PM (9 years ago)
Author:
pento
Message:

Code is Poetry.
WordPress' code just... wasn't.
This is now dealt with.

Props jrf, pento, netweb, GaryJ, jdgrimes, westonruter, Greg Sherwood from PHPCS, and everyone who's ever contributed to WPCS and PHPCS.
Fixes #41057.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/pomo/mo.php

    r41722 r42343  
    88        function test_mo_simple() {
    99                $mo = new MO();
    10                 $mo->import_from_file(DIR_TESTDATA . '/pomo/simple.mo');
    11                 $this->assertEquals(array('Project-Id-Version' => 'WordPress 2.6-bleeding', 'Report-Msgid-Bugs-To' => 'wp-polyglots@lists.automattic.com'), $mo->headers);
    12                 $this->assertEquals(2, count($mo->entries));
    13                 $this->assertEquals(array('dyado'), $mo->entries['baba']->translations);
    14                 $this->assertEquals(array('yes'), $mo->entries["kuku\nruku"]->translations);
     10                $mo->import_from_file( DIR_TESTDATA . '/pomo/simple.mo' );
     11                $this->assertEquals(
     12                        array(
     13                                'Project-Id-Version'   => 'WordPress 2.6-bleeding',
     14                                'Report-Msgid-Bugs-To' => 'wp-polyglots@lists.automattic.com',
     15                        ), $mo->headers
     16                );
     17                $this->assertEquals( 2, count( $mo->entries ) );
     18                $this->assertEquals( array( 'dyado' ), $mo->entries['baba']->translations );
     19                $this->assertEquals( array( 'yes' ), $mo->entries["kuku\nruku"]->translations );
    1520        }
    1621
    1722        function test_mo_plural() {
    1823                $mo = new MO();
    19                 $mo->import_from_file(DIR_TESTDATA . '/pomo/plural.mo');
    20                 $this->assertEquals(1, count($mo->entries));
    21                 $this->assertEquals(array("oney dragoney", "twoey dragoney", "manyey dragoney", "manyeyey dragoney", "manyeyeyey dragoney"), $mo->entries["one dragon"]->translations);
     24                $mo->import_from_file( DIR_TESTDATA . '/pomo/plural.mo' );
     25                $this->assertEquals( 1, count( $mo->entries ) );
     26                $this->assertEquals( array( 'oney dragoney', 'twoey dragoney', 'manyey dragoney', 'manyeyey dragoney', 'manyeyeyey dragoney' ), $mo->entries['one dragon']->translations );
    2227
    23                 $this->assertEquals('oney dragoney', $mo->translate_plural('one dragon', '%d dragons', 1));
    24                 $this->assertEquals('twoey dragoney', $mo->translate_plural('one dragon', '%d dragons', 2));
    25                 $this->assertEquals('twoey dragoney', $mo->translate_plural('one dragon', '%d dragons', -8));
     28                $this->assertEquals( 'oney dragoney', $mo->translate_plural( 'one dragon', '%d dragons', 1 ) );
     29                $this->assertEquals( 'twoey dragoney', $mo->translate_plural( 'one dragon', '%d dragons', 2 ) );
     30                $this->assertEquals( 'twoey dragoney', $mo->translate_plural( 'one dragon', '%d dragons', -8 ) );
    2631
     32                $mo->set_header( 'Plural-Forms', 'nplurals=5; plural=0' );
     33                $this->assertEquals( 'oney dragoney', $mo->translate_plural( 'one dragon', '%d dragons', 1 ) );
     34                $this->assertEquals( 'oney dragoney', $mo->translate_plural( 'one dragon', '%d dragons', 2 ) );
     35                $this->assertEquals( 'oney dragoney', $mo->translate_plural( 'one dragon', '%d dragons', -8 ) );
    2736
    28                 $mo->set_header('Plural-Forms', 'nplurals=5; plural=0');
    29                 $this->assertEquals('oney dragoney', $mo->translate_plural('one dragon', '%d dragons', 1));
    30                 $this->assertEquals('oney dragoney', $mo->translate_plural('one dragon', '%d dragons', 2));
    31                 $this->assertEquals('oney dragoney', $mo->translate_plural('one dragon', '%d dragons', -8));
     37                $mo->set_header( 'Plural-Forms', 'nplurals=5; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;' );
     38                $this->assertEquals( 'oney dragoney', $mo->translate_plural( 'one dragon', '%d dragons', 1 ) );
     39                $this->assertEquals( 'manyey dragoney', $mo->translate_plural( 'one dragon', '%d dragons', 11 ) );
     40                $this->assertEquals( 'twoey dragoney', $mo->translate_plural( 'one dragon', '%d dragons', 3 ) );
    3241
    33                 $mo->set_header('Plural-Forms', 'nplurals=5; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;');
    34                 $this->assertEquals('oney dragoney', $mo->translate_plural('one dragon', '%d dragons', 1));
    35                 $this->assertEquals('manyey dragoney', $mo->translate_plural('one dragon', '%d dragons', 11));
    36                 $this->assertEquals('twoey dragoney', $mo->translate_plural('one dragon', '%d dragons', 3));
    37 
    38                 $mo->set_header('Plural-Forms', 'nplurals=2; plural=n !=1;');
    39                 $this->assertEquals('oney dragoney', $mo->translate_plural('one dragon', '%d dragons', 1));
    40                 $this->assertEquals('twoey dragoney', $mo->translate_plural('one dragon', '%d dragons', 2));
    41                 $this->assertEquals('twoey dragoney', $mo->translate_plural('one dragon', '%d dragons', -8));
     42                $mo->set_header( 'Plural-Forms', 'nplurals=2; plural=n !=1;' );
     43                $this->assertEquals( 'oney dragoney', $mo->translate_plural( 'one dragon', '%d dragons', 1 ) );
     44                $this->assertEquals( 'twoey dragoney', $mo->translate_plural( 'one dragon', '%d dragons', 2 ) );
     45                $this->assertEquals( 'twoey dragoney', $mo->translate_plural( 'one dragon', '%d dragons', -8 ) );
    4246        }
    4347
    4448        function test_mo_context() {
    4549                $mo = new MO();
    46                 $mo->import_from_file(DIR_TESTDATA . '/pomo/context.mo');
    47                 $this->assertEquals(2, count($mo->entries));
    48                 $plural_entry = new Translation_Entry(array('singular' => 'one dragon', 'plural' => '%d dragons', 'translations' => array("oney dragoney", "twoey dragoney","manyey dragoney"), 'context' => 'dragonland'));
    49                 $this->assertEquals($plural_entry, $mo->entries[$plural_entry->key()]);
    50                 $this->assertEquals("dragonland", $mo->entries[$plural_entry->key()]->context);
     50                $mo->import_from_file( DIR_TESTDATA . '/pomo/context.mo' );
     51                $this->assertEquals( 2, count( $mo->entries ) );
     52                $plural_entry = new Translation_Entry(
     53                        array(
     54                                'singular'     => 'one dragon',
     55                                'plural'       => '%d dragons',
     56                                'translations' => array( 'oney dragoney', 'twoey dragoney', 'manyey dragoney' ),
     57                                'context'      => 'dragonland',
     58                        )
     59                );
     60                $this->assertEquals( $plural_entry, $mo->entries[ $plural_entry->key() ] );
     61                $this->assertEquals( 'dragonland', $mo->entries[ $plural_entry->key() ]->context );
    5162
    52                 $single_entry = new Translation_Entry(array('singular' => 'one dragon', 'translations' => array("oney dragoney"), 'context' => 'not so dragon'));
    53                 $this->assertEquals($single_entry, $mo->entries[$single_entry->key()]);
    54                 $this->assertEquals("not so dragon", $mo->entries[$single_entry->key()]->context);
     63                $single_entry = new Translation_Entry(
     64                        array(
     65                                'singular'     => 'one dragon',
     66                                'translations' => array( 'oney dragoney' ),
     67                                'context'      => 'not so dragon',
     68                        )
     69                );
     70                $this->assertEquals( $single_entry, $mo->entries[ $single_entry->key() ] );
     71                $this->assertEquals( 'not so dragon', $mo->entries[ $single_entry->key() ]->context );
    5572
    5673        }
     
    5875        function test_translations_merge() {
    5976                $host = new Translations();
    60                 $host->add_entry(new Translation_Entry(array('singular' => 'pink',)));
    61                 $host->add_entry(new Translation_Entry(array('singular' => 'green',)));
     77                $host->add_entry( new Translation_Entry( array( 'singular' => 'pink' ) ) );
     78                $host->add_entry( new Translation_Entry( array( 'singular' => 'green' ) ) );
    6279                $guest = new Translations();
    63                 $guest->add_entry(new Translation_Entry(array('singular' => 'green',)));
    64                 $guest->add_entry(new Translation_Entry(array('singular' => 'red',)));
    65                 $host->merge_with($guest);
    66                 $this->assertEquals(3, count($host->entries));
    67                 $this->assertEquals(array(), array_diff(array('pink', 'green', 'red'), array_keys($host->entries)));
     80                $guest->add_entry( new Translation_Entry( array( 'singular' => 'green' ) ) );
     81                $guest->add_entry( new Translation_Entry( array( 'singular' => 'red' ) ) );
     82                $host->merge_with( $guest );
     83                $this->assertEquals( 3, count( $host->entries ) );
     84                $this->assertEquals( array(), array_diff( array( 'pink', 'green', 'red' ), array_keys( $host->entries ) ) );
    6885        }
    6986
    7087        function test_export_mo_file() {
    71                 $entries = array();
    72                 $entries[] = new Translation_Entry(array('singular' => 'pink',
    73                         'translations' => array('розов')));
    74                 $no_translation_entry = new Translation_Entry(array('singular' => 'grey'));
    75                 $entries[] = new Translation_Entry(array('singular' => 'green', 'plural' => 'greens',
    76                         'translations' => array('зелен', 'зелени')));
    77                 $entries[] = new Translation_Entry(array('singular' => 'red', 'context' => 'color',
    78                         'translations' => array('червен')));
    79                 $entries[] = new Translation_Entry(array('singular' => 'red', 'context' => 'bull',
    80                         'translations' => array('бик')));
    81                 $entries[] = new Translation_Entry(array('singular' => 'maroon', 'plural' => 'maroons', 'context' => 'context',
    82                         'translations' => array('пурпурен', 'пурпурни')));
     88                $entries              = array();
     89                $entries[]            = new Translation_Entry(
     90                        array(
     91                                'singular'     => 'pink',
     92                                'translations' => array( 'розов' ),
     93                        )
     94                );
     95                $no_translation_entry = new Translation_Entry( array( 'singular' => 'grey' ) );
     96                $entries[]            = new Translation_Entry(
     97                        array(
     98                                'singular'     => 'green',
     99                                'plural'       => 'greens',
     100                                'translations' => array( 'зелен', 'зелени' ),
     101                        )
     102                );
     103                $entries[]            = new Translation_Entry(
     104                        array(
     105                                'singular'     => 'red',
     106                                'context'      => 'color',
     107                                'translations' => array( 'червен' ),
     108                        )
     109                );
     110                $entries[]            = new Translation_Entry(
     111                        array(
     112                                'singular'     => 'red',
     113                                'context'      => 'bull',
     114                                'translations' => array( 'бик' ),
     115                        )
     116                );
     117                $entries[]            = new Translation_Entry(
     118                        array(
     119                                'singular'     => 'maroon',
     120                                'plural'       => 'maroons',
     121                                'context'      => 'context',
     122                                'translations' => array( 'пурпурен', 'пурпурни' ),
     123                        )
     124                );
    83125
    84126                $mo = new MO();
    85                 $mo->set_header('Project-Id-Version', 'Baba Project 1.0');
    86                 foreach($entries as $entry) {
    87                         $mo->add_entry($entry);
     127                $mo->set_header( 'Project-Id-Version', 'Baba Project 1.0' );
     128                foreach ( $entries as $entry ) {
     129                        $mo->add_entry( $entry );
    88130                }
    89                 $mo->add_entry($no_translation_entry);
    90 
    91                 $temp_fn = $this->temp_filename();
    92                 $mo->export_to_file($temp_fn);
    93 
    94                 $again = new MO();
    95                 $again->import_from_file($temp_fn);
    96 
    97                 $this->assertEquals(count($entries), count($again->entries));
    98                 foreach($entries as $entry) {
    99                         $this->assertEquals($entry, $again->entries[$entry->key()]);
    100                 }
    101         }
    102 
    103         function test_export_should_not_include_empty_translations() {
    104                 $entries = array(  );
    105                 $mo = new MO;
    106                 $mo->add_entry( array( 'singular' => 'baba', 'translations' => array( '', '' ) ) );
     131                $mo->add_entry( $no_translation_entry );
    107132
    108133                $temp_fn = $this->temp_filename();
     
    110135
    111136                $again = new MO();
    112                 $again->import_from_file($temp_fn);
     137                $again->import_from_file( $temp_fn );
     138
     139                $this->assertEquals( count( $entries ), count( $again->entries ) );
     140                foreach ( $entries as $entry ) {
     141                        $this->assertEquals( $entry, $again->entries[ $entry->key() ] );
     142                }
     143        }
     144
     145        function test_export_should_not_include_empty_translations() {
     146                $entries = array();
     147                $mo      = new MO;
     148                $mo->add_entry(
     149                        array(
     150                                'singular'     => 'baba',
     151                                'translations' => array( '', '' ),
     152                        )
     153                );
     154
     155                $temp_fn = $this->temp_filename();
     156                $mo->export_to_file( $temp_fn );
     157
     158                $again = new MO();
     159                $again->import_from_file( $temp_fn );
    113160
    114161                $this->assertEquals( 0, count( $again->entries ) );
     
    117164        function test_nplurals_with_backslashn() {
    118165                $mo = new MO();
    119                 $mo->import_from_file(DIR_TESTDATA . '/pomo/bad_nplurals.mo');
    120                 $this->assertEquals('%d foro', $mo->translate_plural('%d forum', '%d forums', 1));
    121                 $this->assertEquals('%d foros', $mo->translate_plural('%d forum', '%d forums', 2));
    122                 $this->assertEquals('%d foros', $mo->translate_plural('%d forum', '%d forums', -1));
     166                $mo->import_from_file( DIR_TESTDATA . '/pomo/bad_nplurals.mo' );
     167                $this->assertEquals( '%d foro', $mo->translate_plural( '%d forum', '%d forums', 1 ) );
     168                $this->assertEquals( '%d foros', $mo->translate_plural( '%d forum', '%d forums', 2 ) );
     169                $this->assertEquals( '%d foros', $mo->translate_plural( '%d forum', '%d forums', -1 ) );
    123170        }
    124171
    125172        function disabled_test_performance() {
    126                 $start = microtime(true);
    127                 $mo = new MO();
    128                 $mo->import_from_file(DIR_TESTDATA . '/pomo/de_DE-2.8.mo');
     173                $start = microtime( true );
     174                $mo    = new MO();
     175                $mo->import_from_file( DIR_TESTDATA . '/pomo/de_DE-2.8.mo' );
    129176                // echo "\nPerformance: ".(microtime(true) - $start)."\n";
    130177        }
    131178
    132179        function test_overloaded_mb_functions() {
    133                 if ((ini_get("mbstring.func_overload") & 2) == 0) {
     180                if ( ( ini_get( 'mbstring.func_overload' ) & 2 ) == 0 ) {
    134181                        $this->markTestSkipped( __METHOD__ . ' only runs when mbstring.func_overload is enabled.' );
    135182                }
    136183
    137184                $mo = new MO();
    138                 $mo->import_from_file(DIR_TESTDATA . '/pomo/overload.mo');
    139                 $this->assertEquals(array('Табло'), $mo->entries['Dashboard']->translations);
     185                $mo->import_from_file( DIR_TESTDATA . '/pomo/overload.mo' );
     186                $this->assertEquals( array( 'Табло' ), $mo->entries['Dashboard']->translations );
    140187        }
    141188
    142189        function test_load_pot_file() {
    143190                $mo = new MO();
    144                 $this->assertEquals( false, $mo->import_from_file(DIR_TESTDATA . '/pomo/mo.pot') );
     191                $this->assertEquals( false, $mo->import_from_file( DIR_TESTDATA . '/pomo/mo.pot' ) );
    145192        }
    146193}
Note: See TracChangeset for help on using the changeset viewer.