Make WordPress Core

Changeset 57299


Ignore:
Timestamp:
01/16/2024 09:43:11 PM (15 months 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.