Make WordPress Core


Ignore:
Timestamp:
11/30/2017 11:09:33 PM (8 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.