Make WordPress Core


Ignore:
Timestamp:
07/22/2015 05:14:50 AM (9 years ago)
Author:
pento
Message:

Shortcodes: Improve the reliablity of shortcodes inside HTML tags.

Props miqrogroove.

See #15694.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/shortcode.php

    r33118 r33359  
    405405
    406406    /**
     407     * Check for bugginess using normal input with latest patches.
     408     *
     409     * @dataProvider data_escaping
     410     */
     411    function test_escaping( $input, $output ) {
     412        return $this->assertEquals( $output, do_shortcode( $input ) );
     413    }
     414
     415    function data_escaping() {
     416        return array(
     417            array(
     418                '<!--[if lt IE 7]>',
     419                '<!--[if lt IE 7]>',
     420            ),
     421            array(
     422                '[gallery title="<div>hello</div>"]',
     423                '',
     424            ),
     425            array(
     426                '[caption caption="test" width="2"]<div>hello</div>[/caption]',
     427                '<div style="width: 12px" class="wp-caption alignnone"><div>hello</div><p class="wp-caption-text">test</p></div>',
     428            ),
     429            array(
     430                '<div [gallery]>',
     431                '<div >',
     432            ),
     433            array(
     434                '<div [[gallery]]>',
     435                '<div [gallery]>',
     436            ),
     437            array(
     438                '[gallery]<div>Hello</div>[/gallery]',
     439                '',
     440            ),
     441        );
     442    }
     443
     444    /**
     445     * Check for bugginess using normal input with latest patches.
     446     *
     447     * @dataProvider data_escaping2
     448     */
     449    function test_escaping2( $input, $output ) {
     450        return $this->assertEquals( $output, strip_shortcodes( $input ) );
     451    }
     452
     453    function data_escaping2() {
     454        return array(
     455            array(
     456                '<!--[if lt IE 7]>',
     457                '<!--[if lt IE 7]>',
     458            ),
     459            array(
     460                '[gallery title="<div>hello</div>"]',
     461                '',
     462            ),
     463            array(
     464                '[caption caption="test" width="2"]<div>hello</div>[/caption]',
     465                '',
     466            ),
     467            array(
     468                '<div [gallery]>', // Shortcodes will never be stripped inside elements.
     469                '<div [gallery]>',
     470            ),
     471            array(
     472                '<div [[gallery]]>', // Shortcodes will never be stripped inside elements.
     473                '<div [[gallery]]>',
     474            ),
     475            array(
     476                '[gallery]<div>Hello</div>[/gallery]',
     477                '',
     478            ),
     479        );
     480    }
     481
     482    /**
    407483     * @ticket 26343
    408484     */
Note: See TracChangeset for help on using the changeset viewer.