WordPress.org

Make WordPress Core

Ticket #29807: 29807.4.diff

File 29807.4.diff, 2.6 KB (added by mattheu, 5 years ago)
  • src/wp-includes/kses.php

    diff --git a/src/wp-includes/kses.php b/src/wp-includes/kses.php
    index ba96b08..1f2299e 100644
    a b if ( ! CUSTOM_TAGS ) { 
    235235                        'longdesc' => true,
    236236                        'vspace' => true,
    237237                        'src' => true,
     238                        'srcset' => true,
    238239                        'usemap' => true,
    239240                        'width' => true,
    240241                ),
    if ( ! CUSTOM_TAGS ) { 
    272273                        'lang' => true,
    273274                        'xml:lang' => true,
    274275                ),
     276                'picture' => array(),
    275277                'pre' => array(
    276278                        'width' => true,
    277279                ),
    if ( ! CUSTOM_TAGS ) { 
    293295                        'xml:lang' => true,
    294296                ),
    295297                'small' => array(),
     298                'source' => array(
     299                        'srcset' => true,
     300                        'type' => true,
     301                        'media' => true,
     302                        'sizes' => true,
     303                ),
    296304                'strike' => array(),
    297305                'strong' => array(),
    298306                'sub' => array(),
  • tests/phpunit/tests/kses.php

    diff --git a/tests/phpunit/tests/kses.php b/tests/phpunit/tests/kses.php
    index 657fb30..c9904a8 100644
    a b class Tests_Kses extends WP_UnitTestCase { 
    7575                }
    7676        }
    7777
     78        /**
     79         * @ticket 29807
     80         */
     81        function test_wp_filter_post_kses_img() {
     82                global $allowedposttags;
     83
     84                $attributes = array(
     85                        'class' => 'classname',
     86                        'id' => 'idattr',
     87                        'style' => 'color: red;',
     88                        'alt' => 'alt',
     89                        'src' => '/test.png',
     90                        'srcset' => '/test.png 2x',
     91                        'width' => '100',
     92                        'height' => '100',
     93                        'usemap' => '#hash',
     94                        'ismap' => 'ismap',
     95                        'vspace' => '20',
     96                        'hspace' => '20',
     97                        'longdesc' => 'this is the longdesc',
     98                        'align' => 'middle',
     99                        'border' => '5',
     100                );
     101
     102                foreach ( $attributes as $name => $value ) {
     103
     104                        if ( $name === $value ) {
     105                                $string = "<img $value />";
     106                                $expect_string = "<img " . trim( $value, ';' ) . " />";
     107                        } else {
     108                                $string = "<img $name='$value' />";
     109                                $expect_string = "<img $name='" . trim( $value, ';' ) . "' />";
     110                        }
     111
     112                        $this->assertEquals( $expect_string, wp_kses( $string, $allowedposttags ) );
     113
     114                }
     115        }
     116
     117        /**
     118         * @ticket 29807
     119         */
     120        function test_wp_filter_post_kses_picture() {
     121                global $allowedposttags;
     122
     123                $html = '<picture><source srcset="pear-mobile.jpeg" media="(max-width: 720px)" type="image/png"><source srcset="pear-tablet.jpeg" media="(max-width: 1280px)" type="image/png"><img src="pear-desktop.jpeg" alt="The pear is juicy."></picture>';
     124                $this->assertEquals( $html, wp_kses( $html, $allowedposttags ) );
     125
     126        }
     127
    78128        function test_feed_links() {
    79129                global $allowedposttags;
    80130
    EOF; 
    374424                $this->assertEquals( '&frac34;', wp_kses_normalize_entities( '&frac34;' ) );
    375425                $this->assertEquals( '&there4;', wp_kses_normalize_entities( '&there4;' ) );
    376426        }
    377        
     427
    378428        /**
    379429         * Test removal of invalid binary data for HTML.
    380430         *