Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 15 additions & 5 deletions phpunit/block-supports/background-test.php
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,12 @@ public function filter_set_theme_root() {
return $this->theme_root;
}

private function get_apostrophe_entity() {
// WP 6.9+ has get_block_bindings_supported_attributes() and uses '
// WP 6.8 and earlier use '
return function_exists( 'get_block_bindings_supported_attributes' ) ? ''' : ''';
}

/**
* Tests that background image block support works as expected.
*
Expand Down Expand Up @@ -121,6 +127,10 @@ public function test_background_block_support( $theme_name, $block_name, $backgr
* @return array
*/
public function data_background_block_support() {
// Get the appropriate apostrophe encoding based on WordPress version.
// function_exists() works in data providers, unlike get_bloginfo().
$apos = $this->get_apostrophe_entity();

return array(
'background image style is applied' => array(
'theme_name' => 'block-theme-child-with-fluid-typography',
Expand All @@ -133,7 +143,7 @@ public function data_background_block_support() {
'url' => 'https://example.com/image.jpg',
),
),
'expected_wrapper' => '<div class="has-background" style="background-image:url(&#039;https://example.com/image.jpg&#039;);background-size:cover;">Content</div>',
'expected_wrapper' => '<div class="has-background" style="background-image:url(' . $apos . 'https://example.com/image.jpg' . $apos . ');background-size:cover;">Content</div>',
'wrapper' => '<div>Content</div>',
),
'background image style is applied when backgroundImage is a string' => array(
Expand All @@ -145,7 +155,7 @@ public function data_background_block_support() {
'background_style' => array(
'backgroundImage' => "url('https://example.com/image.jpg')",
),
'expected_wrapper' => '<div class="has-background" style="background-image:url(&#039;https://example.com/image.jpg&#039;);background-size:cover;">Content</div>',
'expected_wrapper' => '<div class="has-background" style="background-image:url(' . $apos . 'https://example.com/image.jpg' . $apos . ');background-size:cover;">Content</div>',
'wrapper' => '<div>Content</div>',
),
'background image style with contain, position, attachment, and repeat is applied' => array(
Expand All @@ -162,7 +172,7 @@ public function data_background_block_support() {
'backgroundSize' => 'contain',
'backgroundAttachment' => 'fixed',
),
'expected_wrapper' => '<div class="has-background" style="background-image:url(&#039;https://example.com/image.jpg&#039;);background-position:50% 50%;background-repeat:no-repeat;background-size:contain;background-attachment:fixed;">Content</div>',
'expected_wrapper' => '<div class="has-background" style="background-image:url(' . $apos . 'https://example.com/image.jpg' . $apos . ');background-position:50% 50%;background-repeat:no-repeat;background-size:contain;background-attachment:fixed;">Content</div>',
'wrapper' => '<div>Content</div>',
),
'background image style is appended if a style attribute already exists' => array(
Expand All @@ -176,7 +186,7 @@ public function data_background_block_support() {
'url' => 'https://example.com/image.jpg',
),
),
'expected_wrapper' => '<div class="wp-block-test has-background" style="color: red;background-image:url(&#039;https://example.com/image.jpg&#039;);background-size:cover;">Content</div>',
'expected_wrapper' => '<div class="wp-block-test has-background" style="color: red;background-image:url(' . $apos . 'https://example.com/image.jpg' . $apos . ');background-size:cover;">Content</div>',
'wrapper' => '<div class="wp-block-test" style="color: red">Content</div>',
),
'background image style is appended if a style attribute containing multiple styles already exists' => array(
Expand All @@ -190,7 +200,7 @@ public function data_background_block_support() {
'url' => 'https://example.com/image.jpg',
),
),
'expected_wrapper' => '<div class="wp-block-test has-background" style="color: red;font-size: 15px;background-image:url(&#039;https://example.com/image.jpg&#039;);background-size:cover;">Content</div>',
'expected_wrapper' => '<div class="wp-block-test has-background" style="color: red;font-size: 15px;background-image:url(' . $apos . 'https://example.com/image.jpg' . $apos . ');background-size:cover;">Content</div>',
'wrapper' => '<div class="wp-block-test" style="color: red;font-size: 15px;">Content</div>',
),
'background image style is not applied if the block does not support background image' => array(
Expand Down
Loading