WordPress.org

Make WordPress Core

Ticket #30162: 30162.2.diff

File 30162.2.diff, 2.0 KB (added by johnbillion, 5 years ago)
  • src/wp-includes/formatting.php

     
    21952195        $nested_code_pre = 0; // Keep track of how many levels link is nested inside <pre> or <code>
    21962196        foreach ( $textarr as $piece ) {
    21972197
    2198                 if ( preg_match( '|^<code[\s>]|i', $piece ) || preg_match( '|^<pre[\s>]|i', $piece ) )
     2198                if ( preg_match( '|^<code[\s>]|i', $piece ) || preg_match( '|^<pre[\s>]|i', $piece ) || preg_match( '|^<script[\s>]|i', $piece ) || preg_match( '|^<style[\s>]|i', $piece ) )
    21992199                        $nested_code_pre++;
    2200                 elseif ( ( '</code>' === strtolower( $piece ) || '</pre>' === strtolower( $piece ) ) && $nested_code_pre )
     2200                elseif ( $nested_code_pre && ( '</code>' === strtolower( $piece ) || '</pre>' === strtolower( $piece ) || '</script>' === strtolower( $piece ) || '</style>' === strtolower( $piece ) ) )
    22012201                        $nested_code_pre--;
    22022202
    22032203                if ( $nested_code_pre || empty( $piece ) || ( $piece[0] === '<' && ! preg_match( '|^<\s*[\w]{1,20}+://|', $piece ) ) ) {
  • tests/phpunit/tests/formatting/MakeClickable.php

     
    372372                                  href='mailto:someone@example.com'>someone@example.com</a>";
    373373                $this->assertEquals( $html, make_clickable( $html ) );
    374374        }
     375
     376        /**
     377         * @dataProvider data_script_and_style_tags
     378         * @ticket 30162
     379         */
     380        public function test_dont_link_script_and_style_tags( $tag ) {
     381                $this->assertEquals( $tag, make_clickable( $tag ) );
     382        }
     383
     384        public function data_script_and_style_tags() {
     385                return array(
     386                        array(
     387                                '<script>http://wordpress.org</script>',
     388                        ),
     389                        array(
     390                                '<style>http://wordpress.org</style>',
     391                        ),
     392                        array(
     393                                '<script type="text/javascript">http://wordpress.org</script>',
     394                        ),
     395                        array(
     396                                '<style type="text/css">http://wordpress.org</style>',
     397                        ),
     398                );
     399        }
     400
    375401}