From c98d73ead488b28ebd191579f272c5413d8257fe Mon Sep 17 00:00:00 2001 From: Jon Surrell Date: Wed, 21 Jan 2026 12:59:12 +0100 Subject: [PATCH 1/4] Add test for nested void block parsing --- .../block-processor/wpBlockProcessor.php | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/phpunit/tests/block-processor/wpBlockProcessor.php b/tests/phpunit/tests/block-processor/wpBlockProcessor.php index 021288f9cb87f..314035304550d 100644 --- a/tests/phpunit/tests/block-processor/wpBlockProcessor.php +++ b/tests/phpunit/tests/block-processor/wpBlockProcessor.php @@ -1310,6 +1310,35 @@ public static function data_markup_with_block_of_given_type() { ); } + /** + * @ticket TBD + */ + public function test_nested_void_block_innerhtml_parsing() { + $processor = new WP_Block_Processor( 'ab' ); + assert( $processor->next_block(), 'Failed to find block in markup.' ); + $wrapper_block = $processor->extract_full_block_and_advance(); + $expected = array( + 'blockName' => 'core/wrap', + 'attrs' => array(), + 'innerBlocks' => array( + array( + 'blockName' => 'core/void', + 'attrs' => array(), + 'innerBlocks' => array(), + 'innerHTML' => '', + 'innerContent' => array(), + ), + ), + 'innerHTML' => 'ab', + 'innerContent' => array( + 'a', + null, + 'b', + ), + ); + $this->assertSame( $expected, $wrapper_block ); + } + // // Test helpers. // From 4452173dda3296b7e37dfbbccc13e4e74e779362 Mon Sep 17 00:00:00 2001 From: Jon Surrell Date: Wed, 21 Jan 2026 13:28:18 +0100 Subject: [PATCH 2/4] test with parse_blocks --- .../phpunit/tests/block-processor/wpBlockProcessor.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tests/phpunit/tests/block-processor/wpBlockProcessor.php b/tests/phpunit/tests/block-processor/wpBlockProcessor.php index 314035304550d..07f2a7dd38ef6 100644 --- a/tests/phpunit/tests/block-processor/wpBlockProcessor.php +++ b/tests/phpunit/tests/block-processor/wpBlockProcessor.php @@ -1314,7 +1314,8 @@ public static function data_markup_with_block_of_given_type() { * @ticket TBD */ public function test_nested_void_block_innerhtml_parsing() { - $processor = new WP_Block_Processor( 'ab' ); + $html = '012a
b' ; + $processor = new WP_Block_Processor( $html ); assert( $processor->next_block(), 'Failed to find block in markup.' ); $wrapper_block = $processor->extract_full_block_and_advance(); $expected = array( @@ -1329,13 +1330,14 @@ public function test_nested_void_block_innerhtml_parsing() { 'innerContent' => array(), ), ), - 'innerHTML' => 'ab', + 'innerHTML' => '012abc', 'innerContent' => array( - 'a', + '012', null, - 'b', + 'abc', ), ); + $expected = parse_blocks( $html )[0]; $this->assertSame( $expected, $wrapper_block ); } From 3636740ce0ba8d95e3adaf9b01519fbe01a19550 Mon Sep 17 00:00:00 2001 From: Jon Surrell Date: Wed, 21 Jan 2026 14:15:49 +0100 Subject: [PATCH 3/4] Add test for nested empty block parsing --- .../tests/block-processor/wpBlockProcessor.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/phpunit/tests/block-processor/wpBlockProcessor.php b/tests/phpunit/tests/block-processor/wpBlockProcessor.php index 07f2a7dd38ef6..fca980a17eb71 100644 --- a/tests/phpunit/tests/block-processor/wpBlockProcessor.php +++ b/tests/phpunit/tests/block-processor/wpBlockProcessor.php @@ -1341,6 +1341,18 @@ public function test_nested_void_block_innerhtml_parsing() { $this->assertSame( $expected, $wrapper_block ); } + /** + * @ticket TBD + */ + public function test_nested_empty_block_parsing() { + $html = ''; + $processor = new WP_Block_Processor( $html ); + assert( $processor->next_block(), 'Failed to find block in markup.' ); + $wrapper_block = $processor->extract_full_block_and_advance(); + $expected = parse_blocks( $html )[0]; + $this->assertSame( $expected, $wrapper_block ); + } + // // Test helpers. // From 5274e56f75bc508349fe2789d7a58145510f5994 Mon Sep 17 00:00:00 2001 From: Jon Surrell Date: Wed, 21 Jan 2026 14:15:59 +0100 Subject: [PATCH 4/4] Update void html after testing --- tests/phpunit/tests/block-processor/wpBlockProcessor.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/phpunit/tests/block-processor/wpBlockProcessor.php b/tests/phpunit/tests/block-processor/wpBlockProcessor.php index fca980a17eb71..4811d0b54c5be 100644 --- a/tests/phpunit/tests/block-processor/wpBlockProcessor.php +++ b/tests/phpunit/tests/block-processor/wpBlockProcessor.php @@ -1314,7 +1314,7 @@ public static function data_markup_with_block_of_given_type() { * @ticket TBD */ public function test_nested_void_block_innerhtml_parsing() { - $html = '012a
b' ; + $html = '0
2a
b' ; $processor = new WP_Block_Processor( $html ); assert( $processor->next_block(), 'Failed to find block in markup.' ); $wrapper_block = $processor->extract_full_block_and_advance();