Editor: add block instance element color support for buttons and headings.

Adds support for buttons and headings to the colors and elements block supports, allowing button and heading element colors to be changed on individual blocks.

Props aaronrobertshaw.
Fixes #59309.



git-svn-id: https://develop.svn.wordpress.org/trunk@56604 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Isabel Brison
2023-09-18 06:25:49 +00:00
parent 4bcf32a698
commit ac8db41833
4 changed files with 213 additions and 42 deletions

View File

@@ -106,4 +106,68 @@ class Tests_Block_Supports_Elements extends WP_UnitTestCase {
'<p class="wp-elements-1" id="anchor">Hello <a href="http://www.wordpress.org/">WordPress</a>!</p>'
);
}
/**
* Test wp_render_elements_support() with a group block that has a button
* element color set.
*
* @ticket 59309
*/
public function test_group_with_button_element_style() {
$result = self::make_unique_id_one(
wp_render_elements_support(
'<div class="wp-block-group"><div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex"><div class="wp-block-button"><a class="wp-block-button__link wp-element-button">Button</a></div></div></div>',
array(
'blockName' => 'core/group',
'attrs' => array(
'style' => array(
'elements' => array(
'button' => array(
'color' => array(
'text' => 'var:preset|color|vivid-red',
),
),
),
),
),
)
)
);
$this->assertSame(
$result,
'<div class="wp-block-group wp-elements-1"><div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex"><div class="wp-block-button"><a class="wp-block-button__link wp-element-button">Button</a></div></div></div>'
);
}
/**
* Test wp_render_elements_support() with a group block that has a heading
* element color set.
*
* @ticket 59309
*/
public function test_group_with_heading_element_style() {
$result = self::make_unique_id_one(
wp_render_elements_support(
'<div class="wp-block-group"><h2 class="wp-block-heading">Test</h2></div>',
array(
'blockName' => 'core/group',
'attrs' => array(
'style' => array(
'elements' => array(
'heading' => array(
'color' => array(
'text' => 'var:preset|color|vivid-red',
),
),
),
),
),
)
)
);
$this->assertSame(
$result,
'<div class="wp-block-group wp-elements-1"><h2 class="wp-block-heading">Test</h2></div>'
);
}
}