Make WordPress Core


Ignore:
Timestamp:
09/20/2023 04:47:44 PM (3 years 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.