mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-06-28 22:30:04 +00:00
Editor: Backport block support changes from the Gutenberg plugin
Migrate spacing, border, color, dimensions, elements and typography and associated tests for block supports in the block editor. Related changes in Gutenberg: - Include individual serialization changes from6de16981c7- Skip Style Engine integration from44925a947f%60 Props ramonopoly, aaronrobertshaw. See #55505. git-svn-id: https://develop.svn.wordpress.org/trunk@53076 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
148
tests/phpunit/tests/block-supports/border.php
Normal file
148
tests/phpunit/tests/block-supports/border.php
Normal file
@@ -0,0 +1,148 @@
|
||||
<?php
|
||||
/**
|
||||
* @group block-supports
|
||||
*/
|
||||
class Test_Block_Supports_Border extends WP_UnitTestCase {
|
||||
|
||||
/**
|
||||
* @ticket 55505
|
||||
*/
|
||||
function test_border_color_slug_with_numbers_is_kebab_cased_properly() {
|
||||
$block_name = 'test/border-color-slug-with-numbers-is-kebab-cased-properly';
|
||||
register_block_type(
|
||||
$block_name,
|
||||
array(
|
||||
'api_version' => 2,
|
||||
'attributes' => array(
|
||||
'borderColor' => array(
|
||||
'type' => 'string',
|
||||
),
|
||||
'style' => array(
|
||||
'type' => 'object',
|
||||
),
|
||||
),
|
||||
'supports' => array(
|
||||
'__experimentalBorder' => array(
|
||||
'color' => true,
|
||||
'radius' => true,
|
||||
'width' => true,
|
||||
'style' => true,
|
||||
),
|
||||
),
|
||||
)
|
||||
);
|
||||
$registry = WP_Block_Type_Registry::get_instance();
|
||||
$block_type = $registry->get_registered( $block_name );
|
||||
$block_atts = array(
|
||||
'borderColor' => 'red',
|
||||
'style' => array(
|
||||
'border' => array(
|
||||
'radius' => '10px',
|
||||
'width' => '1px',
|
||||
'style' => 'dashed',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$actual = wp_apply_border_support( $block_type, $block_atts );
|
||||
$expected = array(
|
||||
'class' => 'has-border-color has-red-border-color',
|
||||
'style' => 'border-radius: 10px; border-style: dashed; border-width: 1px;',
|
||||
);
|
||||
|
||||
$this->assertSame( $expected, $actual );
|
||||
unregister_block_type( $block_name );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 55505
|
||||
*/
|
||||
function test_border_with_skipped_serialization_block_supports() {
|
||||
$block_name = 'test/border-with-skipped-serialization-block-supports';
|
||||
register_block_type(
|
||||
$block_name,
|
||||
array(
|
||||
'api_version' => 2,
|
||||
'attributes' => array(
|
||||
'style' => array(
|
||||
'type' => 'object',
|
||||
),
|
||||
),
|
||||
'supports' => array(
|
||||
'__experimentalBorder' => array(
|
||||
'color' => true,
|
||||
'radius' => true,
|
||||
'width' => true,
|
||||
'style' => true,
|
||||
'__experimentalSkipSerialization' => true,
|
||||
),
|
||||
),
|
||||
)
|
||||
);
|
||||
$registry = WP_Block_Type_Registry::get_instance();
|
||||
$block_type = $registry->get_registered( $block_name );
|
||||
$block_atts = array(
|
||||
'style' => array(
|
||||
'border' => array(
|
||||
'color' => '#eeeeee',
|
||||
'width' => '1px',
|
||||
'style' => 'dotted',
|
||||
'radius' => '10px',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$actual = wp_apply_border_support( $block_type, $block_atts );
|
||||
$expected = array();
|
||||
|
||||
$this->assertSame( $expected, $actual );
|
||||
unregister_block_type( $block_name );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 55505
|
||||
*/
|
||||
function test_radius_with_individual_skipped_serialization_block_supports() {
|
||||
$block_name = 'test/radius-with-individual-skipped-serialization-block-supports';
|
||||
register_block_type(
|
||||
$block_name,
|
||||
array(
|
||||
'api_version' => 2,
|
||||
'attributes' => array(
|
||||
'style' => array(
|
||||
'type' => 'object',
|
||||
),
|
||||
),
|
||||
'supports' => array(
|
||||
'__experimentalBorder' => array(
|
||||
'color' => true,
|
||||
'radius' => true,
|
||||
'width' => true,
|
||||
'style' => true,
|
||||
'__experimentalSkipSerialization' => array( 'radius', 'color' ),
|
||||
),
|
||||
),
|
||||
)
|
||||
);
|
||||
$registry = WP_Block_Type_Registry::get_instance();
|
||||
$block_type = $registry->get_registered( $block_name );
|
||||
$block_atts = array(
|
||||
'style' => array(
|
||||
'border' => array(
|
||||
'color' => '#eeeeee',
|
||||
'width' => '1px',
|
||||
'style' => 'dotted',
|
||||
'radius' => '10px',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$actual = wp_apply_border_support( $block_type, $block_atts );
|
||||
$expected = array(
|
||||
'style' => 'border-style: dotted; border-width: 1px;',
|
||||
);
|
||||
|
||||
$this->assertSame( $expected, $actual );
|
||||
unregister_block_type( $block_name );
|
||||
}
|
||||
}
|
||||
@@ -44,4 +44,90 @@ class Tests_Block_Supports_Colors extends WP_UnitTestCase {
|
||||
$this->assertSame( $expected, $actual );
|
||||
unregister_block_type( 'test/color-slug-with-numbers' );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 55505
|
||||
*/
|
||||
function test_color_with_skipped_serialization_block_supports() {
|
||||
$block_name = 'test/color-with-skipped-serialization-block-supports';
|
||||
register_block_type(
|
||||
$block_name,
|
||||
array(
|
||||
'api_version' => 2,
|
||||
'attributes' => array(
|
||||
'style' => array(
|
||||
'type' => 'object',
|
||||
),
|
||||
),
|
||||
'supports' => array(
|
||||
'color' => array(
|
||||
'text' => true,
|
||||
'gradients' => true,
|
||||
'__experimentalSkipSerialization' => true,
|
||||
),
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
$registry = WP_Block_Type_Registry::get_instance();
|
||||
$block_type = $registry->get_registered( $block_name );
|
||||
$block_atts = array(
|
||||
'style' => array(
|
||||
'color' => array(
|
||||
'text' => '#d92828',
|
||||
'gradient' => 'linear-gradient(135deg,rgb(6,147,227) 0%,rgb(223,13,13) 46%,rgb(155,81,224) 100%)',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$actual = wp_apply_colors_support( $block_type, $block_atts );
|
||||
$expected = array();
|
||||
|
||||
$this->assertSame( $expected, $actual );
|
||||
unregister_block_type( $block_name );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 55505
|
||||
*/
|
||||
function test_gradient_with_individual_skipped_serialization_block_supports() {
|
||||
$block_name = 'test/gradient-with-individual-skipped-serialization-block-support';
|
||||
register_block_type(
|
||||
$block_name,
|
||||
array(
|
||||
'api_version' => 2,
|
||||
'attributes' => array(
|
||||
'style' => array(
|
||||
'type' => 'object',
|
||||
),
|
||||
),
|
||||
'supports' => array(
|
||||
'color' => array(
|
||||
'text' => true,
|
||||
'gradients' => true,
|
||||
'__experimentalSkipSerialization' => array( 'gradients' ),
|
||||
),
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
$registry = WP_Block_Type_Registry::get_instance();
|
||||
$block_type = $registry->get_registered( $block_name );
|
||||
$block_atts = array(
|
||||
'style' => array(
|
||||
'color' => array(
|
||||
'text' => '#d92828',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$actual = wp_apply_colors_support( $block_type, $block_atts );
|
||||
$expected = array(
|
||||
'class' => 'has-text-color',
|
||||
'style' => 'color: #d92828;',
|
||||
);
|
||||
|
||||
$this->assertSame( $expected, $actual );
|
||||
unregister_block_type( $block_name );
|
||||
}
|
||||
}
|
||||
|
||||
153
tests/phpunit/tests/block-supports/spacing.php
Normal file
153
tests/phpunit/tests/block-supports/spacing.php
Normal file
@@ -0,0 +1,153 @@
|
||||
<?php
|
||||
/**
|
||||
* @group block-supports
|
||||
*/
|
||||
class Test_Block_Supports_Spacing extends WP_UnitTestCase {
|
||||
|
||||
/**
|
||||
* @ticket 55505
|
||||
*/
|
||||
function test_spacing_style_is_applied() {
|
||||
$block_name = 'test/spacing-style-is-applied';
|
||||
register_block_type(
|
||||
$block_name,
|
||||
array(
|
||||
'api_version' => 2,
|
||||
'attributes' => array(
|
||||
'style' => array(
|
||||
'type' => 'object',
|
||||
),
|
||||
),
|
||||
'supports' => array(
|
||||
'spacing' => array(
|
||||
'margin' => true,
|
||||
'padding' => true,
|
||||
'blockGap' => true,
|
||||
),
|
||||
),
|
||||
)
|
||||
);
|
||||
$registry = WP_Block_Type_Registry::get_instance();
|
||||
$block_type = $registry->get_registered( $block_name );
|
||||
$block_atts = array(
|
||||
'style' => array(
|
||||
'spacing' => array(
|
||||
'margin' => array(
|
||||
'top' => '1px',
|
||||
'right' => '2px',
|
||||
'bottom' => '3px',
|
||||
'left' => '4px',
|
||||
),
|
||||
'padding' => '111px',
|
||||
'blockGap' => '2em',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$actual = wp_apply_spacing_support( $block_type, $block_atts );
|
||||
$expected = array(
|
||||
'style' => 'padding: 111px; margin-top: 1px; margin-right: 2px; margin-bottom: 3px; margin-left: 4px;',
|
||||
);
|
||||
|
||||
$this->assertSame( $expected, $actual );
|
||||
unregister_block_type( $block_name );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 55505
|
||||
*/
|
||||
function test_spacing_with_skipped_serialization_block_supports() {
|
||||
$block_name = 'test/spacing-with-skipped-serialization-block-supports';
|
||||
register_block_type(
|
||||
$block_name,
|
||||
array(
|
||||
'api_version' => 2,
|
||||
'attributes' => array(
|
||||
'style' => array(
|
||||
'type' => 'object',
|
||||
),
|
||||
),
|
||||
'supports' => array(
|
||||
'spacing' => array(
|
||||
'margin' => true,
|
||||
'padding' => true,
|
||||
'blockGap' => true,
|
||||
'__experimentalSkipSerialization' => true,
|
||||
),
|
||||
),
|
||||
)
|
||||
);
|
||||
$registry = WP_Block_Type_Registry::get_instance();
|
||||
$block_type = $registry->get_registered( $block_name );
|
||||
$block_atts = array(
|
||||
'style' => array(
|
||||
'spacing' => array(
|
||||
'margin' => array(
|
||||
'top' => '1px',
|
||||
'right' => '2px',
|
||||
'bottom' => '3px',
|
||||
'left' => '4px',
|
||||
),
|
||||
'padding' => '111px',
|
||||
'blockGap' => '2em',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$actual = wp_apply_spacing_support( $block_type, $block_atts );
|
||||
$expected = array();
|
||||
|
||||
$this->assertSame( $expected, $actual );
|
||||
unregister_block_type( $block_name );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 55505
|
||||
*/
|
||||
function test_margin_with_individual_skipped_serialization_block_supports() {
|
||||
$block_name = 'test/margin-with-individual-skipped-serialization-block-supports';
|
||||
register_block_type(
|
||||
$block_name,
|
||||
array(
|
||||
'api_version' => 2,
|
||||
'attributes' => array(
|
||||
'style' => array(
|
||||
'type' => 'object',
|
||||
),
|
||||
),
|
||||
'supports' => array(
|
||||
'spacing' => array(
|
||||
'margin' => true,
|
||||
'padding' => true,
|
||||
'blockGap' => true,
|
||||
'__experimentalSkipSerialization' => array( 'margin' ),
|
||||
),
|
||||
),
|
||||
)
|
||||
);
|
||||
$registry = WP_Block_Type_Registry::get_instance();
|
||||
$block_type = $registry->get_registered( $block_name );
|
||||
$block_atts = array(
|
||||
'style' => array(
|
||||
'spacing' => array(
|
||||
'padding' => array(
|
||||
'top' => '1px',
|
||||
'right' => '2px',
|
||||
'bottom' => '3px',
|
||||
'left' => '4px',
|
||||
),
|
||||
'margin' => '111px',
|
||||
'blockGap' => '2em',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$actual = wp_apply_spacing_support( $block_type, $block_atts );
|
||||
$expected = array(
|
||||
'style' => 'padding-top: 1px; padding-right: 2px; padding-bottom: 3px; padding-left: 4px;',
|
||||
);
|
||||
|
||||
$this->assertSame( $expected, $actual );
|
||||
unregister_block_type( $block_name );
|
||||
}
|
||||
}
|
||||
@@ -62,6 +62,86 @@ class Tests_Block_Supports_Typography extends WP_UnitTestCase {
|
||||
unregister_block_type( $block_name );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 55505
|
||||
*/
|
||||
function test_typography_with_skipped_serialization_block_supports() {
|
||||
$block_name = 'test/typography-with-skipped-serialization-block-supports';
|
||||
register_block_type(
|
||||
$block_name,
|
||||
array(
|
||||
'api_version' => 2,
|
||||
'attributes' => array(
|
||||
'style' => array(
|
||||
'type' => 'object',
|
||||
),
|
||||
),
|
||||
'supports' => array(
|
||||
'typography' => array(
|
||||
'fontSize' => true,
|
||||
'lineHeight' => true,
|
||||
'__experimentalFontFamily' => true,
|
||||
'__experimentalLetterSpacing' => true,
|
||||
'__experimentalSkipSerialization' => true,
|
||||
),
|
||||
),
|
||||
)
|
||||
);
|
||||
$registry = WP_Block_Type_Registry::get_instance();
|
||||
$block_type = $registry->get_registered( $block_name );
|
||||
$block_atts = array(
|
||||
'style' => array(
|
||||
'typography' => array(
|
||||
'fontSize' => 'serif',
|
||||
'lineHeight' => 'serif',
|
||||
'fontFamily' => '22px',
|
||||
'letterSpacing' => '22px',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
$actual = wp_apply_typography_support( $block_type, $block_atts );
|
||||
$expected = array();
|
||||
|
||||
$this->assertSame( $expected, $actual );
|
||||
unregister_block_type( $block_name );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 55505
|
||||
*/
|
||||
function test_letter_spacing_with_individual_skipped_serialization_block_supports() {
|
||||
$block_name = 'test/letter-spacing-with-individua-skipped-serialization-block-supports';
|
||||
register_block_type(
|
||||
$block_name,
|
||||
array(
|
||||
'api_version' => 2,
|
||||
'attributes' => array(
|
||||
'style' => array(
|
||||
'type' => 'object',
|
||||
),
|
||||
),
|
||||
'supports' => array(
|
||||
'typography' => array(
|
||||
'__experimentalLetterSpacing' => true,
|
||||
'__experimentalSkipSerialization' => array(
|
||||
'letterSpacing',
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
);
|
||||
$registry = WP_Block_Type_Registry::get_instance();
|
||||
$block_type = $registry->get_registered( $block_name );
|
||||
$block_atts = array( 'style' => array( 'typography' => array( 'letterSpacing' => '22px' ) ) );
|
||||
|
||||
$actual = wp_apply_typography_support( $block_type, $block_atts );
|
||||
$expected = array();
|
||||
|
||||
$this->assertSame( $expected, $actual );
|
||||
unregister_block_type( $block_name );
|
||||
}
|
||||
|
||||
function test_font_family_with_legacy_inline_styles_using_a_css_var() {
|
||||
$block_name = 'test/font-family-with-inline-styles-using-css-var';
|
||||
register_block_type(
|
||||
|
||||
Reference in New Issue
Block a user