Widgets: Make sure changes to media widgets' instance schema via `widget_{$this->id_base}_instance_schema` filter are not overridden by subclasses.

Add unit tests missed in [45100].

Props Toro_Unit, birgire.
See #45029.

git-svn-id: https://develop.svn.wordpress.org/trunk@45101 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Sergey Biryukov 2019-04-02 22:14:19 +00:00
parent f4e57f92e4
commit ffbc0e3b4e
3 changed files with 99 additions and 1 deletions

View File

@ -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.
*

View File

@ -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.
*

View File

@ -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.
*