WordPress.org

Make WordPress Core

Ticket #10702: 10702.unit-tests.diff

File 10702.unit-tests.diff, 1.9 KB (added by kovshenin, 3 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() {