WordPress.org

Make WordPress Core

Ticket #10702: 10702.unit-tests.diff

File 10702.unit-tests.diff, 1.9 KB (added by kovshenin, 6 years ago)
  • tests/shortcode.php

     
    44 */
    55class Tests_Shortcode extends WP_UnitTestCase {
    66
    7         protected $shortcodes = array( 'test-shortcode-tag', 'footag', 'bartag', 'baztag', 'dumptag', 'hyphen', 'hyphen-foo', 'hyphen-foo-bar' );
     7        protected $shortcodes = array( 'test-shortcode-tag', 'footag', 'bartag', 'baztag', 'dumptag', 'hyphen', 'hyphen-foo', 'hyphen-foo-bar', 'div' );
    88
    99        function setUp() {
    1010                parent::setUp();
     
    7070                return __FUNCTION__;
    7171        }
    7272
     73        function _shortcode_div( $args, $content = '' ) {
     74                if ( empty( $args ) )
     75                        $args = array();
     76
     77                $attributes = array();
     78
     79                foreach ( (array) $args as $key => $value )
     80                        $attributes[] = $key . '="' . esc_attr( $value ) . '"';
     81
     82                if ( $attributes )
     83                        $attributes = ' ' . implode( ' ', $attributes );
     84                else
     85                        $attributes = '';
     86
     87                return "<div{$attributes}>" . do_shortcode( $content ) . "</div{$attributes}>";
     88        }
     89
    7390        function test_noatts() {
    7491                do_shortcode('[test-shortcode-tag /]');
    7592                $this->assertEquals( '', $this->atts );
     
    203220        }
    204221
    205222        /**
     223         * @ticket 10702
     224         */
     225        function test_complex_nested_tags() {
     226                $out = do_shortcode( '[div]content[/div]' );
     227                $this->assertEquals( '<div>content</div>', $out );
     228
     229                $out = do_shortcode( '[div arg="one"][div arg="two"][div arg="three"]content[/div][/div][/div]' );
     230                $this->assertEquals( '<div arg="one"><div arg="two"><div arg="three">content</div arg="three"></div arg="two"></div arg="one">', $out );
     231
     232                $out = do_shortcode( '[div arg="one"]one[div arg="two"]two[/div]one[div arg="three"]three[/div]one[/div]' );
     233                $this->assertEquals( '<div arg="one">one<div arg="two">two</div arg="two">one<div arg="three">three</div arg="three">one</div arg="one">', $out );
     234        }
     235
     236        /**
    206237         * @ticket 6518
    207238         */
    208239        function test_tag_escaped() {