Make WordPress Core


Ignore:
Timestamp:
01/09/2016 02:17:02 PM (9 years ago)
Author:
swissspidy
Message:

Media: Fix wp_audio_shortcode and wp_video_shortcode attributes handling.

Although documented, the class and style attributes were simply ignored.
Adds unit tests.

Fixes #35367.

File:
1 edited

Legend:

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

    r36121 r36240  
    416416        $matches2 = get_media_embedded_in_content( $reversed, array( 'audio', 'video' ) );
    417417        $this->assertEquals( array( $video, $audio ), $matches2 );
     418    }
     419
     420    /**
     421     * @ticket 35367
     422     */
     423    function test_wp_audio_shortcode_with_empty_params() {
     424        $this->assertNull( wp_audio_shortcode( array() ) );
     425    }
     426
     427    /**
     428     * @ticket 35367
     429     */
     430    function test_wp_audio_shortcode_with_bad_attr() {
     431        $this->assertSame(
     432            '<a class="wp-embedded-audio" href="https://example.com/foo.php">https://example.com/foo.php</a>',
     433            wp_audio_shortcode( array(
     434                'src' => 'https://example.com/foo.php',
     435            ) )
     436        );
     437    }
     438
     439    /**
     440     * @ticket 35367
     441     */
     442    function test_wp_audio_shortcode_attributes() {
     443        $actual = wp_audio_shortcode( array(
     444            'src' => 'https://example.com/foo.mp3',
     445        ) );
     446
     447        $this->assertContains( 'src="https://example.com/foo.mp3', $actual );
     448        $this->assertNotContains( 'loop', $actual );
     449        $this->assertNotContains( 'autoplay', $actual );
     450        $this->assertContains( 'preload="none"', $actual );
     451        $this->assertContains( 'class="wp-audio-shortcode"', $actual );
     452        $this->assertContains( 'style="width: 100%; visibility: hidden;"', $actual );
     453
     454        $actual = wp_audio_shortcode( array(
     455            'src'      => 'https://example.com/foo.mp3',
     456            'loop'     => true,
     457            'autoplay' => true,
     458            'preload'  => true,
     459            'class'    => 'foobar',
     460            'style'    => 'padding:0;',
     461        ) );
     462
     463        $this->assertContains( 'src="https://example.com/foo.mp3', $actual );
     464        $this->assertContains( 'loop="1"', $actual );
     465        $this->assertContains( 'autoplay="1"', $actual );
     466        $this->assertContains( 'preload="1"', $actual );
     467        $this->assertContains( 'class="foobar"', $actual );
     468        $this->assertContains( 'style="padding:0;"', $actual );
     469    }
     470
     471    /**
     472     * @ticket  35367
     473     * @depends test_video_shortcode_body
     474     */
     475    function test_wp_video_shortcode_with_empty_params() {
     476        $this->assertNull( wp_video_shortcode( array() ) );
     477    }
     478
     479    /**
     480     * @ticket  35367
     481     * @depends test_video_shortcode_body
     482     */
     483    function test_wp_video_shortcode_with_bad_attr() {
     484        $this->assertSame(
     485            '<a class="wp-embedded-video" href="https://example.com/foo.php">https://example.com/foo.php</a>',
     486            wp_video_shortcode( array(
     487                'src' => 'https://example.com/foo.php',
     488            ) )
     489        );
     490    }
     491
     492    /**
     493     * @ticket  35367
     494     * @depends test_video_shortcode_body
     495     */
     496    function test_wp_video_shortcode_attributes() {
     497        $actual = wp_video_shortcode( array(
     498            'src' => 'https://example.com/foo.mp4',
     499        ) );
     500
     501        $this->assertContains( 'src="https://example.com/foo.mp4', $actual );
     502        $this->assertNotContains( 'loop', $actual );
     503        $this->assertNotContains( 'autoplay', $actual );
     504        $this->assertContains( 'preload="metadata"', $actual );
     505        $this->assertContains( 'width="640"', $actual );
     506        $this->assertContains( 'height="360"', $actual );
     507        $this->assertContains( 'class="wp-video-shortcode"', $actual );
     508
     509        $actual = wp_video_shortcode( array(
     510            'src'      => 'https://example.com/foo.mp4',
     511            'poster'   => 'https://example.com/foo.png',
     512            'loop'     => true,
     513            'autoplay' => true,
     514            'preload'  => true,
     515            'width'    => 123,
     516            'height'   => 456,
     517            'class'    => 'foobar',
     518        ) );
     519
     520        $this->assertContains( 'src="https://example.com/foo.mp4', $actual );
     521        $this->assertContains( 'poster="https://example.com/foo.png', $actual );
     522        $this->assertContains( 'loop="1"', $actual );
     523        $this->assertContains( 'autoplay="1"', $actual );
     524        $this->assertContains( 'preload="1"', $actual );
     525        $this->assertContains( 'width="123"', $actual );
     526        $this->assertContains( 'height="456"', $actual );
     527        $this->assertContains( 'class="foobar"', $actual );
    418528    }
    419529
Note: See TracChangeset for help on using the changeset viewer.