Skip to content
Closed
Changes from 1 commit
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
a36ac67
Block Hooks: Extract `insert_hooked_blocks()` function
ockham Jan 3, 2024
5350ae2
Introduce hooked_block filter
ockham Jan 3, 2024
e63213c
get_hooked_block_markup: Change argument order
ockham Jan 3, 2024
a891d3c
Fix get_hooked_block_markup tests
ockham Jan 3, 2024
fabd9c2
Make block type name part of filter name
ockham Jan 3, 2024
afd95d0
Set attrs to empty array
ockham Jan 3, 2024
f797f8a
Allow passing inner blocks
ockham Jan 10, 2024
01f30ab
Use correct block type in ignoredHookedBlocks
ockham Jan 10, 2024
962eaf5
Update comment
ockham Jan 11, 2024
1a214a7
Mark insert_hooked_blocks as private
ockham Jan 11, 2024
8b08619
Slight rewording of a comment
ockham Jan 11, 2024
0658500
Clarify PHPDoc
ockham Jan 11, 2024
45ff3da
Fix tests
ockham Jan 11, 2024
520f67e
Cover new hooked_block_type arg in tests
ockham Jan 11, 2024
df3dc99
Add ticket references to tests
ockham Jan 11, 2024
7b9d6f2
Another ticket reference
ockham Jan 11, 2024
c962fc2
Add assertion to insert_hooked_blocks test
ockham Jan 11, 2024
cf1297d
insert_hooked_blocks Test: Turn vars into class consts
ockham Jan 16, 2024
311c2e6
Add more test coverage
ockham Jan 16, 2024
ace54d4
Add ticket references to 59572
ockham Jan 16, 2024
e3df476
Amend PHPDoc
ockham Jan 25, 2024
275a96a
Change variable names to emphasize parsed block array format
ockham Jan 25, 2024
e21c8e9
Remove unnecessary test mocks
ockham Jan 25, 2024
c2912f8
Ooops
ockham Jan 25, 2024
13f1c5d
Add test coverage for filter
ockham Jan 25, 2024
b9f71ad
Add test to cover wrapping block
ockham Jan 25, 2024
30c2e97
Add assertion messages
ockham Jan 25, 2024
5015617
More assertion messages
ockham Jan 25, 2024
3092b85
Coding standards
ockham Jan 25, 2024
47e80e1
More coding standards
ockham Jan 25, 2024
9cac78c
Tweak PHPDoc
ockham Jan 25, 2024
7fdf956
More PHPDoc tweaking
ockham Jan 25, 2024
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
Prev Previous commit
Next Next commit
Add test coverage for filter
  • Loading branch information
ockham committed Jan 25, 2024
commit 13f1c5dd9cc68f8cfe1559d69839c076837271fa
39 changes: 39 additions & 0 deletions tests/phpunit/tests/blocks/insertHookedBlocks.php
Original file line number Diff line number Diff line change
Expand Up @@ -79,4 +79,43 @@ public function test_insert_hooked_blocks_adds_to_ignored_hooked_blocks() {
$this->assertSame( array( self::HOOKED_BLOCK_TYPE, self::OTHER_HOOKED_BLOCK_TYPE ), $anchor_block['attrs']['metadata']['ignoredHookedBlocks'] );
$this->assertSame( '<!-- wp:' . self::OTHER_HOOKED_BLOCK_TYPE . ' /-->', $actual );
}

/**
* @ticket 59572
* @ticket 60126
*
* @covers ::insert_hooked_blocks
*/
public function test_insert_hooked_blocks_filter_can_set_attributes() {
$anchor_block = array(
'blockName' => self::ANCHOR_BLOCK_TYPE,
'attrs' => array(
'layout' => array(
'type' => 'constrained',
)
),
'innerContent' => array(),
);

$filter = function( $parsed_hooked_block, $relative_position, $parsed_anchor_block ) {
// Is the hooked block adjacent to the anchor block?
if ( 'before' !== $relative_position && 'after' !== $relative_position ) {
return $parsed_hooked_block;
}

// Does the anchor block have a layout attribute?
if ( isset( $parsed_anchor_block['attrs']['layout'] ) ) {
// Copy the anchor block's layout attribute to the hooked block.
$parsed_hooked_block['attrs']['layout'] = $parsed_anchor_block['attrs']['layout'];
}

return $parsed_hooked_block;
};
add_filter( 'hooked_block_' . SELF::HOOKED_BLOCK_TYPE, $filter, 10, 3 );
$actual = insert_hooked_blocks( $anchor_block, 'after', self::HOOKED_BLOCKS, array() );
remove_filter( 'hooked_block_' . SELF::HOOKED_BLOCK_TYPE, $filter, 10, 3 );

$this->assertSame( array( self::HOOKED_BLOCK_TYPE ), $anchor_block['attrs']['metadata']['ignoredHookedBlocks'] );
$this->assertSame( '<!-- wp:' . self::HOOKED_BLOCK_TYPE . ' {"layout":{"type":"constrained"}} /-->', $actual );
}
}