Make WordPress Core


Ignore:
Timestamp:
01/23/2024 03:13:32 PM (2 years ago)
Author:
swissspidy
Message:

I18N: Improve edge case handling in WP_Translation_Controller.

Prevents PHP warnings for possibly undefined array keys.
Also fixes incorrect @covers annotations.

Follow-up to [57337].
See #59656.

File:
1 edited

Legend:

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

    r57337 r57339  
    111111     * @return void
    112112     */
     113    public function test_load_textdomain_prefers_php_files_by_default() {
     114        $load_successful = load_textdomain( 'wp-tests-domain', DIR_TESTDATA . '/pomo/simple.mo' );
     115
     116        $instance = WP_Translation_Controller::instance();
     117
     118        $is_loaded = $instance->is_textdomain_loaded( 'wp-tests-domain', 'en_US' );
     119
     120        $unload_mo  = $instance->unload_file( DIR_TESTDATA . '/pomo/simple.mo', 'wp-tests-domain' );
     121        $unload_php = $instance->unload_file( DIR_TESTDATA . '/pomo/simple.l10n.php', 'wp-tests-domain' );
     122
     123        $unload_successful = unload_textdomain( 'wp-tests-domain' );
     124
     125        $this->assertTrue( $load_successful, 'Translation not successfully loaded' );
     126        $this->assertTrue( $is_loaded );
     127        $this->assertFalse( $unload_mo );
     128        $this->assertTrue( $unload_php );
     129        $this->assertTrue( $unload_successful );
     130    }
     131
     132    /**
     133     * @covers ::load_textdomain
     134     *
     135     * @return void
     136     */
    113137    public function test_load_textdomain_reads_php_files_if_filtered_format_is_unsupported() {
    114138        add_filter(
     
    298322
    299323    /**
     324     * @covers ::unload_file
     325     * @covers ::unload_textdomain
     326     *
     327     * @return void
     328     */
     329    public function test_unload_non_existent_files_and_textdomains() {
     330        $controller = new WP_Translation_Controller();
     331        $this->assertFalse( $controller->unload_textdomain( 'foobarbaz' ) );
     332        $this->assertFalse( $controller->unload_textdomain( 'foobarbaz', 'es_ES' ) );
     333        $this->assertFalse( $controller->unload_textdomain( 'default', 'es_ES' ) );
     334        $this->assertFalse( $controller->unload_file( DIR_TESTDATA . '/l10n/fa_IR.mo' ) );
     335        $this->assertFalse( $controller->unload_file( DIR_TESTDATA . '/l10n/fa_IR.mo', 'es_ES' ) );
     336    }
     337
     338    /**
    300339     * @covers ::load_textdomain
    301340     * @covers ::unload_textdomain
Note: See TracChangeset for help on using the changeset viewer.