WordPress.org

Make WordPress Core

Ticket #39691: 39691.4.patch

File 39691.4.patch, 4.5 KB (added by enrico.sorcinelli, 7 months ago)

Updated with unit test

  • src/wp-includes/js/tinymce/plugins/wplink/plugin.js

     
    396396                                        } ) 
    397397                                        .autocomplete( { 
    398398                                                source: function( request, response ) { 
     399 
     400                                                        // Normalizes search (by removing spaces/uppercase and so on) 
     401                                                        if ( 'undefined' !== typeof window.wpLink ) { 
     402                                                                request.term = window.wpLink.normalizeQuery( request.term ); 
     403                                                        } 
     404 
    399405                                                        if ( last === request.term ) { 
    400406                                                                response( cache ); 
    401407                                                                return; 
  • src/wp-includes/js/wplink.js

     
    495495                                rivers.recent.hide(); 
    496496                                rivers.search.show(); 
    497497 
     498                                // Normalizes search (by removing spaces/uppercase and so on) 
     499                                search = this.normalizeQuery( search ); 
     500 
    498501                                // Don't search if the keypress didn't change the title. 
    499502                                if ( wpLink.lastSearch == search ) 
    500503                                        return; 
     
    591594                                funcContext = this; 
    592595                                funcTriggered = true; 
    593596                        }; 
     597                }, 
     598 
     599                normalizeQuery: function ( query, options ) { 
     600                        options = $.extend( true, { 
     601                                lower: /_ci$/.test( 'undefined' !== typeof dbCollate ? dbCollate : '' ) 
     602                        }, options || {} ); 
     603                        return ( options.lower ? query.toLowerCase() : query ).trim().replace( /\s+/g, ' ' ); 
    594604                } 
    595605        }; 
    596606 
  • src/wp-admin/admin-header.php

     
    2323 * @global string    $parent_file 
    2424 */ 
    2525global $title, $hook_suffix, $current_screen, $wp_locale, $pagenow, 
    26         $update_title, $total_update_count, $parent_file; 
     26        $update_title, $total_update_count, $parent_file, $wpdb; 
    2727 
    2828// Catch plugins that include admin-header.php before admin.php completes. 
    2929if ( empty( $current_screen ) ) 
     
    8383        thousandsSeparator = '<?php echo addslashes( $wp_locale->number_format['thousands_sep'] ); ?>', 
    8484        decimalPoint = '<?php echo addslashes( $wp_locale->number_format['decimal_point'] ); ?>', 
    8585        isRtl = <?php echo (int) is_rtl(); ?>; 
     86        dbCollate = '<?php echo $wpdb->collate; ?>'; 
    8687</script> 
    8788<meta name="viewport" content="width=device-width,initial-scale=1.0"> 
    8889<?php 
  • tests/qunit/index.html

     
    7878                <script src="../../src/wp-includes/js/shortcode.js"></script> 
    7979                <script src="../../src/wp-admin/js/customize-controls.js"></script> 
    8080                <script src="../../src/wp-includes/js/wp-api.js"></script> 
     81                <script src="../../src/wp-includes/js/wplink.js"></script> 
    8182 
    8283                <script type='text/javascript' src='../../src/wp-includes/js/jquery/ui/core.js'></script> 
    8384                <script type='text/javascript' src='../../src/wp-includes/js/jquery/ui/widget.js'></script> 
     
    123124                <script src="wp-admin/js/customize-header.js"></script> 
    124125                <script src="wp-includes/js/shortcode.js"></script> 
    125126                <script src="wp-includes/js/wp-api.js"></script> 
     127                <script src="wp-includes/js/wplink.js"></script> 
    126128                <script src="wp-admin/js/customize-controls.js"></script> 
    127129                <script src="wp-admin/js/customize-controls-utils.js"></script> 
    128130                <script src="wp-admin/js/customize-nav-menus.js"></script> 
  • tests/qunit/wp-includes/js/wplink.js

     
     1/* global wp, dbCollate */ 
     2window.dbCollate = 'utf8mb4_unicode_ci'; 
     3 
     4( function( QUnit ) { 
     5        module( 'wpLink' ); 
     6 
     7        QUnit.test( 'normalizeQuery', function( assert ) { 
     8                assert.equal( wpLink.normalizeQuery( ' foo' ), 'foo', 'Removing spaces' ); 
     9                assert.equal( wpLink.normalizeQuery( '   foo    baz     bar   '), 'foo baz bar', 'Removing spaces' ); 
     10                assert.equal( wpLink.normalizeQuery( 'Foo' ), 'foo', 'Lowercase according to dbCollate' ); 
     11                assert.equal( wpLink.normalizeQuery( 'Foo', { lower: true } ), 'foo', 'Forces lowercase' ); 
     12                assert.equal( wpLink.normalizeQuery( 'Foo', { lower: false } ), 'Foo', 'Skip lowercase' ); 
     13                assert.equal( wpLink.normalizeQuery( '   Foo  bAz   BaR   ' ), 'foo baz bar', 'A more complete test' ); 
     14        }); 
     15         
     16} )( window.QUnit ); 
     17 No newline at end of file