Make WordPress Core


Ignore:
Timestamp:
11/03/2016 07:56:53 PM (10 years ago)
Author:
swissspidy
Message:

I18N: Move load_textdomain() tests to separate file.

See #38485.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/l10n.php

    r38930 r39125  
    3434    }
    3535
    36     function test_load_unload_textdomain() {
    37         $this->assertFalse( is_textdomain_loaded( 'wp-tests-domain' ) );
    38         $this->assertFalse( unload_textdomain( 'wp-tests-domain' ) );
    39 
    40         $file = DIR_TESTDATA . '/pomo/simple.mo';
    41         $this->assertTrue( load_textdomain( 'wp-tests-domain', $file ) );
    42         $this->assertTrue( is_textdomain_loaded( 'wp-tests-domain' ) );
    43         $this->assertTrue( unload_textdomain( 'wp-tests-domain' ) );
    44         $this->assertFalse( is_textdomain_loaded( 'wp-tests-domain' ) );
    45     }
    46 
    4736    /**
    4837     * @ticket 35073
     
    5241        $this->assertEquals( 'before-last-bar', before_last_bar( 'before-last-bar|after-bar' ) );
    5342        $this->assertEquals( 'first-before-bar|second-before-bar', before_last_bar( 'first-before-bar|second-before-bar|after-last-bar' ) );
    54     }
    55 
    56     /**
    57      * @ticket 21319
    58      */
    59     function test_is_textdomain_loaded_for_no_translations() {
    60         $this->assertFalse( load_textdomain( 'wp-tests-domain', DIR_TESTDATA . '/non-existent-file' ) );
    61         $this->assertFalse( is_textdomain_loaded( 'wp-tests-domain' ) );
    62         $this->assertInstanceOf( 'NOOP_Translations', get_translations_for_domain( 'wp-tests-domain' ) );
    63         // Ensure that we don't confuse NOOP_Translations to be a loaded text domain.
    64         $this->assertFalse( is_textdomain_loaded( 'wp-tests-domain' ) );
    65         $this->assertFalse( unload_textdomain( 'wp-tests-domain' ) );
    66     }
    67 
    68     /**
    69      * @ticket 21319
    70      */
    71     function test_is_textdomain_is_not_loaded_after_gettext_call_with_no_translations() {
    72         $this->assertFalse( is_textdomain_loaded( 'wp-tests-domain' ) );
    73         __( 'just some string', 'wp-tests-domain' );
    74         $this->assertFalse( is_textdomain_loaded( 'wp-tests-domain' ) );
    7543    }
    7644
     
    177145        $this->assertNotEmpty( $array['X-Generator'] );
    178146    }
    179 
    180     function test_override_load_textdomain_noop() {
    181         add_filter( 'override_load_textdomain', '__return_true' );
    182         $load_textdomain = load_textdomain( 'wp-tests-domain', DIR_TESTDATA . '/non-existent-file' );
    183         remove_filter( 'override_load_textdomain', '__return_true' );
    184 
    185         $this->assertTrue( $load_textdomain );
    186         $this->assertFalse( is_textdomain_loaded( 'wp-tests-domain' ) );
    187     }
    188 
    189     function test_override_load_textdomain_non_existent_mofile() {
    190         add_filter( 'override_load_textdomain', array( $this, '_override_load_textdomain_filter' ), 10, 3 );
    191         $load_textdomain = load_textdomain( 'wp-tests-domain', WP_LANG_DIR . '/non-existent-file.mo' );
    192         remove_filter( 'override_load_textdomain', array( $this, '_override_load_textdomain_filter' ) );
    193 
    194         $is_textdomain_loaded = is_textdomain_loaded( 'wp-tests-domain' );
    195         unload_textdomain( 'wp-tests-domain' );
    196         $is_textdomain_loaded_after = is_textdomain_loaded( 'wp-tests-domain' );
    197 
    198         $this->assertFalse( $load_textdomain );
    199         $this->assertFalse( $is_textdomain_loaded );
    200         $this->assertFalse( $is_textdomain_loaded_after );
    201     }
    202 
    203     function test_override_load_textdomain_custom_mofile() {
    204         add_filter( 'override_load_textdomain', array( $this, '_override_load_textdomain_filter' ), 10, 3 );
    205         $load_textdomain = load_textdomain( 'wp-tests-domain', WP_LANG_DIR . '/plugins/internationalized-plugin-de_DE.mo' );
    206         remove_filter( 'override_load_textdomain', array( $this, '_override_load_textdomain_filter' ) );
    207 
    208         $is_textdomain_loaded = is_textdomain_loaded( 'wp-tests-domain' );
    209         unload_textdomain( 'wp-tests-domain' );
    210         $is_textdomain_loaded_after = is_textdomain_loaded( 'wp-tests-domain' );
    211 
    212         $this->assertTrue( $load_textdomain );
    213         $this->assertTrue( $is_textdomain_loaded );
    214         $this->assertFalse( $is_textdomain_loaded_after );
    215     }
    216 
    217     /**
    218      * @param bool   $override Whether to override the .mo file loading. Default false.
    219      * @param string $domain   Text domain. Unique identifier for retrieving translated strings.
    220      * @param string $mofile   Path to the MO file.
    221      * @return bool
    222      */
    223     function _override_load_textdomain_filter( $override, $domain, $file ) {
    224         global $l10n;
    225 
    226         if ( ! is_readable( $file ) ) {
    227             return false;
    228         }
    229 
    230         $mo = new MO();
    231 
    232         if ( ! $mo->import_from_file( $file ) ) {
    233             return false;
    234         }
    235 
    236         if ( isset( $l10n[ $domain ] ) ) {
    237             $mo->merge_with( $l10n[ $domain ] );
    238         }
    239 
    240         $l10n[ $domain ] = &$mo;
    241 
    242         return true;
    243     }
    244147}
Note: See TracChangeset for help on using the changeset viewer.