WordPress.org

Make WordPress Core

Ticket #28564: miqro-28564.2.patch

File miqro-28564.2.patch, 2.9 KB (added by miqrogroove, 6 years ago)

Adds one more unit test.

  • src/wp-includes/formatting.php

     
    203203                . '|'
    204204                .       '\['            // Find start of shortcode.
    205205                .       '\[?'           // Shortcodes may begin with [[
    206                 .       '[^\[\]<>]+'    // Shortcodes do not contain other shortcodes or HTML elements.
     206                .       '[^\[\]]+'      // Shortcodes do not contain other shortcodes.  HTML recursion is permitted, but not texturized.
    207207                .       '\]'            // Find end of shortcode.
    208208                .       '\]?'           // Shortcodes may end with ]]
    209209                . ')/s';
     
    220220                                _wptexturize_pushpop_element( $curl, $no_texturize_tags_stack, $no_texturize_tags, '<', '>' );
    221221                        }
    222222
    223                 } elseif ( '[' === $first && 1 === preg_match( '/^\[[^\[\]<>]+\]$/', $curl ) ) {
     223                } elseif ( '[' === $first && 1 === preg_match( '/^\[[^\[\]]+\]$/', $curl ) ) {
    224224                        // This is a shortcode delimeter.
    225225
    226226                        _wptexturize_pushpop_element( $curl, $no_texturize_shortcodes_stack, $no_texturize_shortcodes, '[', ']' );
    227227
    228                 } elseif ( '[' === $first && 1 === preg_match( '/^\[\[?[^\[\]<>]+\]\]?$/', $curl ) ) {
     228                } elseif ( '[' === $first && 1 === preg_match( '/^\[\[?[^\[\]]+\]\]?$/', $curl ) ) {
    229229                        // This is an escaped shortcode delimeter.
    230230
    231231                        // Do not texturize.
  • tests/phpunit/tests/formatting/WPTexturize.php

     
    11461146        function data_tag_avoidance() {
    11471147                return array(
    11481148                        array(
     1149                                '[ is it wise to <a title="allow user content ] here? hmm"> maybe </a> ]',
     1150                                '[ is it wise to <a title="allow user content ] here? hmm&#8221;> maybe </a> ]',
     1151                        ),
     1152                        array(
    11491153                                '[ photos by <a href="http://example.com/?a[]=1&a[]=2"> this guy </a> ]',
    11501154                                '[ photos by <a href="http://example.com/?a[]=1&#038;a[]=2"> this guy </a> ]',
    11511155                        ),
     
    11861190                                '[code]...[/code]]...', // This test would not pass in 3.9 because the extra brace was always ignored by texturize.
    11871191                        ),
    11881192                        array(
     1193                                '[gal>ery ...]', // This is a potentially usable shortcode.
    11891194                                '[gal>ery ...]',
    1190                                 '[gal>ery &#8230;]',
    11911195                        ),
    11921196                        array(
    11931197                                '[gallery ...',
     
    11941198                                '[gallery &#8230;',
    11951199                        ),
    11961200                        array(
     1201                                '[gallery <br ... /> ...]', // This tag is still valid. Shortcode 'attributes' are not considered in the initial parsing of shortcodes, and HTML is allowed.
    11971202                                '[gallery <br ... /> ...]',
    1198                                 '[gallery <br ... /> &#8230;]',
    11991203                        ),
    12001204                        array(
    12011205                                '<br [gallery ...] ... />',
     
    12341238                                '[/gallery ...]]',
    12351239                        ),
    12361240                        array(
     1241                                '[[gallery <br ... /> ...]]', // This gets parsed as an escaped shortcode with embedded HTML.  Brains may explode.
    12371242                                '[[gallery <br ... /> ...]]',
    1238                                 '[[gallery <br ... /> &#8230;]]',
    12391243                        ),
    12401244                        array(
    12411245                                '<br [[gallery ...]] ... />',