diff --git a/tests/phpunit/tests/blocks/render-reusable.php b/tests/phpunit/tests/blocks/render-reusable.php index 66b01b0428..eeea33b343 100644 --- a/tests/phpunit/tests/blocks/render-reusable.php +++ b/tests/phpunit/tests/blocks/render-reusable.php @@ -88,6 +88,38 @@ class WP_Test_Render_Reusable_Blocks extends WP_UnitTestCase { $this->assertSame( '
Hello world!
', $output ); } + /** + * Make sure that a reusable block can be rendered twice in a row. + * + * @ticket 52364 + */ + public function test_render_subsequent() { + $block_type = WP_Block_Type_Registry::get_instance()->get_registered( 'core/block' ); + $output = $block_type->render( array( 'ref' => self::$block_id ) ); + $output .= $block_type->render( array( 'ref' => self::$block_id ) ); + $this->assertSame( 'Hello world!
Hello world!
', $output ); + } + + /** + * Throw a warning if blocks are recursively nested. + * + * @ticket 52364 + */ + public function test_recursive_render_warning() { + $recursive_reusable_block = array( + 'ID' => self::$block_id, + 'post_content' => '', + ); + wp_update_post( $recursive_reusable_block ); + + $block_type = WP_Block_Type_Registry::get_instance()->get_registered( 'core/block' ); + + // The block_render method for `core/block` triggers a user warning if it + // encounters a recursively nested block. + $this->expectException( 'PHPUnit_Framework_Error_Warning' ); + $block_type->render( array( 'ref' => self::$block_id ) ); + } + public function test_ref_empty() { $block_type = WP_Block_Type_Registry::get_instance()->get_registered( 'core/block' ); $output = $block_type->render( array() );