mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2025-10-16 12:05:38 +00:00
Editor: Ensure block style name does not contain spaces before creating the class.
This change adds a check to ensure there is no spaces in block style variation names before generating the class. Returns `false` and a `_doing_it_wrong()` message if a space is detected. Props amustaque97, costdev, hellofromtonya, pbiron, SergeyBiryukov, afragen. Fixes #54296. git-svn-id: https://develop.svn.wordpress.org/trunk@52261 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
8de99e840f
commit
5fb4b61339
@ -62,6 +62,15 @@ final class WP_Block_Styles_Registry {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( str_contains( $style_properties['name'], ' ' ) ) {
|
||||
_doing_it_wrong(
|
||||
__METHOD__,
|
||||
__( 'Block style name must not contain any spaces.' ),
|
||||
'5.9.0'
|
||||
);
|
||||
return false;
|
||||
}
|
||||
|
||||
$block_style_name = $style_properties['name'];
|
||||
|
||||
if ( ! isset( $this->registered_block_styles[ $block_name ] ) ) {
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* Tests for register_block_type(), unregister_block_type(), get_dynamic_block_names().
|
||||
* Tests for register_block_type(), unregister_block_type(), get_dynamic_block_names() and register_block_style().
|
||||
*
|
||||
* @since 5.0.0
|
||||
*
|
||||
@ -559,4 +559,61 @@ class Tests_Blocks_Register extends WP_UnitTestCase {
|
||||
|
||||
$this->assertSame( 3, $result->api_version );
|
||||
}
|
||||
|
||||
/**
|
||||
* Test case to validate `_doing_it_wrong()` when block style name attribute
|
||||
* contains one or more spaces.
|
||||
*
|
||||
* @dataProvider data_register_block_style_name_contain_spaces
|
||||
*
|
||||
* @ticket 54296
|
||||
*
|
||||
* @covers ::register_block_style
|
||||
*
|
||||
* @expectedIncorrectUsage WP_Block_Styles_Registry::register
|
||||
* @param array $block_styles Array of block styles to test.
|
||||
*/
|
||||
public function test_register_block_style_name_contain_spaces( array $block_styles ) {
|
||||
register_block_style( 'core/query', $block_styles );
|
||||
}
|
||||
|
||||
/**
|
||||
* Data provider.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function data_register_block_style_name_contain_spaces() {
|
||||
return array(
|
||||
'multiple spaces' => array(
|
||||
array(
|
||||
'name' => 'style-class-1 style-class-2',
|
||||
'label' => 'Custom Style Label',
|
||||
),
|
||||
),
|
||||
'single space' => array(
|
||||
array(
|
||||
'name' => 'style-class-1 style-class-2',
|
||||
'label' => 'Custom Style Label',
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test case to validate no `_doing_it_wrong()` happens when there is
|
||||
* no empty space.
|
||||
*
|
||||
* @ticket 54296
|
||||
*
|
||||
* @covers ::register_block_style
|
||||
*/
|
||||
public function test_register_block_style_name_without_spaces() {
|
||||
$block_styles = array(
|
||||
'name' => 'style-class-1',
|
||||
'label' => 'Custom Style Label',
|
||||
);
|
||||
|
||||
$actual = register_block_style( 'core/query', $block_styles );
|
||||
$this->assertTrue( $actual );
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user