Make WordPress Core


Ignore:
Timestamp:
01/23/2024 03:13:32 PM (3 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.