WordPress.org

Make WordPress Core

Ticket #29807: 29807.2.diff

File 29807.2.diff, 3.0 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 7399e9c..2ccb3a9 100644
    a b if ( ! CUSTOM_TAGS ) { 
    119119                        'valign' => true,
    120120                        'width' => true,
    121121                ),
    122                 'colgroup' => array(
     122                'colgroup' => array(
    123123                        'align' => true,
    124124                        'char' => true,
    125125                        'charoff' => true,
    if ( ! CUSTOM_TAGS ) { 
    227227                        'longdesc' => true,
    228228                        'vspace' => true,
    229229                        'src' => true,
     230                        'srcset' => true,
    230231                        'usemap' => true,
    231232                        'width' => true,
    232233                ),
    if ( ! CUSTOM_TAGS ) { 
    264265                        'lang' => true,
    265266                        'xml:lang' => true,
    266267                ),
     268                'picture' => array(),
    267269                'pre' => array(
    268270                        'width' => true,
    269271                ),
    if ( ! CUSTOM_TAGS ) { 
    286288                ),
    287289                'small' => array(),
    288290                'strike' => array(),
     291                'source' => array(
     292                        'srcset' => true,
     293                        'type' => true,
     294                        'media' => true,
     295                        'sizes' => true,
     296                ),
    289297                'strong' => array(),
    290298                'sub' => array(),
    291299                'summary' => array(
  • tests/phpunit/tests/kses.php

    diff --git a/tests/phpunit/tests/kses.php b/tests/phpunit/tests/kses.php
    index 657fb30..86d79a1 100644
    a b  
    1 <?php
     1§<?php
    22/**
    33 * Some simple test cases for KSES post content filtering
    44 *
    class Tests_Kses extends WP_UnitTestCase { 
    5656        }
    5757
    5858        /**
     59         * @ticket 29807
     60         */
     61        function test_wp_filter_post_kses_img() {
     62                global $allowedposttags;
     63
     64                $attributes = array(
     65                        'class' => 'classname',
     66                        'id' => 'idattr',
     67                        'style' => 'color: red;',
     68                        'alt' => 'alt',
     69                        'src' => '/test.png',
     70                        'srcset' => '/test.png 2x',
     71                        'width' => '100',
     72                        'height' => '100',
     73                        'usemap' => '#hash',
     74                        'ismap' => 'ismap',
     75                        'vspace' => '20',
     76                        'hspace' => '20',
     77                        'longdesc' => 'this is the longdesc',
     78                        'align' => 'middle',
     79                        'border' => '5',
     80                );
     81
     82                foreach ( $attributes as $name => $value ) {
     83
     84                        if ( $name === $value ) {
     85                                $string = "<img $value />";
     86                                $expect_string = "<img " . trim( $value, ';' ) . " />";
     87                        } else {
     88                                $string = "<img $name='$value' />";
     89                                $expect_string = "<img $name='" . trim( $value, ';' ) . "' />";
     90                        }
     91
     92                        $this->assertEquals( $expect_string, wp_kses( $string, $allowedposttags ) );
     93
     94                }
     95        }
     96
     97        /**
     98         * @ticket 29807
     99         */
     100        function test_wp_filter_post_kses_picture() {
     101                global $allowedposttags;
     102
     103                $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>';
     104                $this->assertEquals( $html, wp_kses( $html, $allowedposttags ) );
     105
     106        }
     107
     108
     109        /**
    59110         * @ticket 20210
    60111         */
    61112        function test_wp_filter_post_kses_abbr() {
    EOF; 
    374425                $this->assertEquals( '&frac34;', wp_kses_normalize_entities( '&frac34;' ) );
    375426                $this->assertEquals( '&there4;', wp_kses_normalize_entities( '&there4;' ) );
    376427        }
    377        
     428
    378429        /**
    379430         * Test removal of invalid binary data for HTML.
    380431         *