WordPress.org

Make WordPress Core

Ticket #39691: 39691.4.patch

File 39691.4.patch, 4.5 KB (added by enrico.sorcinelli, 11 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