Make WordPress Core

Changeset 61536


Ignore:
Timestamp:
01/27/2026 11:18:32 AM (7 months ago)
Author:
jonsurrell
Message:

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 https://github.com/WordPress/wordpress-develop/pull/10765.

Follow-up to [60295].

Reviewed by wildworks.
Merges [61519] to the 6.9 branch.

Props jonsurrell, dmsnell, bernhard-reiter.
Fixes #64531.

Location:
branches/6.9
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/6.9

  • branches/6.9/tests/phpunit/includes/build-visual-html-tree.php

    r60707 r61536  
    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                                }
     
    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;
  • branches/6.9/tests/phpunit/tests/blocks/wpBlock.php

    r60951 r61536  
    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 -->
     383HTML;
    384384
    385385                // TODO: Add case where a dynamic block renders other blocks?
     
    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
     402HTML
     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' ),
     
    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
     436HTML
     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' ),
     
    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
     459HTML
     460                                ,
    439461                                'expected_styles'         => array( 'static-view-style', 'static-child-view-style' ),
    440462                                'expected_scripts'        => array( 'static-view-script', 'static-child-view-script' ),
     
    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
     493HTML
     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' ),
     
    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
     529HTML
     530                                ,
    496531                                'expected_styles'         => array( 'static-view-style', 'dynamic-view-style' ),
    497532                                'expected_scripts'        => array( 'static-view-script', 'dynamic-view-script' ),
     
    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
     560HTML
     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' ),
     
    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' ),
     
    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();
     
    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        }
  • branches/6.9/tests/phpunit/tests/build-visual-html-tree.php

    r60295 r61536  
    1010class Tests_Build_Equivalent_HTML_Semantic_Tree extends WP_UnitTestCase {
    1111        public function data_build_equivalent_html_semantic_tree() {
    12                 $block_markup = <<<END
    13                         <!-- wp:separator {"className":"is-style-default has-custom-classname","style":{"spacing":{"margin":{"top":"50px","bottom":"50px"}}},"backgroundColor":"accent-1"} -->
    14                           <hr class="wp-block-separator is-style-default has-custom-classname" style="margin-top: 50px; margin-bottom: 50px" />
    15                         <!-- /wp:separator -->
    16 END;
    17 
    18                 $tree_structure = <<<END
     12                $block_markup = <<<'HTML'
     13<!-- wp:separator {"className":"is-style-default has-custom-classname","style":{"spacing":{"margin":{"top":"50px","bottom":"50px"}}},"backgroundColor":"accent-1"} -->
     14  <hr class="wp-block-separator is-style-default has-custom-classname" style="margin-top: 50px; margin-bottom: 50px" />
     15<!-- /wp:separator -->
     16HTML;
     17
     18                $tree_structure = <<<'TREE'
    1919BLOCK["core/separator"]
    2020  {
     
    3030    }
    3131  }
     32  "
     33  "
    3234  <hr>
    3335    class="has-custom-classname is-style-default wp-block-separator"
    3436    style="margin-top:50px;margin-bottom:50px;"
    35 
    36 END;
    37 
    38                 return array(
    39                         'Block delimiter' => array( $block_markup, $tree_structure ),
    40                 );
     37  "
     38"
     39
     40TREE;
     41
     42                yield 'Block delimiter' => array( $block_markup, $tree_structure );
     43
     44                $block_markup = <<<'HTML'
     45<!-- wp:example/block -->
     46        One
     47        <!-- wp:example/nested-void /-->
     48        Two
     49        <!-- wp:example/nested -->
     50                Three
     51        <!-- /wp:example/nested -->
     52        Four
     53<!-- /wp:example/block -->
     54HTML;
     55
     56                $tree_structure = <<<'TREE'
     57BLOCK["example/block"]
     58  "
     59        One
     60        "
     61  BLOCK["example/nested-void"]
     62  "
     63        Two
     64        "
     65  BLOCK["example/nested"]
     66    "
     67                Three
     68        "
     69  "
     70        Four
     71"
     72
     73TREE;
     74
     75                yield 'Text nodes in blocks' => array( $block_markup, $tree_structure );
    4176        }
    4277
    4378        /**
    4479         * @ticket 63527
     80         * @ticket 64531
    4581         *
    4682         * @covers ::build_visual_html_tree
     
    142178                $this->assertNotSame( $tree_expected, $tree_actual );
    143179        }
     180
     181        /**
     182         * @ticket 64531
     183         *
     184         * @covers ::build_visual_html_tree
     185         */
     186        public function test_spacing() {
     187                $html = <<<'HTML'
     188<p> space-surrounded&#x20;</p>
     189<p>&nbsp;nbsp-surrounded&#xA0;</p>
     190<p>
     191newline-surrounded&#xA;</p>
     192<p>&#x9;tab-surrounded  </p>
     193<p>ok</p>
     194HTML;
     195
     196                $expected = <<<TREE
     197<p>
     198  " space-surrounded "
     199"\n"
     200<p>
     201  "\u{00A0}nbsp-surrounded\u{00A0}"
     202"\n"
     203<p>
     204  "\nnewline-surrounded\n"
     205"\n"
     206<p>
     207  "\ttab-surrounded\t"
     208"\n"
     209<p>
     210  "ok"
     211
     212TREE;
     213
     214                $tree_result = build_visual_html_tree( $html, '<body>' );
     215                $this->assertSame( $expected, $tree_result );
     216        }
    144217}
  • branches/6.9/tests/phpunit/tests/dependencies/scripts.php

    r61506 r61536  
    248248                $output    = get_echo( 'wp_print_scripts' );
    249249                $expected  = "<script id='dependency-script-a2-js' src='/dependency-script-a2.js' type='text/javascript'></script>\n";
    250                 $expected .= "<script type='text/javascript' src='/main-script-a2.js' id='main-script-a2-js' {$strategy}='{$strategy}' data-wp-strategy='{$strategy}'></script>";
     250                $expected .= "<script type='text/javascript' src='/main-script-a2.js' id='main-script-a2-js' {$strategy}='{$strategy}' data-wp-strategy='{$strategy}'></script>\n";
    251251                $this->assertEqualHTML( $expected, $output, '<body>', 'Dependents of a blocking dependency are free to have any strategy.' );
    252252        }
     
    270270                $output   = get_echo( 'wp_print_scripts' );
    271271                $expected = <<<JS
    272                         <script type='text/javascript' src='/main-script-a3.js' id='main-script-a3-js' data-wp-strategy='{$strategy}'></script>
    273                         <script id="dependent-script-a3-js" src="/dependent-script-a3.js" type="text/javascript"></script>
     272<script type='text/javascript' src='/main-script-a3.js' id='main-script-a3-js' data-wp-strategy='{$strategy}'></script>
     273<script id="dependent-script-a3-js" src="/dependent-script-a3.js" type="text/javascript"></script>
     274
    274275JS;
    275276                $this->assertEqualHTML( $expected, $output, '<body>', 'Blocking dependents must force delayed dependencies to become blocking.' );
     
    13541355                        'enqueue_bajo' => array(
    13551356                                'enqueues' => array( 'bajo' ),
    1356                                 'expected' => '<script fetchpriority="low" id="bajo-js" src="/bajo.js" type="text/javascript"></script>',
     1357                                'expected' => "<script fetchpriority='low' id='bajo-js' src='/bajo.js' type='text/javascript'></script>\n",
    13571358                        ),
    13581359                        'enqueue_auto' => array(
    13591360                                'enqueues' => array( 'auto' ),
    1360                                 'expected' => '
    1361                                         <script type="text/javascript" src="/bajo.js" id="bajo-js" data-wp-fetchpriority="low"></script>
    1362                                         <script type="text/javascript" src="/auto.js" id="auto-js"></script>
    1363                                 ',
     1361                                'expected' =>
     1362                                        "<script type='text/javascript' src='/bajo.js' id='bajo-js' data-wp-fetchpriority='low'></script>\n" .
     1363                                        "<script type='text/javascript' src='/auto.js' id='auto-js'></script>\n",
    13641364                        ),
    13651365                        'enqueue_alto' => array(
    13661366                                'enqueues' => array( 'alto' ),
    1367                                 'expected' => '
    1368                                         <script type="text/javascript" src="/bajo.js" id="bajo-js" fetchpriority="high" data-wp-fetchpriority="low"></script>
    1369                                         <script type="text/javascript" src="/auto.js" id="auto-js" fetchpriority="high" data-wp-fetchpriority="auto"></script>
    1370                                         <script type="text/javascript" src="/alto.js" id="alto-js" fetchpriority="high"></script>
    1371                                 ',
     1367                                'expected' =>
     1368                                        "<script type='text/javascript' src='/bajo.js' id='bajo-js' fetchpriority='high' data-wp-fetchpriority='low'></script>\n" .
     1369                                        "<script type='text/javascript' src='/auto.js' id='auto-js' fetchpriority='high' data-wp-fetchpriority='auto'></script>\n" .
     1370                                        "<script type='text/javascript' src='/alto.js' id='alto-js' fetchpriority='high'></script>\n",
    13721371                        ),
    13731372                );
     
    14231422
    14241423                $actual   = get_echo( 'wp_print_scripts' );
    1425                 $expected = '
    1426                         <script type="text/javascript" src="/z.js" id="z-js" fetchpriority="high" data-wp-fetchpriority="auto"></script>
    1427                         <script type="text/javascript" src="/d.js" id="d-js" fetchpriority="high"></script>
    1428                         <script type="text/javascript" src="/e.js" id="e-js"></script>
    1429                         <script type="text/javascript" src="/c.js" id="c-js"></script>
    1430                         <script type="text/javascript" src="/b.js" id="b-js"></script>
    1431                         <script type="text/javascript" src="/a.js" id="a-js" fetchpriority="low"></script>
    1432                         <script type="text/javascript" src="/y.js" id="y-js" fetchpriority="high" data-wp-fetchpriority="auto"></script>
    1433                         <script type="text/javascript" src="/x.js" id="x-js" fetchpriority="high"></script>
    1434                 ';
     1424                $expected = <<<'HTML'
     1425<script type="text/javascript" src="/z.js" id="z-js" fetchpriority="high" data-wp-fetchpriority="auto"></script>
     1426<script type="text/javascript" src="/d.js" id="d-js" fetchpriority="high"></script>
     1427<script type="text/javascript" src="/e.js" id="e-js"></script>
     1428<script type="text/javascript" src="/c.js" id="c-js"></script>
     1429<script type="text/javascript" src="/b.js" id="b-js"></script>
     1430<script type="text/javascript" src="/a.js" id="a-js" fetchpriority="low"></script>
     1431<script type="text/javascript" src="/y.js" id="y-js" fetchpriority="high" data-wp-fetchpriority="auto"></script>
     1432<script type="text/javascript" src="/x.js" id="x-js" fetchpriority="high"></script>
     1433
     1434HTML;
    14351435                $this->assertEqualHTML( $expected, $actual, '<body>', "Snapshot:\n$actual" );
    14361436        }
     
    14881488                $actual = $this->normalize_markup_for_snapshot( get_echo( array( $wp_scripts, 'print_scripts' ) ) );
    14891489                $this->assertEqualHTML(
    1490                         '<script type="text/javascript" src="/wp-includes/js/comment-reply.js" id="comment-reply-js" async="async" data-wp-strategy="async" fetchpriority="low"></script>',
     1490                        "<script type='text/javascript' src='/wp-includes/js/comment-reply.js' id='comment-reply-js' async='async' data-wp-strategy='async' fetchpriority='low'></script>\n",
    14911491                        $actual,
    14921492                        '<body>',
     
    15251525                $this->assertEqualHTML(
    15261526                        sprintf(
    1527                                 '<script type="text/javascript" src="%s" id="comment-reply-js" async="async" data-wp-strategy="async" fetchpriority="low"></script>',
     1527                                "<script type='text/javascript' src='%s' id='comment-reply-js' async='async' data-wp-strategy='async' fetchpriority='low'></script>\n",
    15281528                                includes_url( 'js/comment-reply.js' )
    15291529                        ),
     
    22842284/* ]]> */
    22852285</script>
     2286
    22862287HTML;
    22872288                $expected .= "<script type='text/javascript' src='http://example.com' id='test-example-js'></script>\n";
     
    23052306/* ]]> */
    23062307</script>
     2308
    23072309HTML;
    23082310
     
    36553657                                },
    36563658                                'expected_header'    => '',
    3657                                 'expected_footer'    => '
    3658                                         <script type="text/javascript" src="https://example.com/script-a.js" id="script-a-js" data-wp-strategy="defer"></script>
    3659                                         <script type="text/javascript" src="https://example.com/script-b.js" id="script-b-js"></script>
    3660                                 ',
     3659                                'expected_footer'    =>
     3660                                        "<script type='text/javascript' src='https://example.com/script-a.js' id='script-a-js' data-wp-strategy='defer'></script>\n" .
     3661                                        "<script type='text/javascript' src='https://example.com/script-b.js' id='script-b-js'></script>\n",
    36613662                                'expected_in_footer' => array(
    36623663                                        'script-a',
     
    36763677                                },
    36773678                                'expected_header'    => '',
    3678                                 'expected_footer'    => '
    3679                                         <script type="text/javascript" src="https://example.com/script-a.js" id="script-a-js" data-wp-strategy="async"></script>
    3680                                         <script type="text/javascript" src="https://example.com/script-b.js" id="script-b-js"></script>
    3681                                 ',
     3679                                'expected_footer'    =>
     3680                                        "<script type='text/javascript' src='https://example.com/script-a.js' id='script-a-js' data-wp-strategy='async'></script>\n" .
     3681                                        "<script type='text/javascript' src='https://example.com/script-b.js' id='script-b-js'></script>\n",
    36823682                                'expected_in_footer' => array(
    36833683                                        'script-a',
     
    36963696                                        wp_enqueue_script( 'script-b', 'https://example.com/script-b.js', array( 'script-a' ), null, array( 'in_footer' => false ) );
    36973697                                },
    3698                                 'expected_header'    => '
    3699                                         <script type="text/javascript" src="https://example.com/script-a.js" id="script-a-js" data-wp-strategy="defer"></script>
    3700                                         <script type="text/javascript" src="https://example.com/script-b.js" id="script-b-js"></script>
    3701                                 ',
     3698                                'expected_header'    =>
     3699                                        "<script type='text/javascript' src='https://example.com/script-a.js' id='script-a-js' data-wp-strategy='defer'></script>\n" .
     3700                                        "<script type='text/javascript' src='https://example.com/script-b.js' id='script-b-js'></script>\n",
    37023701                                'expected_footer'    => '',
    37033702                                'expected_in_footer' => array(),
     
    37233722                                        );
    37243723                                },
    3725                                 'expected_header'    => '
    3726                                         <script type="text/javascript" src="https://example.com/script-a.js" id="script-a-js" defer="defer" data-wp-strategy="defer"></script>
    3727                                 ',
    3728                                 'expected_footer'    => '
    3729                                         <script type="text/javascript" src="https://example.com/script-b.js" id="script-b-js" defer="defer" data-wp-strategy="defer"></script>
    3730                                 ',
     3724                                'expected_header'    =>
     3725                                        "<script type='text/javascript' src='https://example.com/script-a.js' id='script-a-js' defer='defer' data-wp-strategy='defer'></script>\n",
     3726                                'expected_footer'    =>
     3727                                        "<script type='text/javascript' src='https://example.com/script-b.js' id='script-b-js' defer='defer' data-wp-strategy='defer'></script>\n",
    37313728                                'expected_in_footer' => array(
    37323729                                        'script-b',
     
    37733770                                        );
    37743771                                },
    3775                                 'expected_header'    => '
    3776                                         <script type="text/javascript" src="https://example.com/script-a.js" id="script-a-js" defer="defer" data-wp-strategy="defer"></script>
    3777                                         <script type="text/javascript" src="https://example.com/script-b.js" id="script-b-js" defer="defer" data-wp-strategy="defer"></script>
    3778                                 ',
    3779                                 'expected_footer'    => '
    3780                                         <script type="text/javascript" src="https://example.com/script-c.js" id="script-c-js" defer="defer" data-wp-strategy="defer"></script>
    3781                                         <script type="text/javascript" src="https://example.com/script-d.js" id="script-d-js" defer="defer" data-wp-strategy="defer"></script>
    3782                                 ',
     3772                                'expected_header'    =>
     3773                                        "<script type='text/javascript' src='https://example.com/script-a.js' id='script-a-js' defer='defer' data-wp-strategy='defer'></script>\n" .
     3774                                        "<script type='text/javascript' src='https://example.com/script-b.js' id='script-b-js' defer='defer' data-wp-strategy='defer'></script>\n",
     3775                                'expected_footer'    =>
     3776                                        "<script type='text/javascript' src='https://example.com/script-c.js' id='script-c-js' defer='defer' data-wp-strategy='defer'></script>\n" .
     3777                                        "<script type='text/javascript' src='https://example.com/script-d.js' id='script-d-js' defer='defer' data-wp-strategy='defer'></script>\n",
    37833778                                'expected_in_footer' => array(
    37843779                                        'script-c',
     
    38203815                                },
    38213816                                'expected_header'    => '',
    3822                                 'expected_footer'    => '
    3823                                         <script type="text/javascript" src="https://example.com/script-a.js" id="script-a-js" data-wp-strategy="defer"></script>
    3824                                         <script type="text/javascript" src="https://example.com/script-b.js" id="script-b-js" defer="defer" data-wp-strategy="defer"></script>
    3825                                         <script type="text/javascript" src="https://example.com/script-c.js" id="script-c-js"></script>
    3826                                         <script type="text/javascript" src="https://example.com/script-d.js" id="script-d-js" defer="defer" data-wp-strategy="defer"></script>
    3827                                 ',
     3817                                'expected_footer'    =>
     3818                                        "<script type='text/javascript' src='https://example.com/script-a.js' id='script-a-js' data-wp-strategy='defer'></script>\n" .
     3819                                        "<script type='text/javascript' src='https://example.com/script-b.js' id='script-b-js' defer='defer' data-wp-strategy='defer'></script>\n" .
     3820                                        "<script type='text/javascript' src='https://example.com/script-c.js' id='script-c-js'></script>\n" .
     3821                                        "<script type='text/javascript' src='https://example.com/script-d.js' id='script-d-js' defer='defer' data-wp-strategy='defer'></script>\n",
    38283822                                'expected_in_footer' => array(
    38293823                                        'script-a',
     
    38673861                                        );
    38683862                                },
    3869                                 'expected_header'    => '
    3870                                         <script type="text/javascript" src="https://example.com/script-a.js" id="script-a-js" data-wp-strategy="defer"></script>
    3871                                         <script type="text/javascript" src="https://example.com/script-b.js" id="script-b-js" defer="defer" data-wp-strategy="defer"></script>
    3872                                 ',
    3873                                 'expected_footer'    => '
    3874                                         <script type="text/javascript" src="https://example.com/script-c.js" id="script-c-js"></script>
    3875                                         <script type="text/javascript" src="https://example.com/script-d.js" id="script-d-js" defer="defer" data-wp-strategy="defer"></script>
    3876                                 ',
     3863                                'expected_header'    =>
     3864                                        "<script type='text/javascript' src='https://example.com/script-a.js' id='script-a-js' data-wp-strategy='defer'></script>\n" .
     3865                                        "<script type='text/javascript' src='https://example.com/script-b.js' id='script-b-js' defer='defer' data-wp-strategy='defer'></script>\n",
     3866                                'expected_footer'    =>
     3867                                        "<script type='text/javascript' src='https://example.com/script-c.js' id='script-c-js'></script>\n" .
     3868                                        "<script type='text/javascript' src='https://example.com/script-d.js' id='script-d-js' defer='defer' data-wp-strategy='defer'></script>\n",
    38773869                                'expected_in_footer' => array(
    38783870                                        'script-c',
     
    40884080
    40894081                $expected = <<<HTML
     4082
    40904083<script>
    40914084/* <![CDATA[ */
  • branches/6.9/tests/phpunit/tests/dependencies/styles.php

    r61084 r61536  
    811811/*# sourceURL=css-inline-concat-one%2Ctwo */
    812812</style>
     813
    813814HTML;
    814815
  • branches/6.9/tests/phpunit/tests/script-modules/wpScriptModules.php

    r61506 r61536  
    573573                        2
    574574                );
    575                 $actual = get_echo( array( wp_script_modules(), 'print_enqueued_script_modules' ) );
     575                $actual   = get_echo( array( wp_script_modules(), 'print_enqueued_script_modules' ) );
     576                $expected = <<<'HTML'
     577<script type="module" src="/src.js" id="with-src-js-module"></script>
     578<script type="module" src="/was-empty-but-added-via-filter.js" id="without-src-but-filtered-js-module"></script>
     579
     580HTML;
    576581                $this->assertEqualHTML(
    577                         '
    578                                 <script type="module" src="/src.js" id="with-src-js-module"></script>
    579                                 <script type="module" src="/was-empty-but-added-via-filter.js" id="without-src-but-filtered-js-module"></script>
    580                         ',
     582                        $expected,
    581583                        $actual,
    582584                        '<body>',
    583                         "Expected only one SCRIPT tag to be printed. Snapshot:\n$actual"
     585                        'Expected only one SCRIPT tag to be printed.'
    584586                );
    585587        }
     
    14771479                $actual_footer = get_echo( array( wp_script_modules(), 'print_enqueued_script_modules' ) );
    14781480
     1481                $expected = <<<'HTML'
     1482<script type="module" src="/default.js" id="default-js-module"></script>
     1483<script type="module" src="/not-in-footer-via-enqueue.js" id="not-in-footer-via-enqueue-js-module"></script>
     1484<script type="module" src="/not-in-footer-via-override.js" id="not-in-footer-via-override-js-module"></script>
     1485
     1486HTML;
     1487
    14791488                $this->assertEqualHTML(
    14801489                        $actual_head,
    1481                         '
    1482                                 <script type="module" src="/default.js" id="default-js-module"></script>
    1483                                 <script type="module" src="/not-in-footer-via-enqueue.js" id="not-in-footer-via-enqueue-js-module"></script>
    1484                                 <script type="module" src="/not-in-footer-via-override.js" id="not-in-footer-via-override-js-module"></script>
    1485                         ',
     1490                        $expected,
    14861491                        '<body>',
    1487                         "Expected equal script modules in the HEAD. Snapshot:\n$actual_head"
    1488                 );
     1492                        'Expected equal script modules in the HEAD.'
     1493                );
     1494
     1495                $expected = <<<'HTML'
     1496<script type="module" src="/in-footer-via-register.js" id="in-footer-via-register-js-module"></script>
     1497<script type="module" src="/in-footer-via-enqueue.js" id="in-footer-via-enqueue-js-module"></script>
     1498<script type="module" src="/in-footer-via-override.js" id="in-footer-via-override-js-module"></script>
     1499
     1500HTML;
    14891501                $this->assertEqualHTML(
    14901502                        $actual_footer,
    1491                         '
    1492                                 <script type="module" src="/in-footer-via-register.js" id="in-footer-via-register-js-module"></script>
    1493                                 <script type="module" src="/in-footer-via-enqueue.js" id="in-footer-via-enqueue-js-module"></script>
    1494                                 <script type="module" src="/in-footer-via-override.js" id="in-footer-via-override-js-module"></script>
    1495                         ',
     1503                        $expected,
    14961504                        '<body>',
    1497                         "Expected equal script modules in the footer. Snapshot:\n$actual_footer"
     1505                        'Expected equal script modules in the footer.'
    14981506                );
    14991507        }
     
    17471755                $actual   = get_echo( array( wp_script_modules(), 'print_script_module_preloads' ) );
    17481756                $actual  .= get_echo( array( wp_script_modules(), 'print_enqueued_script_modules' ) );
    1749                 $expected = '
    1750                         <link rel="modulepreload" href="/z.js" id="z-js-modulepreload" fetchpriority="high">
    1751                         <link rel="modulepreload" href="/d.js" id="d-js-modulepreload" fetchpriority="high">
    1752                         <link rel="modulepreload" href="/e.js" id="e-js-modulepreload" fetchpriority="low">
    1753                         <link rel="modulepreload" href="/c.js" id="c-js-modulepreload" fetchpriority="low">
    1754                         <link rel="modulepreload" href="/b.js" id="b-js-modulepreload" fetchpriority="low">
    1755                         <link rel="modulepreload" href="/y.js" id="y-js-modulepreload" fetchpriority="high">
    1756                         <script type="module" src="/a.js" id="a-js-module" fetchpriority="low"></script>
    1757                         <script type="module" src="/x.js" id="x-js-module" fetchpriority="high"></script>
    1758                 ';
    1759                 $this->assertEqualHTML( $expected, $actual, '<body>', "Snapshot:\n$actual" );
     1757                $expected = <<<'HTML'
     1758<link rel="modulepreload" href="/z.js" id="z-js-modulepreload" fetchpriority="high">
     1759<link rel="modulepreload" href="/d.js" id="d-js-modulepreload" fetchpriority="high">
     1760<link rel="modulepreload" href="/e.js" id="e-js-modulepreload" fetchpriority="low">
     1761<link rel="modulepreload" href="/c.js" id="c-js-modulepreload" fetchpriority="low">
     1762<link rel="modulepreload" href="/b.js" id="b-js-modulepreload" fetchpriority="low">
     1763<link rel="modulepreload" href="/y.js" id="y-js-modulepreload" fetchpriority="high">
     1764<script type="module" src="/a.js" id="a-js-module" fetchpriority="low"></script>
     1765<script type="module" src="/x.js" id="x-js-module" fetchpriority="high"></script>
     1766
     1767HTML;
     1768                $this->assertEqualHTML( $expected, $actual );
    17601769        }
    17611770
     
    17921801                $actual   = get_echo( array( wp_script_modules(), 'print_script_module_preloads' ) );
    17931802                $actual  .= get_echo( array( wp_script_modules(), 'print_enqueued_script_modules' ) );
    1794                 $expected = '
    1795                         <link rel="modulepreload" href="/d.js" id="d-js-modulepreload" fetchpriority="low">
    1796                         <link rel="modulepreload" href="/e.js" id="e-js-modulepreload" fetchpriority="high" data-wp-fetchpriority="low">
    1797                         <link rel="modulepreload" href="/a.js" id="a-js-modulepreload" fetchpriority="low" data-wp-fetchpriority="high">
    1798                         <link rel="modulepreload" href="/b.js" id="b-js-modulepreload">
    1799                         <link rel="modulepreload" href="/f.js" id="f-js-modulepreload" fetchpriority="high">
    1800                         <link rel="modulepreload" href="/c.js" id="c-js-modulepreload" fetchpriority="high">
    1801                         <script type="module" src="/x.js" id="x-js-module" fetchpriority="low"></script>
    1802                         <script type="module" src="/y.js" id="y-js-module"></script>
    1803                         <script type="module" src="/z.js" id="z-js-module" fetchpriority="high"></script>
    1804                 ';
    1805                 $this->assertEqualHTML( $expected, $actual, '<body>', "Snapshot:\n$actual" );
     1803                $expected = <<<'HTML'
     1804<link rel="modulepreload" href="/d.js" id="d-js-modulepreload" fetchpriority="low">
     1805<link rel="modulepreload" href="/e.js" id="e-js-modulepreload" fetchpriority="high" data-wp-fetchpriority="low">
     1806<link rel="modulepreload" href="/a.js" id="a-js-modulepreload" fetchpriority="low" data-wp-fetchpriority="high">
     1807<link rel="modulepreload" href="/b.js" id="b-js-modulepreload">
     1808<link rel="modulepreload" href="/f.js" id="f-js-modulepreload" fetchpriority="high">
     1809<link rel="modulepreload" href="/c.js" id="c-js-modulepreload" fetchpriority="high">
     1810<script type="module" src="/x.js" id="x-js-module" fetchpriority="low"></script>
     1811<script type="module" src="/y.js" id="y-js-module"></script>
     1812<script type="module" src="/z.js" id="z-js-module" fetchpriority="high"></script>
     1813
     1814HTML;
     1815                $this->assertEqualHTML( $expected, $actual );
    18061816        }
    18071817
     
    18231833                $actual_preloads = $this->normalize_markup_for_snapshot( get_echo( array( wp_script_modules(), 'print_script_module_preloads' ) ) );
    18241834                $this->assertEqualHTML(
    1825                         '
    1826                                 <link rel="modulepreload" href="/wp-includes/js/dist/script-modules/interactivity/debug.min.js" id="@wordpress/interactivity-js-modulepreload" fetchpriority="low">
    1827                         ',
    1828                         $actual_preloads,
    1829                         '<body>',
    1830                         "Snapshot:\n$actual_preloads"
     1835                        "<link rel='modulepreload' href='/wp-includes/js/dist/script-modules/interactivity/debug.min.js' id='@wordpress/interactivity-js-modulepreload' fetchpriority='low'>\n",
     1836                        $actual_preloads
    18311837                );
    18321838
     
    18341840                $this->assertEqualHTML(
    18351841                        '',
    1836                         $actual_head_script_modules,
    1837                         '<body>',
    1838                         "Snapshot:\n$actual_head_script_modules"
     1842                        $actual_head_script_modules
    18391843                );
    18401844
    18411845                $actual_footer_script_modules = $this->normalize_markup_for_snapshot( get_echo( array( wp_script_modules(), 'print_enqueued_script_modules' ) ) );
     1846                $expected                     = <<<'HTML'
     1847<script type="module" src="/wp-includes/js/dist/script-modules/a11y/index.min.js" id="@wordpress/a11y-js-module" fetchpriority="low"></script>
     1848<script type="module" src="/wp-includes/js/dist/script-modules/block-library/navigation/view.min.js" id="@wordpress/block-library/navigation/view-js-module" fetchpriority="low" data-wp-router-options="{&quot;loadOnClientNavigation&quot;:true}"></script>
     1849
     1850HTML;
    18421851                $this->assertEqualHTML(
    1843                         '
    1844                                 <script type="module" src="/wp-includes/js/dist/script-modules/a11y/index.min.js" id="@wordpress/a11y-js-module" fetchpriority="low"></script>
    1845                                 <script type="module" src="/wp-includes/js/dist/script-modules/block-library/navigation/view.min.js" id="@wordpress/block-library/navigation/view-js-module" fetchpriority="low" data-wp-router-options="{&quot;loadOnClientNavigation&quot;:true}"></script>
    1846                         ',
    1847                         $actual_footer_script_modules,
    1848                         '<body>',
    1849                         "Snapshot:\n$actual_footer_script_modules"
     1852                        $expected,
     1853                        $actual_footer_script_modules
    18501854                );
    18511855        }
     
    18671871                $actual = $this->normalize_markup_for_snapshot( get_echo( array( wp_script_modules(), 'print_enqueued_script_modules' ) ) );
    18681872                $this->assertEqualHTML(
    1869                         '<script type="module" src="/wp-includes/js/dist/script-modules/a11y/index.min.js" id="@wordpress/a11y-js-module" fetchpriority="low"></script>',
    1870                         $actual,
    1871                         '<body>',
    1872                         "Snapshot:\n$actual"
     1873                        "<script type='module' src='/wp-includes/js/dist/script-modules/a11y/index.min.js' id='@wordpress/a11y-js-module' fetchpriority='low'></script>\n",
     1874                        $actual
    18731875                );
    18741876        }
     
    18961898                $actual = $this->normalize_markup_for_snapshot( $actual );
    18971899
    1898                 $expected = '
    1899                         <link rel="modulepreload" href="/wp-includes/js/dist/script-modules/a11y/index.min.js" id="@wordpress/a11y-js-modulepreload" fetchpriority="high" data-wp-fetchpriority="low">
    1900                         <link rel="modulepreload" href="/wp-includes/js/dist/script-modules/interactivity/debug.min.js" id="@wordpress/interactivity-js-modulepreload" fetchpriority="high" data-wp-fetchpriority="low">
    1901                         <link rel="modulepreload" href="/wp-includes/js/dist/script-modules/block-library/navigation/view.min.js" id="@wordpress/block-library/navigation/view-js-modulepreload" fetchpriority="high" data-wp-fetchpriority="low">
    1902                         <script type="module" src="/super-important-module.js" id="super-important-js-module" fetchpriority="high"></script>
    1903                 ';
    1904                 $this->assertEqualHTML( $expected, $actual, '<body>', "Snapshot:\n$actual" );
     1900                $expected = <<<'HTML'
     1901<link rel="modulepreload" href="/wp-includes/js/dist/script-modules/a11y/index.min.js" id="@wordpress/a11y-js-modulepreload" fetchpriority="high" data-wp-fetchpriority="low">
     1902<link rel="modulepreload" href="/wp-includes/js/dist/script-modules/interactivity/debug.min.js" id="@wordpress/interactivity-js-modulepreload" fetchpriority="high" data-wp-fetchpriority="low">
     1903<link rel="modulepreload" href="/wp-includes/js/dist/script-modules/block-library/navigation/view.min.js" id="@wordpress/block-library/navigation/view-js-modulepreload" fetchpriority="high" data-wp-fetchpriority="low">
     1904<script type="module" src="/super-important-module.js" id="super-important-js-module" fetchpriority="high"></script>
     1905
     1906HTML;
     1907                $this->assertEqualHTML( $expected, $actual );
    19051908        }
    19061909
     
    23412344                );
    23422345                $this->assertEqualHTML(
    2343                         '
    2344                                 <link rel="modulepreload" href="/static1.js" id="static1-js-modulepreload">
    2345                         ',
     2346                        "<link rel='modulepreload' href='/static1.js' id='static1-js-modulepreload'>\n",
    23462347                        $preload_links,
    23472348                        '<body>',
    2348                         "Expected preload links to match snapshot:\n$preload_links"
     2349                        'Expected preload links to match.'
    23492350                );
    23502351                $this->assertEqualHTML(
    2351                         '
    2352                                 <script type="module" src="/enqueued.js" id="enqueued-js-module"></script>
    2353                         ',
     2352                        "<script type='module' src='/enqueued.js' id='enqueued-js-module'></script>\n",
    23542353                        $script_modules,
    23552354                        '<body>',
    2356                         "Expected script modules to match snapshot:\n$script_modules"
     2355                        'Expected script modules to match.'
    23572356                );
    23582357        }
Note: See TracChangeset for help on using the changeset viewer.