Make WordPress Core

Changeset 57299


Ignore:
Timestamp:
01/16/2024 09:43:11 PM (3 years ago)
Author:
SergeyBiryukov
Message:

I18N: Correctly invalidate language file paths in WP_Textdomain_Registry.

Since the cache key in ::get_language_files_from_path() is based on a path that always includes a trailing slash, the path in ::invalidate_mo_files_cache() should include the trailing slash as well.

Includes adjusting the test expectations accordingly.

Follow-up to [57287], [57290], [57298].

See #58919.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/class-wp-textdomain-registry.php

    r57290 r57299  
    238238                        switch ( $type ) {
    239239                                case 'plugin':
    240                                         wp_cache_delete( 'cached_mo_files_' . md5( WP_LANG_DIR . '/plugins' ), 'translations' );
     240                                        wp_cache_delete( 'cached_mo_files_' . md5( WP_LANG_DIR . '/plugins/' ), 'translations' );
    241241                                        break;
    242242                                case 'theme':
    243                                         wp_cache_delete( 'cached_mo_files_' . md5( WP_LANG_DIR . '/themes' ), 'translations' );
     243                                        wp_cache_delete( 'cached_mo_files_' . md5( WP_LANG_DIR . '/themes/' ), 'translations' );
    244244                                        break;
    245245                                default:
    246                                         wp_cache_delete( 'cached_mo_files_' . md5( WP_LANG_DIR ), 'translations' );
     246                                        wp_cache_delete( 'cached_mo_files_' . md5( WP_LANG_DIR . '/' ), 'translations' );
    247247                                        break;
    248248                        }
  • trunk/tests/phpunit/tests/l10n/wpTextdomainRegistry.php

    r57298 r57299  
    2020
    2121        public function tear_down() {
    22                 wp_cache_delete( 'cached_mo_files_' . md5( WP_LANG_DIR . '/foobar' ), 'translations' );
    23                 wp_cache_delete( 'cached_mo_files_' . md5( WP_LANG_DIR . '/plugins' ), 'translations' );
    24                 wp_cache_delete( 'cached_mo_files_' . md5( WP_LANG_DIR . '/themes' ), 'translations' );
    25                 wp_cache_delete( 'cached_mo_files_' . md5( WP_LANG_DIR ), 'translations' );
     22                wp_cache_delete( 'cached_mo_files_' . md5( WP_LANG_DIR . '/foobar/' ), 'translations' );
     23                wp_cache_delete( 'cached_mo_files_' . md5( WP_LANG_DIR . '/plugins/' ), 'translations' );
     24                wp_cache_delete( 'cached_mo_files_' . md5( WP_LANG_DIR . '/themes/' ), 'translations' );
     25                wp_cache_delete( 'cached_mo_files_' . md5( WP_LANG_DIR . '/' ), 'translations' );
    2626
    2727                parent::tear_down();
     
    101101        public function test_get_language_files_from_path_short_circuit() {
    102102                add_filter( 'pre_get_language_files_from_path', '__return_empty_array' );
    103                 $result = $this->instance->get_language_files_from_path( WP_LANG_DIR . '/plugins' );
     103                $result = $this->instance->get_language_files_from_path( WP_LANG_DIR . '/plugins/' );
    104104                remove_filter( 'pre_get_language_files_from_path', '__return_empty_array' );
    105105
    106                 $cache = wp_cache_get( 'cached_mo_files_' . md5( WP_LANG_DIR . '/plugins' ), 'translations' );
     106                $cache = wp_cache_get( 'cached_mo_files_' . md5( WP_LANG_DIR . '/plugins/' ), 'translations' );
    107107
    108108                $this->assertEmpty( $result );
     
    114114         */
    115115        public function test_invalidate_mo_files_cache() {
    116                 $this->instance->get_language_files_from_path( WP_LANG_DIR . '/plugins' );
    117                 $this->instance->get_language_files_from_path( WP_LANG_DIR . '/themes' );
    118                 $this->instance->get_language_files_from_path( WP_LANG_DIR );
     116                $this->instance->get_language_files_from_path( WP_LANG_DIR . '/plugins/' );
     117                $this->instance->get_language_files_from_path( WP_LANG_DIR . '/themes/' );
     118                $this->instance->get_language_files_from_path( WP_LANG_DIR . '/' );
    119119
    120120                $this->instance->invalidate_mo_files_cache(
     
    145145                );
    146146
    147                 $this->assertFalse( wp_cache_get( 'cached_mo_files_' . md5( WP_LANG_DIR . '/plugins' ), 'translations' ) );
    148                 $this->assertFalse( wp_cache_get( 'cached_mo_files_' . md5( WP_LANG_DIR . '/themes' ), 'translations' ) );
    149                 $this->assertFalse( wp_cache_get( 'cached_mo_files_' . md5( WP_LANG_DIR ), 'translations' ) );
     147                $this->assertFalse( wp_cache_get( 'cached_mo_files_' . md5( WP_LANG_DIR . '/plugins/' ), 'translations' ) );
     148                $this->assertFalse( wp_cache_get( 'cached_mo_files_' . md5( WP_LANG_DIR . '/themes/' ), 'translations' ) );
     149                $this->assertFalse( wp_cache_get( 'cached_mo_files_' . md5( WP_LANG_DIR . '/' ), 'translations' ) );
    150150        }
    151151
Note: See TracChangeset for help on using the changeset viewer.