diff --git a/tests/phpunit/tests/widgets/media-audio-widget.php b/tests/phpunit/tests/widgets/media-audio-widget.php index b8ceff3875..02779af2d8 100644 --- a/tests/phpunit/tests/widgets/media-audio-widget.php +++ b/tests/phpunit/tests/widgets/media-audio-widget.php @@ -50,6 +50,39 @@ class Test_WP_Widget_Media_Audio extends WP_UnitTestCase { ); } + /** + * Test get_instance_schema filtering. + * + * @covers WP_Widget_Media_Audio::get_instance_schema + * + * @ticket 45029 + */ + function test_get_instance_schema_filtering() { + $wp_widget_audio = new WP_Widget_Media_Audio(); + $schema = $wp_widget_audio->get_instance_schema(); + + add_filter( 'widget_media_audio_instance_schema', array( $this, 'filter_instance_schema' ), 10, 2 ); + $schema = $wp_widget_audio->get_instance_schema(); + + $this->assertTrue( $schema['loop']['default'] ); + } + + /** + * Filters instance schema. + * + * @since 5.2.0 + * + * @param array $schema Schema. + * @param WP_Widget_Media_Audio $widget Widget. + * + * @return array + */ + public function filter_instance_schema( $schema, $widget ) { + // Override the default loop value (false). + $schema['loop']['default'] = true; + return $schema; + } + /** * Test constructor. * diff --git a/tests/phpunit/tests/widgets/media-image-widget.php b/tests/phpunit/tests/widgets/media-image-widget.php index e138f3e796..eed1fc35df 100644 --- a/tests/phpunit/tests/widgets/media-image-widget.php +++ b/tests/phpunit/tests/widgets/media-image-widget.php @@ -34,7 +34,6 @@ class Test_WP_Widget_Media_Image extends WP_UnitTestCase { function test_get_instance_schema() { $widget = new WP_Widget_Media_Image(); $schema = $widget->get_instance_schema(); - $this->assertEqualSets( array( 'alt', @@ -57,6 +56,39 @@ class Test_WP_Widget_Media_Image extends WP_UnitTestCase { ); } + /** + * Test schema filtering. + * + * @covers WP_Widget_Media_Image::get_instance_schema + * + * @ticket 45029 + */ + function test_get_instance_schema_filtering() { + $widget = new WP_Widget_Media_Image(); + $schema = $widget->get_instance_schema(); + + add_filter( 'widget_media_image_instance_schema', array( $this, 'filter_instance_schema' ), 10, 2 ); + $schema = $widget->get_instance_schema(); + + $this->assertSame( 'large', $schema['size']['default'] ); + } + + /** + * Filters instance schema. + * + * @since 5.2.0 + * + * @param array $schema Schema. + * @param WP_Widget_Media_Image $widget Widget. + * + * @return array + */ + public function filter_instance_schema( $schema, $widget ) { + // Override the default size value ('medium'). + $schema['size']['default'] = 'large'; + return $schema; + } + /** * Test constructor. * diff --git a/tests/phpunit/tests/widgets/media-video-widget.php b/tests/phpunit/tests/widgets/media-video-widget.php index e63673d7db..d8961f1f9e 100644 --- a/tests/phpunit/tests/widgets/media-video-widget.php +++ b/tests/phpunit/tests/widgets/media-video-widget.php @@ -51,6 +51,39 @@ class Test_WP_Widget_Media_Video extends WP_UnitTestCase { ); } + /** + * Test schema filtering. + * + * @covers WP_Widget_Media_Video::get_instance_schema + * + * @ticket 45029 + */ + function test_get_instance_schema_filtering() { + $widget = new WP_Widget_Media_Video(); + $schema = $widget->get_instance_schema(); + + add_filter( 'widget_media_video_instance_schema', array( $this, 'filter_instance_schema' ), 10, 2 ); + $schema = $widget->get_instance_schema(); + + $this->assertTrue( $schema['loop']['default'] ); + } + + /** + * Filters instance schema. + * + * @since 5.2.0 + * + * @param array $schema Schema. + * @param WP_Widget_Media_Video $widget Widget. + * + * @return array + */ + public function filter_instance_schema( $schema, $widget ) { + // Override the default loop value (false). + $schema['loop']['default'] = true; + return $schema; + } + /** * Test constructor. *