Skip to content

Commit 003e8e1

Browse files
committed
Build/Test Tools: Ensure assertEqualHTML() recognizes whitespace text.
Ensure whitespace text nodes are correctly represented by `build_visual_html_tree()`. The `build_visual_html_tree()` function used by `assertEqualHTML()` would remove some leading whitespace from text nodes. Some whitespace-only text nodes were omitted from the tree. Developed in WordPress#10765. Follow-up to [60295]. Props jonsurrell, dmsnell, bernhard-reiter. Fixes #64531. git-svn-id: https://develop.svn.wordpress.org/trunk@61519 602fd350-edb4-49c9-b593-d223f7449a82
1 parent e045771 commit 003e8e1

File tree

8 files changed

+336
-234
lines changed

8 files changed

+336
-234
lines changed

tests/phpunit/includes/build-visual-html-tree.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ static function ( $a, $b ) {
202202
case '#cdata-section':
203203
case '#text':
204204
$text_content = $processor->get_modifiable_text();
205-
if ( '' === trim( $text_content, " \f\t\r\n" ) ) {
205+
if ( '' === $text_content ) {
206206
break;
207207
}
208208
$was_text = true;
@@ -237,7 +237,7 @@ static function ( $a, $b ) {
237237
++$indent_level;
238238
}
239239

240-
// If they're no attributes, we're done here.
240+
// When no attributes are present, there’s nothing left to do.
241241
if ( empty( $block_attrs ) ) {
242242
break;
243243
}

tests/phpunit/tests/block-template-utils.php

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -306,10 +306,9 @@ public function data_remove_theme_attribute_in_block_template_content() {
306306
*/
307307
public function test_block_template_add_skip_link_inserts_link_and_adds_main_id_when_missing() {
308308
$template_html = '<div class="wp-site-blocks"><main>Content</main></div>';
309-
$expected = '
310-
<a class="skip-link screen-reader-text" id="wp-skip-link" href="#wp--skip-link--target">Skip to content</a>
311-
<div class="wp-site-blocks"><main id="wp--skip-link--target">Content</main></div>
312-
';
309+
$expected =
310+
'<a class="skip-link screen-reader-text" id="wp-skip-link" href="#wp--skip-link--target">Skip to content</a>' .
311+
'<div class="wp-site-blocks"><main id="wp--skip-link--target">Content</main></div>';
313312

314313
$this->assertEqualHTML( $expected, _block_template_add_skip_link( $template_html ) );
315314
}
@@ -323,10 +322,9 @@ public function test_block_template_add_skip_link_inserts_link_and_adds_main_id_
323322
*/
324323
public function test_block_template_add_skip_link_uses_existing_main_id() {
325324
$template_html = '<div class="wp-site-blocks"><main id="custom-id">Content</main></div>';
326-
$expected = '
327-
<a class="skip-link screen-reader-text" id="wp-skip-link" href="#custom-id">Skip to content</a>
328-
<div class="wp-site-blocks"><main id="custom-id">Content</main></div>
329-
';
325+
$expected =
326+
'<a class="skip-link screen-reader-text" id="wp-skip-link" href="#custom-id">Skip to content</a>' .
327+
'<div class="wp-site-blocks"><main id="custom-id">Content</main></div>';
330328

331329
$this->assertEqualHTML( $expected, _block_template_add_skip_link( $template_html ) );
332330
}
@@ -340,10 +338,9 @@ public function test_block_template_add_skip_link_uses_existing_main_id() {
340338
*/
341339
public function test_block_template_add_skip_link_handles_boolean_main_id() {
342340
$template_html = '<div class="wp-site-blocks"><main id>Content</main></div>';
343-
$expected = '
344-
<a class="skip-link screen-reader-text" id="wp-skip-link" href="#wp--skip-link--target">Skip to content</a>
345-
<div class="wp-site-blocks"><main id="wp--skip-link--target">Content</main></div>
346-
';
341+
$expected =
342+
'<a class="skip-link screen-reader-text" id="wp-skip-link" href="#wp--skip-link--target">Skip to content</a>' .
343+
'<div class="wp-site-blocks"><main id="wp--skip-link--target">Content</main></div>';
347344

348345
$this->assertEqualHTML( $expected, _block_template_add_skip_link( $template_html ) );
349346
}
@@ -357,10 +354,9 @@ public function test_block_template_add_skip_link_handles_boolean_main_id() {
357354
*/
358355
public function test_block_template_add_skip_link_preserves_whitespace_main_id() {
359356
$template_html = '<div class="wp-site-blocks"><main id=" my-id ">Content</main></div>';
360-
$expected = '
361-
<a class="skip-link screen-reader-text" id="wp-skip-link" href="#%20my-id%20">Skip to content</a>
362-
<div class="wp-site-blocks"><main id=" my-id ">Content</main></div>
363-
';
357+
$expected =
358+
'<a class="skip-link screen-reader-text" id="wp-skip-link" href="#%20my-id%20">Skip to content</a>' .
359+
'<div class="wp-site-blocks"><main id=" my-id ">Content</main></div>';
364360

365361
$this->assertEqualHTML( $expected, _block_template_add_skip_link( $template_html ) );
366362
}

tests/phpunit/tests/blocks/wpBlock.php

Lines changed: 95 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -368,32 +368,39 @@ public function test_render_applies_dynamic_render_block_filter() {
368368
* @return array
369369
*/
370370
public function data_provider_test_render_enqueues_scripts_and_styles(): array {
371-
$block_markup = '
372-
<!-- wp:static -->
373-
<div class="static">
374-
<!-- wp:static-child -->
375-
<div class="static-child">First child</div>
376-
<!-- /wp:static-child -->
377-
<!-- wp:dynamic /-->
378-
<!-- wp:static-child -->
379-
<div class="static-child">Last child</div>
380-
<!-- /wp:static-child -->
381-
</div>
382-
<!-- /wp:static -->
383-
';
371+
$block_markup = <<<'HTML'
372+
<!-- wp:static -->
373+
<div class="static">
374+
<!-- wp:static-child -->
375+
<div class="static-child">First child</div>
376+
<!-- /wp:static-child -->
377+
<!-- wp:dynamic /-->
378+
<!-- wp:static-child -->
379+
<div class="static-child">Last child</div>
380+
<!-- /wp:static-child -->
381+
</div>
382+
<!-- /wp:static -->
383+
HTML;
384384

385385
// TODO: Add case where a dynamic block renders other blocks?
386386
return array(
387387
'all_printed' => array(
388388
'set_up' => null,
389389
'block_markup' => $block_markup,
390-
'expected_rendered_block' => '
391-
<div class="static">
392-
<div class="static-child">First child</div>
393-
<p class="dynamic">Hello World!</p>
394-
<div class="static-child">Last child</div>
395-
</div>
396-
',
390+
'expected_rendered_block' => <<<'HTML'
391+
392+
<div class="static">
393+
394+
<div class="static-child">First child</div>
395+
396+
<p class="dynamic">Hello World!</p>
397+
398+
<div class="static-child">Last child</div>
399+
400+
</div>
401+
402+
HTML
403+
,
397404
'expected_styles' => array( 'static-view-style', 'static-child-view-style', 'dynamic-view-style' ),
398405
'expected_scripts' => array( 'static-view-script', 'static-child-view-script', 'dynamic-view-script' ),
399406
'expected_script_modules' => array( 'static-view-script-module', 'static-child-view-script-module', 'dynamic-view-script-module' ),
@@ -414,13 +421,20 @@ static function ( $content ) {
414421
);
415422
},
416423
'block_markup' => $block_markup,
417-
'expected_rendered_block' => '
418-
<div class="static">
419-
<div class="static-child">First child</div>
420-
<p class="dynamic filtered">Hello World!</p>
421-
<div class="static-child">Last child</div>
422-
</div>
423-
',
424+
'expected_rendered_block' => <<<'HTML'
425+
426+
<div class="static">
427+
428+
<div class="static-child">First child</div>
429+
430+
<p class="dynamic filtered">Hello World!</p>
431+
432+
<div class="static-child">Last child</div>
433+
434+
</div>
435+
436+
HTML
437+
,
424438
'expected_styles' => array( 'static-view-style', 'dynamic-extra', 'static-child-view-style', 'dynamic-view-style' ),
425439
'expected_scripts' => array( 'static-view-script', 'static-child-view-script', 'dynamic-view-script' ),
426440
'expected_script_modules' => array( 'static-view-script-module', 'static-child-view-script-module', 'dynamic-view-script-module' ),
@@ -430,12 +444,20 @@ static function ( $content ) {
430444
add_filter( 'render_block_core/dynamic', '__return_empty_string' );
431445
},
432446
'block_markup' => $block_markup,
433-
'expected_rendered_block' => '
434-
<div class="static">
435-
<div class="static-child">First child</div>
436-
<div class="static-child">Last child</div>
437-
</div>
438-
',
447+
'expected_rendered_block' => <<<'HTML'
448+
449+
<div class="static">
450+
451+
<div class="static-child">First child</div>
452+
453+
454+
455+
<div class="static-child">Last child</div>
456+
457+
</div>
458+
459+
HTML
460+
,
439461
'expected_styles' => array( 'static-view-style', 'static-child-view-style' ),
440462
'expected_scripts' => array( 'static-view-script', 'static-child-view-script' ),
441463
'expected_script_modules' => array( 'static-view-script-module', 'static-child-view-script-module' ),
@@ -456,12 +478,20 @@ static function ( $enqueue, $block_name ) {
456478
);
457479
},
458480
'block_markup' => $block_markup,
459-
'expected_rendered_block' => '
460-
<div class="static">
461-
<div class="static-child">First child</div>
462-
<div class="static-child">Last child</div>
463-
</div>
464-
',
481+
'expected_rendered_block' => <<<'HTML'
482+
483+
<div class="static">
484+
485+
<div class="static-child">First child</div>
486+
487+
488+
489+
<div class="static-child">Last child</div>
490+
491+
</div>
492+
493+
HTML
494+
,
465495
'expected_styles' => array( 'static-view-style', 'static-child-view-style', 'dynamic-view-style' ),
466496
'expected_scripts' => array( 'static-view-script', 'static-child-view-script', 'dynamic-view-script' ),
467497
'expected_script_modules' => array( 'static-view-script-module', 'static-child-view-script-module', 'dynamic-view-script-module' ),
@@ -488,11 +518,16 @@ static function ( $content ) {
488518
add_filter( 'render_block_core/static-child', '__return_empty_string' );
489519
},
490520
'block_markup' => $block_markup,
491-
'expected_rendered_block' => '
492-
<div class="static">
493-
<p class="dynamic">Hello World!</p>
494-
</div>
495-
',
521+
'expected_rendered_block' => <<<'HTML'
522+
523+
<div class="static">
524+
525+
<p class="dynamic">Hello World!</p>
526+
527+
</div>
528+
529+
HTML
530+
,
496531
'expected_styles' => array( 'static-view-style', 'dynamic-view-style' ),
497532
'expected_scripts' => array( 'static-view-script', 'dynamic-view-script' ),
498533
'expected_script_modules' => array( 'static-view-script-module', 'dynamic-view-script-module' ),
@@ -512,12 +547,18 @@ static function ( $content ) {
512547
);
513548
},
514549
'block_markup' => $block_markup,
515-
'expected_rendered_block' => '
516-
<div class="static">
517-
<div class="static-child">First child</div>
518-
<p class="dynamic">Hello World!</p>
519-
</div>
520-
',
550+
'expected_rendered_block' => <<<'HTML'
551+
552+
<div class="static">
553+
554+
<div class="static-child">First child</div>
555+
556+
<p class="dynamic">Hello World!</p>
557+
558+
</div>
559+
560+
HTML
561+
,
521562
'expected_styles' => array( 'static-view-style', 'static-child-view-style', 'dynamic-view-style' ),
522563
'expected_scripts' => array( 'static-view-script', 'static-child-view-script', 'dynamic-view-script' ),
523564
'expected_script_modules' => array( 'static-view-script-module', 'static-child-view-script-module', 'dynamic-view-script-module' ),
@@ -562,9 +603,8 @@ static function ( $content ) {
562603
);
563604
},
564605
'block_markup' => '<!-- wp:static --><div class="static"></div><!-- /wp:static -->',
565-
'expected_rendered_block' => '
566-
<div class="static yes-admin-bar-script-enqueued yes-admin-bar-style-enqueued"></div>
567-
',
606+
'expected_rendered_block' =>
607+
'<div class="static yes-admin-bar-script-enqueued yes-admin-bar-style-enqueued"></div>',
568608
'expected_styles' => array( 'static-view-style', 'admin-bar' ),
569609
'expected_scripts' => array( 'static-view-script', 'admin-bar' ),
570610
'expected_script_modules' => array( 'static-view-script-module' ),
@@ -668,7 +708,7 @@ public function test_render_enqueues_scripts_and_styles( ?Closure $set_up, strin
668708
);
669709

670710
// TODO: Why not use do_blocks() instead?
671-
$parsed_blocks = parse_blocks( trim( $block_markup ) );
711+
$parsed_blocks = parse_blocks( $block_markup );
672712
$parsed_block = $parsed_blocks[0];
673713
$context = array();
674714
$block = new WP_Block( $parsed_block, $context, $this->registry );
@@ -682,7 +722,7 @@ public function test_render_enqueues_scripts_and_styles( ?Closure $set_up, strin
682722
$expected_rendered_block,
683723
$rendered_block,
684724
'<body>',
685-
"Rendered block does not contain expected HTML:\n$rendered_block"
725+
'Rendered block does not contain expected HTML.'
686726
);
687727
}
688728

0 commit comments

Comments
 (0)