Make WordPress Core


Ignore:
Timestamp:
09/20/2023 04:47:44 PM (14 months ago)
Author:
Bernhard Reiter
Message:

Blocks: Revert implementation of block insertion functions.

In [56618], three functions (insert_inner_block, prepend_inner_block, and append_inner_block) were introduced. They were meant to be used for insertion of hooked blocks; however, it was discovered that the original idea wouldn't work for sibling insertion. Instead, a different approach will be taken (see #59412), and these functions are no longer needed and can thus be removed.

Reverts [56618].
See #59412, #59385, #59313.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/blocks/blockHooks.php

    r56618 r56634  
    1818     */
    1919    public function tear_down() {
    20         $registry    = WP_Block_Type_Registry::get_instance();
    21         $block_names = array(
    22             'tests/injected-one',
    23             'tests/injected-two',
    24         );
    25         foreach ( $block_names as $block_name ) {
     20        $registry = WP_Block_Type_Registry::get_instance();
     21
     22        foreach ( array( 'tests/my-block', 'tests/my-container-block' ) as $block_name ) {
    2623            if ( $registry->is_registered( $block_name ) ) {
    2724                $registry->unregister( $block_name );
     
    10198        );
    10299    }
    103 
    104     /**
    105      * @ticket 59385
    106      *
    107      * @covers ::insert_inner_block
    108      *
    109      * @dataProvider data_insert_inner_block
    110      *
    111      * @param string $block_index     Block index to insert the block at.
    112      * @param string $expected_markup Expected markup after the block is inserted.
    113      */
    114     public function test_insert_inner_block( $block_index, $expected_markup ) {
    115         $original_markup = <<<HTML
    116 <!-- wp:tests/group {"layout":{"type":"constrained"}} -->
    117     <div class="wp-block-group">
    118         <!-- wp:paragraph -->
    119             <p>Foo</p>
    120         <!-- /wp:paragraph -->
    121     </div>
    122 <!-- /wp:tests/group -->
    123 HTML;
    124 
    125         $inserted_block = array(
    126             'blockName'    => 'tests/hooked-block',
    127             'attrs'        => array(),
    128             'innerBlocks'  => array(),
    129             'innerHTML'    => '',
    130             'innerContent' => array(),
    131         );
    132 
    133         $expected = parse_blocks( $expected_markup )[0];
    134         $block    = parse_blocks( $original_markup )[0];
    135         insert_inner_block( $block, $block_index, 1, $inserted_block );
    136         $this->assertSame( $expected, $block );
    137     }
    138 
    139     /**
    140      * Data provider.
    141      *
    142      * @return array[]
    143      */
    144     public function data_insert_inner_block() {
    145         $expected_before_markup = <<<HTML
    146 <!-- wp:tests/group {"layout":{"type":"constrained"}} -->
    147     <div class="wp-block-group">
    148         <!-- wp:tests/hooked-block /--><!-- wp:paragraph -->
    149             <p>Foo</p>
    150         <!-- /wp:paragraph -->
    151     </div>
    152 <!-- /wp:tests/group -->
    153 HTML;
    154 
    155         $expected_after_markup = <<<HTML
    156 <!-- wp:tests/group {"layout":{"type":"constrained"}} -->
    157     <div class="wp-block-group">
    158         <!-- wp:paragraph -->
    159             <p>Foo</p>
    160         <!-- /wp:paragraph --><!-- wp:tests/hooked-block /-->
    161     </div>
    162 <!-- /wp:tests/group -->
    163 HTML;
    164 
    165         return array(
    166             'insert before given block' => array(
    167                 'block_index'     => 0,
    168                 'expected_markup' => $expected_before_markup,
    169             ),
    170             'insert after given block'  => array(
    171                 'block_index'     => 1,
    172                 'expected_markup' => $expected_after_markup,
    173             ),
    174         );
    175     }
    176 
    177     /**
    178      * @ticket 59385
    179      *
    180      * @covers ::prepend_inner_block
    181      */
    182     public function test_prepend_inner_block() {
    183         $original_markup = <<<HTML
    184 <!-- wp:tests/group {"layout":{"type":"constrained"}} -->
    185     <div class="wp-block-group">
    186         <!-- wp:paragraph -->
    187             <p>Foo</p>
    188         <!-- /wp:paragraph -->
    189     </div>
    190 <!-- /wp:tests/group -->
    191 HTML;
    192 
    193         $inserted_block = array(
    194             'blockName'    => 'tests/hooked-block',
    195             'attrs'        => array(),
    196             'innerBlocks'  => array(),
    197             'innerHTML'    => '',
    198             'innerContent' => array(),
    199         );
    200 
    201         $expected_markup = <<<HTML
    202 <!-- wp:tests/group {"layout":{"type":"constrained"}} -->
    203     <div class="wp-block-group">
    204         <!-- wp:tests/hooked-block /--><!-- wp:paragraph -->
    205             <p>Foo</p>
    206         <!-- /wp:paragraph -->
    207     </div>
    208 <!-- /wp:tests/group -->
    209 HTML;
    210 
    211         $expected = parse_blocks( $expected_markup )[0];
    212         $block    = parse_blocks( $original_markup )[0];
    213         prepend_inner_block( $block, $inserted_block );
    214         $this->assertSame( $expected, $block );
    215     }
    216 
    217     /**
    218      * @ticket 59385
    219      *
    220      * @covers ::append_inner_block
    221      */
    222     public function test_append_inner_block() {
    223         $original_markup = <<<HTML
    224 <!-- wp:tests/group {"layout":{"type":"constrained"}} -->
    225     <div class="wp-block-group">
    226         <!-- wp:paragraph -->
    227             <p>Foo</p>
    228         <!-- /wp:paragraph -->
    229     </div>
    230 <!-- /wp:tests/group -->
    231 HTML;
    232 
    233         $inserted_block = array(
    234             'blockName'    => 'tests/hooked-block',
    235             'attrs'        => array(),
    236             'innerBlocks'  => array(),
    237             'innerHTML'    => '',
    238             'innerContent' => array(),
    239         );
    240 
    241         $expected_markup = <<<HTML
    242 <!-- wp:tests/group {"layout":{"type":"constrained"}} -->
    243     <div class="wp-block-group">
    244         <!-- wp:paragraph -->
    245             <p>Foo</p>
    246         <!-- /wp:paragraph --><!-- wp:tests/hooked-block /-->
    247     </div>
    248 <!-- /wp:tests/group -->
    249 HTML;
    250 
    251         $expected = parse_blocks( $expected_markup )[0];
    252         $block    = parse_blocks( $original_markup )[0];
    253         append_inner_block( $block, $inserted_block );
    254         $this->assertSame( $expected, $block );
    255     }
    256100}
Note: See TracChangeset for help on using the changeset viewer.