Make WordPress Core

Ticket #45029: 45029-2.diff

File 45029-2.diff, 8.5 KB (added by birgire, 5 years ago)
  • src/wp-includes/widgets/class-wp-widget-media-audio.php

    diff --git src/wp-includes/widgets/class-wp-widget-media-audio.php src/wp-includes/widgets/class-wp-widget-media-audio.php
    index 560c6a3..bc870ca 100644
    class WP_Widget_Media_Audio extends WP_Widget_Media { 
    6262         * @return array Schema for properties.
    6363         */
    6464        public function get_instance_schema() {
    65                 $schema = array_merge(
    66                         parent::get_instance_schema(),
    67                         array(
    68                                 'preload' => array(
    69                                         'type'        => 'string',
    70                                         'enum'        => array( 'none', 'auto', 'metadata' ),
    71                                         'default'     => 'none',
    72                                         'description' => __( 'Preload' ),
    73                                 ),
    74                                 'loop'    => array(
    75                                         'type'        => 'boolean',
    76                                         'default'     => false,
    77                                         'description' => __( 'Loop' ),
    78                                 ),
    79                         )
     65                $schema = array(
     66                        'preload' => array(
     67                                'type'        => 'string',
     68                                'enum'        => array( 'none', 'auto', 'metadata' ),
     69                                'default'     => 'none',
     70                                'description' => __( 'Preload' ),
     71                        ),
     72                        'loop'    => array(
     73                                'type'        => 'boolean',
     74                                'default'     => false,
     75                                'description' => __( 'Loop' ),
     76                        ),
    8077                );
    8178
    8279                foreach ( wp_get_audio_extensions() as $audio_extension ) {
    class WP_Widget_Media_Audio extends WP_Widget_Media { 
    8986                        );
    9087                }
    9188
    92                 return $schema;
     89                return array_merge( $schema, parent::get_instance_schema() );
    9390        }
    9491
    9592        /**
  • src/wp-includes/widgets/class-wp-widget-media-image.php

    diff --git src/wp-includes/widgets/class-wp-widget-media-image.php src/wp-includes/widgets/class-wp-widget-media-image.php
    index 2b9bff2..1995f64 100644
    class WP_Widget_Media_Image extends WP_Widget_Media { 
    6262         */
    6363        public function get_instance_schema() {
    6464                return array_merge(
    65                         parent::get_instance_schema(),
    6665                        array(
    6766                                'size'              => array(
    6867                                        'type'        => 'string',
    class WP_Widget_Media_Image extends WP_Widget_Media { 
    161160                                 * - height (redundant when size is not custom)
    162161                                 * - width (redundant when size is not custom)
    163162                                 */
    164                         )
     163                        ),
     164                        parent::get_instance_schema()
    165165                );
    166166        }
    167167
  • src/wp-includes/widgets/class-wp-widget-media-video.php

    diff --git src/wp-includes/widgets/class-wp-widget-media-video.php src/wp-includes/widgets/class-wp-widget-media-video.php
    index 0be31a6..bb7b06b 100644
    class WP_Widget_Media_Video extends WP_Widget_Media { 
    6363         * @return array Schema for properties.
    6464         */
    6565        public function get_instance_schema() {
    66                 $schema = array_merge(
    67                         parent::get_instance_schema(),
    68                         array(
    69                                 'preload' => array(
    70                                         'type'                  => 'string',
    71                                         'enum'                  => array( 'none', 'auto', 'metadata' ),
    72                                         'default'               => 'metadata',
    73                                         'description'           => __( 'Preload' ),
    74                                         'should_preview_update' => false,
    75                                 ),
    76                                 'loop'    => array(
    77                                         'type'                  => 'boolean',
    78                                         'default'               => false,
    79                                         'description'           => __( 'Loop' ),
    80                                         'should_preview_update' => false,
    81                                 ),
    82                                 'content' => array(
    83                                         'type'                  => 'string',
    84                                         'default'               => '',
    85                                         'sanitize_callback'     => 'wp_kses_post',
    86                                         'description'           => __( 'Tracks (subtitles, captions, descriptions, chapters, or metadata)' ),
    87                                         'should_preview_update' => false,
    88                                 ),
    89                         )
     66
     67                $schema = array(
     68                        'preload' => array(
     69                                'type'                  => 'string',
     70                                'enum'                  => array( 'none', 'auto', 'metadata' ),
     71                                'default'               => 'metadata',
     72                                'description'           => __( 'Preload' ),
     73                                'should_preview_update' => false,
     74                        ),
     75                        'loop'    => array(
     76                                'type'                  => 'boolean',
     77                                'default'               => false,
     78                                'description'           => __( 'Loop' ),
     79                                'should_preview_update' => false,
     80                        ),
     81                        'content' => array(
     82                                'type'                  => 'string',
     83                                'default'               => '',
     84                                'sanitize_callback'     => 'wp_kses_post',
     85                                'description'           => __( 'Tracks (subtitles, captions, descriptions, chapters, or metadata)' ),
     86                                'should_preview_update' => false,
     87                        ),
    9088                );
    9189
    9290                foreach ( wp_get_video_extensions() as $video_extension ) {
    class WP_Widget_Media_Video extends WP_Widget_Media { 
    9997                        );
    10098                }
    10199
    102                 return $schema;
     100                return array_merge( $schema, parent::get_instance_schema() );
    103101        }
    104102
    105103        /**
  • tests/phpunit/tests/widgets/media-audio-widget.php

    diff --git tests/phpunit/tests/widgets/media-audio-widget.php tests/phpunit/tests/widgets/media-audio-widget.php
    index b8ceff3..02779af 100644
    class Test_WP_Widget_Media_Audio extends WP_UnitTestCase { 
    5151        }
    5252
    5353        /**
     54         * Test get_instance_schema filtering.
     55         *
     56         * @covers WP_Widget_Media_Audio::get_instance_schema
     57         *
     58         * @ticket 45029
     59         */
     60        function test_get_instance_schema_filtering() {
     61                $wp_widget_audio = new WP_Widget_Media_Audio();
     62                $schema          = $wp_widget_audio->get_instance_schema();
     63
     64                add_filter( 'widget_media_audio_instance_schema', array( $this, 'filter_instance_schema' ), 10, 2 );
     65                $schema = $wp_widget_audio->get_instance_schema();
     66
     67                $this->assertTrue( $schema['loop']['default'] );
     68        }
     69
     70        /**
     71         * Filters instance schema.
     72         *
     73         * @since 5.2.0
     74         *
     75         * @param array                 $schema Schema.
     76         * @param WP_Widget_Media_Audio $widget Widget.
     77         *
     78         * @return array
     79         */
     80        public function filter_instance_schema( $schema, $widget ) {
     81                // Override the default loop value (false).
     82                $schema['loop']['default'] = true;
     83                return $schema;
     84        }
     85
     86        /**
    5487         * Test constructor.
    5588         *
    5689         * @covers WP_Widget_Media_Audio::__construct()
  • tests/phpunit/tests/widgets/media-image-widget.php

    diff --git tests/phpunit/tests/widgets/media-image-widget.php tests/phpunit/tests/widgets/media-image-widget.php
    index e138f3e..eed1fc3 100644
    class Test_WP_Widget_Media_Image extends WP_UnitTestCase { 
    3434        function test_get_instance_schema() {
    3535                $widget = new WP_Widget_Media_Image();
    3636                $schema = $widget->get_instance_schema();
    37 
    3837                $this->assertEqualSets(
    3938                        array(
    4039                                'alt',
    class Test_WP_Widget_Media_Image extends WP_UnitTestCase { 
    5857        }
    5958
    6059        /**
     60         * Test schema filtering.
     61         *
     62         * @covers WP_Widget_Media_Image::get_instance_schema
     63         *
     64         * @ticket 45029
     65         */
     66        function test_get_instance_schema_filtering() {
     67                $widget = new WP_Widget_Media_Image();
     68                $schema = $widget->get_instance_schema();
     69
     70                add_filter( 'widget_media_image_instance_schema', array( $this, 'filter_instance_schema' ), 10, 2 );
     71                $schema = $widget->get_instance_schema();
     72
     73                $this->assertSame( 'large', $schema['size']['default'] );
     74        }
     75
     76        /**
     77         * Filters instance schema.
     78         *
     79         * @since 5.2.0
     80         *
     81         * @param array                 $schema Schema.
     82         * @param WP_Widget_Media_Image $widget Widget.
     83         *
     84         * @return array
     85         */
     86        public function filter_instance_schema( $schema, $widget ) {
     87                // Override the default size value ('medium').
     88                $schema['size']['default'] = 'large';
     89                return $schema;
     90        }
     91
     92        /**
    6193         * Test constructor.
    6294         *
    6395         * @covers WP_Widget_Media_Image::__construct()
  • tests/phpunit/tests/widgets/media-video-widget.php

    diff --git tests/phpunit/tests/widgets/media-video-widget.php tests/phpunit/tests/widgets/media-video-widget.php
    index e63673d..d8961f1 100644
    class Test_WP_Widget_Media_Video extends WP_UnitTestCase { 
    5252        }
    5353
    5454        /**
     55         * Test schema filtering.
     56         *
     57         * @covers WP_Widget_Media_Video::get_instance_schema
     58         *
     59         * @ticket 45029
     60         */
     61        function test_get_instance_schema_filtering() {
     62                $widget = new WP_Widget_Media_Video();
     63                $schema = $widget->get_instance_schema();
     64
     65                add_filter( 'widget_media_video_instance_schema', array( $this, 'filter_instance_schema' ), 10, 2 );
     66                $schema = $widget->get_instance_schema();
     67
     68                $this->assertTrue( $schema['loop']['default'] );
     69        }
     70
     71        /**
     72         * Filters instance schema.
     73         *
     74         * @since 5.2.0
     75         *
     76         * @param array                 $schema Schema.
     77         * @param WP_Widget_Media_Video $widget Widget.
     78         *
     79         * @return array
     80         */
     81        public function filter_instance_schema( $schema, $widget ) {
     82                // Override the default loop value (false).
     83                $schema['loop']['default'] = true;
     84                return $schema;
     85        }
     86
     87        /**
    5588         * Test constructor.
    5689         *
    5790         * @covers WP_Widget_Media_Video::__construct()