Changeset 49695 for trunk/tests/phpunit/tests/blocks/block.php
- Timestamp:
- 11/25/2020 01:18:25 AM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/phpunit/tests/blocks/block.php
r49608 r49695 46 46 } 47 47 48 function filter_pre_render_block( $pre_render, $parsed_block ) {49 if ( 'core/skip' === $parsed_block['blockName'] ) {50 return 'Hello world!';51 }52 return null;53 }54 55 function filter_render_block_data( $parsed_block, $source_block ) {56 $parsed_block['attrs']['tag'] = $parsed_block['attrs']['tag'] . '-filtered';57 return $parsed_block;58 }59 60 function filter_render_block_context( $available_context, $parsed_block ) {61 $available_context['core/recordId'] += 1;62 return $available_context;63 }64 65 48 /** 66 49 * @ticket 49927 … … 412 395 } 413 396 414 /**415 * @ticket 51612416 */417 function test_applies_pre_render_block_filter() {418 $this->registry->register( 'core/skip', array() );419 420 add_filter( 'pre_render_block', array( $this, 'filter_pre_render_block' ), 10, 2 );421 422 $parsed_blocks = parse_blocks( '<!-- wp:skip /-->' );423 $parsed_block = $parsed_blocks[0];424 $context = array();425 $block = new WP_Block( $parsed_block, $context, $this->registry );426 427 $rendered_content = $block->render();428 429 remove_filter( 'pre_render_block', array( $this, 'filter_pre_render_block' ) );430 431 $this->assertSame( 'Hello world!', $rendered_content );432 }433 434 /**435 * @ticket 51612436 */437 function test_applies_pre_render_block_filter_to_inner_blocks() {438 $this->registry->register( 'core/outer', array() );439 $this->registry->register( 'core/skip', array() );440 441 add_filter( 'pre_render_block', array( $this, 'filter_pre_render_block' ), 10, 2 );442 443 $parsed_blocks = parse_blocks( '<!-- wp:outer --><!-- wp:skip /--> How are you?<!-- /wp:outer -->' );444 $parsed_block = $parsed_blocks[0];445 $context = array();446 $block = new WP_Block( $parsed_block, $context, $this->registry );447 448 $rendered_content = $block->render();449 450 remove_filter( 'pre_render_block', array( $this, 'filter_pre_render_block' ) );451 452 $this->assertSame( 'Hello world! How are you?', $rendered_content );453 }454 455 /**456 * @ticket 51612457 */458 function test_applies_render_block_data_filter() {459 $this->registry->register(460 'core/wrapper',461 array(462 'attributes' => array(463 'tag' => array(464 'type' => 'string',465 ),466 ),467 'render_callback' => function( $block_attributes, $content ) {468 return sprintf(469 '<%1$s>%2$s</%1$s>',470 $block_attributes['tag'],471 $content472 );473 },474 )475 );476 477 add_filter( 'render_block_data', array( $this, 'filter_render_block_data' ), 10, 2 );478 479 $parsed_blocks = parse_blocks( '<!-- wp:wrapper {"tag":"outer"} --><!-- wp:wrapper {"tag":"inner"} -->Hello!<!-- /wp:wrapper --><!-- /wp:wrapper -->' );480 $parsed_block = $parsed_blocks[0];481 $context = array();482 $block = new WP_Block( $parsed_block, $context, $this->registry );483 484 $rendered_content = $block->render();485 486 remove_filter( 'render_block_data', array( $this, 'filter_render_block_data' ) );487 488 $this->assertSame( '<outer-filtered><inner-filtered>Hello!</inner-filtered></outer-filtered>', $rendered_content );489 }490 491 /**492 * @ticket 51612493 */494 function test_applies_render_block_context_filter() {495 $this->registry->register(496 'core/provider',497 array(498 'attributes' => array(499 'recordId' => array(500 'type' => 'number',501 ),502 ),503 'uses_context' => array( 'core/recordId' ),504 'provides_context' => array(505 'core/recordId' => 'recordId',506 ),507 )508 );509 $this->registry->register(510 'core/consumer',511 array(512 'uses_context' => array( 'core/recordId' ),513 'render_callback' => function( $block_attributes, $content, $block ) {514 return sprintf( 'Record ID: %d ', $block->context['core/recordId'] );515 },516 )517 );518 519 add_filter( 'render_block_context', array( $this, 'filter_render_block_context' ), 10, 2 );520 521 $parsed_blocks = parse_blocks( '<!-- wp:consumer /--><!-- wp:provider {"recordId":20} --><!-- wp:consumer /--><!-- /wp:provider -->' );522 $context = array( 'core/recordId' => 10 );523 524 $rendered_content = '';525 526 foreach ( $parsed_blocks as $parsed_block ) {527 $block = new WP_Block( $parsed_block, $context, $this->registry );528 529 $rendered_content .= $block->render();530 }531 532 remove_filter( 'render_block_context', array( $this, 'filter_render_block_context' ) );533 534 $this->assertSame( 'Record ID: 11 Record ID: 21 ', $rendered_content );535 }536 537 397 }
Note: See TracChangeset
for help on using the changeset viewer.