Make WordPress Core

Changeset 61411


Ignore:
Timestamp:
12/26/2025 01:14:22 PM (5 months ago)
Author:
jonsurrell
Message:

Scripts: Remove default type attribute from tags.

SCRIPT, STYLE, and stylesheet LINK tags do not require a type attribute since the HTML5 standard was released in 2008. Removing the type attribute simplifies logic and normalizes the produced HTML content.

Developed in https://github.com/WordPress/wordpress-develop/pull/10658.

Follow-up to [46164].

Props hardikhuptechdev, jonsurrell, dmsnell, westonruter.
Fixes #64428. See #59883, #64442.

Location:
trunk
Files:
36 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-activate.php

    r60914 r61411  
    101101function wpmu_activate_stylesheet() {
    102102    ?>
    103     <style type="text/css">
     103    <style>
    104104        .wp-activate-container { width: 90%; margin: 0 auto; }
    105105        .wp-activate-container form { margin-top: 2em; }
  • trunk/src/wp-admin/includes/ajax-actions.php

    r61312 r61411  
    39473947
    39483948    foreach ( $styles as $style ) {
    3949         $head .= '<link type="text/css" rel="stylesheet" href="' . $style . '">';
     3949        $head .= '<link rel="stylesheet" href="' . $style . '">';
    39503950    }
    39513951
  • trunk/src/wp-admin/includes/plugin-install.php

    r61353 r61411  
    607607        $high         = empty( $api->banners['high'] ) ? $api->banners['low'] : $api->banners['high'];
    608608        ?>
    609         <style type="text/css">
     609        <style>
    610610            #plugin-information-title.with-banner {
    611611                background-image: url( <?php echo esc_url( $low ); ?> );
  • trunk/src/wp-admin/includes/privacy-tools.php

    r60178 r61411  
    452452    fwrite( $file, "<head>\n" );
    453453    fwrite( $file, "<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />\n" );
    454     fwrite( $file, "<style type='text/css'>" );
     454    fwrite( $file, '<style>' );
    455455    fwrite( $file, 'body { color: black; font-family: Arial, sans-serif; font-size: 11pt; margin: 15px auto; width: 860px; }' );
    456456    fwrite( $file, 'table { background: #f0f0f0; border: 1px solid #ddd; margin-bottom: 20px; width: 100%; }' );
  • trunk/src/wp-content/themes/twentyeleven/functions.php

    r61315 r61411  
    336336        // If we get this far, we have custom styles. Let's do this.
    337337        ?>
    338         <style type="text/css" id="twentyeleven-header-css">
     338        <style id="twentyeleven-header-css">
    339339        <?php
    340340        // Has the text been hidden?
  • trunk/src/wp-content/themes/twentyeleven/header.php

    r61329 r61411  
    3939    </title>
    4040<link rel="profile" href="https://gmpg.org/xfn/11" />
    41 <link rel="stylesheet" type="text/css" media="all" href="<?php echo esc_url( get_stylesheet_uri() ); ?>?ver=20251202" />
     41<link rel="stylesheet" media="all" href="<?php echo esc_url( get_stylesheet_uri() ); ?>?ver=20251202" />
    4242<link rel="pingback" href="<?php echo esc_url( get_bloginfo( 'pingback_url' ) ); ?>">
    4343<?php
  • trunk/src/wp-content/themes/twentyfifteen/inc/custom-header.php

    r60521 r61411  
    9696        // If we get this far, we have custom styles. Let's do this.
    9797        ?>
    98         <style type="text/css" id="twentyfifteen-header-css">
     98        <style id="twentyfifteen-header-css">
    9999        <?php
    100100        // Short header for when there is no Custom Header and Header Text is hidden.
  • trunk/src/wp-content/themes/twentyfourteen/inc/custom-header.php

    r60519 r61411  
    7070        // If we get this far, we have custom styles.
    7171        ?>
    72         <style type="text/css" id="twentyfourteen-header-css">
     72        <style id="twentyfourteen-header-css">
    7373        <?php
    7474        // Has the text been hidden?
  • trunk/src/wp-content/themes/twentynineteen/functions.php

    r61329 r61411  
    350350    ?>
    351351
    352     <style type="text/css" id="custom-theme-colors" <?php echo is_customize_preview() ? 'data-hue="' . absint( $primary_color ) . '"' : ''; ?>>
     352    <style id="custom-theme-colors" <?php echo is_customize_preview() ? 'data-hue="' . absint( $primary_color ) . '"' : ''; ?>>
    353353        <?php echo twentynineteen_custom_colors_css(); ?>
    354354    </style>
  • trunk/src/wp-content/themes/twentyseventeen/functions.php

    r61329 r61411  
    444444    }
    445445    ?>
    446     <style type="text/css" id="custom-theme-colors" <?php echo $customize_preview_data_hue; ?>>
     446    <style id="custom-theme-colors" <?php echo $customize_preview_data_hue; ?>>
    447447        <?php echo twentyseventeen_custom_colors_css(); ?>
    448448    </style>
  • trunk/src/wp-content/themes/twentyseventeen/inc/custom-header.php

    r60533 r61411  
    7878        // If we get this far, we have custom styles. Let's do this.
    7979        ?>
    80         <style id="twentyseventeen-custom-header-styles" type="text/css">
     80        <style id="twentyseventeen-custom-header-styles">
    8181        <?php
    8282        // Has the text been hidden?
  • trunk/src/wp-content/themes/twentysixteen/inc/customizer.php

    r60965 r61411  
    9191        // If the header text has been hidden.
    9292        ?>
    93         <style type="text/css" id="twentysixteen-header-css">
     93        <style id="twentysixteen-header-css">
    9494        .site-branding {
    9595            margin: 0 auto 0 0;
  • trunk/src/wp-content/themes/twentyten/functions.php

    r60509 r61411  
    276276    function twentyten_admin_header_style() {
    277277        ?>
    278     <style type="text/css" id="twentyten-admin-header-css">
     278    <style id="twentyten-admin-header-css">
    279279    /* Shows the same border as on front end */
    280280    #headimg {
  • trunk/src/wp-content/themes/twentyten/header.php

    r61329 r61411  
    4040    </title>
    4141<link rel="profile" href="https://gmpg.org/xfn/11" />
    42 <link rel="stylesheet" type="text/css" media="all" href="<?php echo esc_url( get_stylesheet_uri() ); ?>?ver=20251202" />
     42<link rel="stylesheet" media="all" href="<?php echo esc_url( get_stylesheet_uri() ); ?>?ver=20251202" />
    4343<link rel="pingback" href="<?php echo esc_url( get_bloginfo( 'pingback_url' ) ); ?>">
    4444<?php
  • trunk/src/wp-content/themes/twentythirteen/inc/custom-header.php

    r61329 r61411  
    9797    // If we get this far, we have custom styles.
    9898    ?>
    99     <style type="text/css" id="twentythirteen-header-css">
     99    <style id="twentythirteen-header-css">
    100100    <?php
    101101    if ( ! empty( $header_image ) ) :
  • trunk/src/wp-content/themes/twentytwelve/inc/custom-header.php

    r60514 r61411  
    7878    // If we get this far, we have custom styles.
    7979    ?>
    80     <style type="text/css" id="twentytwelve-header-css">
     80    <style id="twentytwelve-header-css">
    8181    <?php
    8282        // Has the text been hidden?
  • trunk/src/wp-includes/class-wp-styles.php

    r61397 r61411  
    107107
    108108    /**
    109      * Holds a string which contains the type attribute for style tag.
    110      *
    111      * If the active theme does not declare HTML5 support for 'style',
    112      * then it initializes as `type='text/css'`.
    113      *
    114      * @since 5.3.0
    115      * @var string
    116      */
    117     private $type_attr = '';
    118 
    119     /**
    120109     * Constructor.
    121110     *
     
    123112     */
    124113    public function __construct() {
    125         if (
    126             (
    127                 function_exists( 'is_admin' ) &&
    128                 ! is_admin()
    129             )
    130             &&
    131             (
    132                 function_exists( 'current_theme_supports' ) &&
    133                 ! current_theme_supports( 'html5', 'style' )
    134             )
    135         ) {
    136             $this->type_attr = " type='text/css'";
    137         }
    138 
    139114        /**
    140115         * Fires when the WP_Styles instance is initialized.
     
    185160        if ( $inline_style ) {
    186161            $inline_style_tag = sprintf(
    187                 "<style id='%s-inline-css'%s>\n%s\n</style>\n",
     162                "<style id='%s-inline-css'>\n%s\n</style>\n",
    188163                esc_attr( $handle ),
    189                 $this->type_attr,
    190164                $inline_style
    191165            );
     
    233207
    234208        $tag = sprintf(
    235             "<link rel='%s' id='%s-css'%s href='%s'%s media='%s' />\n",
     209            "<link rel='%s' id='%s-css'%s href='%s' media='%s' />\n",
    236210            $rel,
    237211            esc_attr( $handle ),
    238212            $title ? sprintf( " title='%s'", esc_attr( $title ) ) : '',
    239213            $href,
    240             $this->type_attr,
    241214            esc_attr( $media )
    242215        );
     
    265238
    266239            $rtl_tag = sprintf(
    267                 "<link rel='%s' id='%s-rtl-css'%s href='%s'%s media='%s' />\n",
     240                "<link rel='%s' id='%s-rtl-css'%s href='%s' media='%s' />\n",
    268241                $rel,
    269242                esc_attr( $handle ),
    270243                $title ? sprintf( " title='%s'", esc_attr( $title ) ) : '',
    271244                $rtl_href,
    272                 $this->type_attr,
    273245                esc_attr( $media )
    274246            );
     
    366338
    367339        printf(
    368             "<style id='%s-inline-css'%s>\n%s\n</style>\n",
     340            "<style id='%s-inline-css'>\n%s\n</style>\n",
    369341            esc_attr( $handle ),
    370             $this->type_attr,
    371342            $output
    372343        );
  • trunk/src/wp-includes/deprecated.php

    r60910 r61411  
    58985898    _deprecated_function( __FUNCTION__, '6.4.0', 'wp_enqueue_embed_styles' );
    58995899
    5900     $type_attr = current_theme_supports( 'html5', 'style' ) ? '' : ' type="text/css"';
    5901     $suffix    = SCRIPT_DEBUG ? '' : '.min';
     5900    $suffix = SCRIPT_DEBUG ? '' : '.min';
    59025901    ?>
    5903     <style<?php echo $type_attr; ?>>
     5902    <style>
    59045903        <?php echo file_get_contents( ABSPATH . WPINC . "/css/wp-embed-template$suffix.css" ); ?>
    59055904    </style>
     
    59235922    $printed = true;
    59245923
    5925     $type_attr = current_theme_supports( 'html5', 'style' ) ? '' : ' type="text/css"';
    59265924    ?>
    5927     <style<?php echo $type_attr; ?>>
     5925    <style>
    59285926    img.wp-smiley,
    59295927    img.emoji {
     
    59505948function wp_admin_bar_header() {
    59515949    _deprecated_function( __FUNCTION__, '6.4.0', 'wp_enqueue_admin_bar_header_styles' );
    5952     $type_attr = current_theme_supports( 'html5', 'style' ) ? '' : ' type="text/css"';
    59535950    ?>
    5954     <style<?php echo $type_attr; ?> media="print">#wpadminbar { display:none; }</style>
     5951    <style media="print">#wpadminbar { display:none; }</style>
    59555952    <?php
    59565953}
     
    59645961function _admin_bar_bump_cb() {
    59655962    _deprecated_function( __FUNCTION__, '6.4.0', 'wp_enqueue_admin_bar_bump_styles' );
    5966     $type_attr = current_theme_supports( 'html5', 'style' ) ? '' : ' type="text/css"';
    59675963    ?>
    5968     <style<?php echo $type_attr; ?> media="screen">
     5964    <style media="screen">
    59695965    html { margin-top: 32px !important; }
    59705966    @media screen and ( max-width: 782px ) {
  • trunk/src/wp-includes/fonts/class-wp-font-face.php

    r59259 r61411  
    6363
    6464    /**
    65      * Array of font-face style tag's attribute(s)
    66      * where the key is the attribute name and the
    67      * value is its value.
    68      *
    69      * @since 6.4.0
    70      *
    71      * @var string[]
    72      */
    73     private $style_tag_attrs = array();
    74 
    75     /**
    76      * Creates and initializes an instance of WP_Font_Face.
    77      *
    78      * @since 6.4.0
    79      */
    80     public function __construct() {
    81         if (
    82             function_exists( 'is_admin' ) && ! is_admin()
    83             &&
    84             function_exists( 'current_theme_supports' ) && ! current_theme_supports( 'html5', 'style' )
    85         ) {
    86             $this->style_tag_attrs = array( 'type' => 'text/css' );
    87         }
    88     }
    89 
    90     /**
    9165     * Generates and prints the `@font-face` styles for the given fonts.
    9266     *
     
    228202     */
    229203    private function get_style_element() {
    230         $attributes = $this->generate_style_element_attributes();
    231 
    232         return "<style class='wp-fonts-local'{$attributes}>\n%s\n</style>\n";
    233     }
    234 
    235     /**
    236      * Gets the defined <style> element's attributes.
    237      *
    238      * @since 6.4.0
    239      *
    240      * @return string A string of attribute=value when defined, else, empty string.
    241      */
    242     private function generate_style_element_attributes() {
    243         $attributes = '';
    244         foreach ( $this->style_tag_attrs as $name => $value ) {
    245             $attributes .= " {$name}='{$value}'";
    246         }
    247         return $attributes;
     204        return "<style class='wp-fonts-local'>\n%s\n</style>\n";
    248205    }
    249206
  • trunk/src/wp-includes/functions.php

    r61387 r61411  
    39223922        ?>
    39233923    <title><?php echo $title; ?></title>
    3924     <style type="text/css">
     3924    <style>
    39253925        html {
    39263926            background: #f1f1f1;
  • trunk/src/wp-includes/general-template.php

    r61326 r61411  
    50625062
    50635063    $stylesheet_link = sprintf(
    5064         "<link rel='stylesheet' href='%s' type='text/css' />\n",
     5064        "<link rel='stylesheet' href='%s' />\n",
    50655065        esc_url( wp_admin_css_uri( $file ) )
    50665066    );
     
    50815081    if ( function_exists( 'is_rtl' ) && is_rtl() ) {
    50825082        $rtl_stylesheet_link = sprintf(
    5083             "<link rel='stylesheet' href='%s' type='text/css' />\n",
     5083            "<link rel='stylesheet' href='%s' />\n",
    50845084            esc_url( wp_admin_css_uri( "$file-rtl" ) )
    50855085        );
  • trunk/src/wp-includes/media.php

    r61387 r61411  
    28722872     */
    28732873    if ( apply_filters( 'use_default_gallery_style', ! $html5 ) ) {
    2874         $type_attr = current_theme_supports( 'html5', 'style' ) ? '' : ' type="text/css"';
    2875 
    28762874        $gallery_style = "
    2877         <style{$type_attr}>
     2875        <style>
    28782876            #{$selector} {
    28792877                margin: auto;
  • trunk/src/wp-includes/ms-deprecated.php

    r57987 r61411  
    9595<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    9696<title>Error!</title>
    97 <style type="text/css">
     97<style>
    9898img {
    9999    border: 0;
  • trunk/src/wp-includes/script-loader.php

    r61388 r61411  
    22062206    }
    22072207
    2208     $concat    = trim( $wp_scripts->concat, ', ' );
    2209     $type_attr = current_theme_supports( 'html5', 'script' ) ? '' : " type='text/javascript'";
     2208    $concat = trim( $wp_scripts->concat, ', ' );
    22102209
    22112210    if ( $concat ) {
    22122211        if ( ! empty( $wp_scripts->print_code ) ) {
    2213             echo "\n<script{$type_attr}>\n";
     2212            echo "\n<script>\n";
    22142213            echo "/* <![CDATA[ */\n"; // Not needed in HTML 5.
    22152214            echo $wp_scripts->print_code;
     
    22272226
    22282227        $src = $wp_scripts->base_url . "/wp-admin/load-scripts.php?c={$zip}" . $concatenated . '&ver=' . $wp_scripts->default_version;
    2229         echo "<script{$type_attr} src='" . esc_attr( $src ) . "'></script>\n";
     2228        echo "<script src='" . esc_attr( $src ) . "'></script>\n";
    22302229    }
    22312230
     
    23992398    }
    24002399
    2401     $concat    = trim( $wp_styles->concat, ', ' );
    2402     $type_attr = current_theme_supports( 'html5', 'style' ) ? '' : ' type="text/css"';
     2400    $concat = trim( $wp_styles->concat, ', ' );
    24032401
    24042402    if ( $concat ) {
     
    24152413
    24162414        $href = $wp_styles->base_url . "/wp-admin/load-styles.php?c={$zip}&dir={$dir}" . $concatenated . '&ver=' . $ver;
    2417         echo "<link rel='stylesheet' href='" . esc_attr( $href ) . "'{$type_attr} media='all' />\n";
     2415        echo "<link rel='stylesheet' href='" . esc_attr( $href ) . "' media='all' />\n";
    24182416
    24192417        if ( ! empty( $wp_styles->print_code ) ) {
    2420             echo "<style{$type_attr}>\n";
     2418            echo "<style>\n";
    24212419            echo $wp_styles->print_code;
    24222420            echo sprintf( "\n/*# sourceURL=%s */", rawurlencode( $concat_source_url ) );
     
    29062904 */
    29072905function wp_get_script_tag( $attributes ) {
    2908     if ( ! isset( $attributes['type'] ) && ! is_admin() && ! current_theme_supports( 'html5', 'script' ) ) {
    2909         // Keep the type attribute as the first for legacy reasons (it has always been this way in core).
    2910         $attributes = array_merge(
    2911             array( 'type' => 'text/javascript' ),
    2912             $attributes
    2913         );
    2914     }
    29152906    /**
    29162907     * Filters attributes to be added to a script tag.
     
    29542945 */
    29552946function wp_get_inline_script_tag( $data, $attributes = array() ) {
    2956     $is_html5 = current_theme_supports( 'html5', 'script' ) || is_admin();
    2957     if ( ! isset( $attributes['type'] ) && ! $is_html5 ) {
    2958         // Keep the type attribute as the first for legacy reasons (it has always been this way in core).
    2959         $attributes = array_merge(
    2960             array( 'type' => 'text/javascript' ),
    2961             $attributes
    2962         );
    2963     }
    2964 
    29652947    /*
    29662948     * XHTML extracts the contents of the SCRIPT element and then the XML parser
     
    29882970     */
    29892971    if (
    2990         ! $is_html5 &&
     2972        ! current_theme_supports( 'html5', 'script' ) &&
    29912973        (
    29922974            ! isset( $attributes['type'] ) ||
  • trunk/src/wp-includes/theme-compat/header.php

    r54881 r61411  
    2424<title><?php echo wp_get_document_title(); ?></title>
    2525
    26 <link rel="stylesheet" href="<?php bloginfo( 'stylesheet_url' ); ?>" type="text/css" media="screen" />
     26<link rel="stylesheet" href="<?php bloginfo( 'stylesheet_url' ); ?>" media="screen" />
    2727<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" />
    2828
    2929<?php if ( file_exists( get_stylesheet_directory() . '/images/kubrickbgwide.jpg' ) ) { ?>
    30 <style type="text/css" media="screen">
     30<style media="screen">
    3131
    3232    <?php
  • trunk/src/wp-includes/theme.php

    r60995 r61411  
    734734    }
    735735
    736     $type_attr = current_theme_supports( 'html5', 'style' ) ? '' : ' type="text/css"';
    737 
    738736    printf(
    739         '<link rel="stylesheet" href="%s"%s media="screen" />',
    740         $stylesheet,
    741         $type_attr
     737        '<link rel="stylesheet" href="%s" media="screen" />',
     738        $stylesheet
    742739    );
    743740}
  • trunk/src/wp-includes/widgets/class-wp-widget-recent-comments.php

    r51967 r61411  
    5656        }
    5757
    58         $type_attr = current_theme_supports( 'html5', 'style' ) ? '' : ' type="text/css"';
    59 
    60         printf(
    61             '<style%s>.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style>',
    62             $type_attr
    63         );
     58        echo '<style>.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style>';
    6459    }
    6560
  • trunk/src/wp-login.php

    r61387 r61411  
    177177
    178178        ?>
    179         <style type="text/css">html{background-color: transparent;}</style>
     179        <style>html{background-color: transparent;}</style>
    180180        <?php
    181181
  • trunk/src/wp-signup.php

    r59960 r61411  
    6464function wpmu_signup_stylesheet() {
    6565    ?>
    66     <style type="text/css">
     66    <style>
    6767        .mu_register { width: 90%; margin: 0 auto; }
    6868        .mu_register form { margin-top: 2em; }
  • trunk/tests/phpunit/tests/dependencies/scripts.php

    r61401 r61411  
    4848
    4949        $this->wp_scripts_print_translations_output  = <<<JS
    50 <script type='text/javascript' id='__HANDLE__-js-translations'>
     50<script id='__HANDLE__-js-translations'>
    5151/* <![CDATA[ */
    5252( function( domain, translations ) {
     
    126126        wp_enqueue_script( 'registered-no-qs-handle-null-version-enqueued-with-qs?arg1=foo&arg2=bar' );
    127127
    128         $expected  = "<script type='text/javascript' src='http://example.com?ver={$wp_version}' id='no-deps-no-version-js'></script>\n";
    129         $expected .= "<script type='text/javascript' src='http://example.com?ver={$wp_version}' id='empty-deps-no-version-js'></script>\n";
    130         $expected .= "<script type='text/javascript' src='http://example.com?ver=1.2' id='empty-deps-version-js'></script>\n";
    131         $expected .= "<script type='text/javascript' src='http://example.com' id='empty-deps-null-version-js'></script>\n";
    132         $expected .= "<script type='text/javascript' src='https://example.com/test.js?ver=2.0&amp;arg1=foo&amp;arg2=bar' id='empty-deps-arg-in-handle-with-ver-js'></script>\n";
    133         $expected .= "<script type='text/javascript' src='https://example.com/test.js?arg1=foo&amp;arg2=bar' id='empty-deps-arg-in-handle-without-ver-js'></script>\n";
    134         $expected .= "<script type='text/javascript' src='https://example.com/test.js?ver={$wp_version}&amp;arg1=foo&amp;arg2=bar' id='registered-no-qs-handle-null-version-enqueued-with-qs-js'></script>\n";
     128        $expected  = "<script src='http://example.com?ver={$wp_version}' id='no-deps-no-version-js'></script>\n";
     129        $expected .= "<script src='http://example.com?ver={$wp_version}' id='empty-deps-no-version-js'></script>\n";
     130        $expected .= "<script src='http://example.com?ver=1.2' id='empty-deps-version-js'></script>\n";
     131        $expected .= "<script src='http://example.com' id='empty-deps-null-version-js'></script>\n";
     132        $expected .= "<script src='https://example.com/test.js?ver=2.0&amp;arg1=foo&amp;arg2=bar' id='empty-deps-arg-in-handle-with-ver-js'></script>\n";
     133        $expected .= "<script src='https://example.com/test.js?arg1=foo&amp;arg2=bar' id='empty-deps-arg-in-handle-without-ver-js'></script>\n";
     134        $expected .= "<script src='https://example.com/test.js?ver={$wp_version}&amp;arg1=foo&amp;arg2=bar' id='registered-no-qs-handle-null-version-enqueued-with-qs-js'></script>\n";
    135135
    136136        $this->assertEqualHTML( $expected, get_echo( 'wp_print_scripts' ) );
     
    173173        wp_add_inline_script( 'ms-isa-1', 'console.log(\'after one\');', 'after' );
    174174        $output    = get_echo( 'wp_print_scripts' );
    175         $expected  = "<script type='text/javascript' src='http://example.org/ms-isa-1.js' id='ms-isa-1-js' data-wp-strategy='{$strategy}'></script>\n";
     175        $expected  = "<script src='http://example.org/ms-isa-1.js' id='ms-isa-1-js' data-wp-strategy='{$strategy}'></script>\n";
    176176        $expected .= wp_get_inline_script_tag(
    177177            "console.log('after one');\n//# sourceURL=ms-isa-1-js-after",
     
    186186     * Tests that inline scripts in the `after` position, attached to a blocking main script, are rendered as javascript.
    187187     *
    188      * If a main script with a `blocking` strategy has an `after` inline script,
    189      * the inline script should be rendered as type='text/javascript'.
    190      *
    191188     * @ticket 12009
    192189     *
     
    201198        $output = get_echo( 'wp_print_scripts' );
    202199
    203         $expected  = "<script type='text/javascript' src='http://example.org/ms-insa-3.js' id='ms-insa-3-js'></script>\n";
     200        $expected  = "<script src='http://example.org/ms-insa-3.js' id='ms-insa-3-js'></script>\n";
    204201        $expected .= wp_get_inline_script_tag(
    205202            "console.log('after one');\n//# sourceURL=ms-insa-3-js-after",
     
    242239            )
    243240        );
    244         $expected .= "<script type='text/javascript' src='http://example.org/ds-i1-1.js' id='ds-i1-1-js' {$strategy}='{$strategy}' data-wp-strategy='{$strategy}'></script>\n";
    245         $expected .= "<script type='text/javascript' src='http://example.org/ds-i1-2.js' id='ds-i1-2-js' {$strategy}='{$strategy}' data-wp-strategy='{$strategy}'></script>\n";
    246         $expected .= "<script type='text/javascript' src='http://example.org/ds-i1-3.js' id='ds-i1-3-js' {$strategy}='{$strategy}' data-wp-strategy='{$strategy}'></script>\n";
     241        $expected .= "<script src='http://example.org/ds-i1-1.js' id='ds-i1-1-js' {$strategy}='{$strategy}' data-wp-strategy='{$strategy}'></script>\n";
     242        $expected .= "<script src='http://example.org/ds-i1-2.js' id='ds-i1-2-js' {$strategy}='{$strategy}' data-wp-strategy='{$strategy}'></script>\n";
     243        $expected .= "<script src='http://example.org/ds-i1-3.js' id='ds-i1-3-js' {$strategy}='{$strategy}' data-wp-strategy='{$strategy}'></script>\n";
    247244        $expected .= wp_get_inline_script_tag(
    248245            "console.log('before last');\n//# sourceURL=ms-i1-1-js-before",
    249246            array(
    250                 'id'   => 'ms-i1-1-js-before',
    251                 'type' => 'text/javascript',
     247                'id' => 'ms-i1-1-js-before',
    252248            )
    253249        );
    254         $expected .= "<script type='text/javascript' src='http://example.org/ms-i1-1.js' id='ms-i1-1-js' {$strategy}='{$strategy}' data-wp-strategy='{$strategy}'></script>\n";
     250        $expected .= "<script src='http://example.org/ms-i1-1.js' id='ms-i1-1-js' {$strategy}='{$strategy}' data-wp-strategy='{$strategy}'></script>\n";
    255251
    256252        $this->assertEqualHTML( $expected, $output, '<body>', 'Inline scripts in the "before" position, that are attached to a deferred main script, are failing to print/execute.' );
     
    271267        wp_enqueue_script( 'main-script-a1', '/main-script-a1.js', array(), null, array( 'strategy' => 'async' ) );
    272268        $output   = get_echo( 'wp_print_scripts' );
    273         $expected = "<script type='text/javascript' src='/main-script-a1.js' id='main-script-a1-js' async='async' data-wp-strategy='async'></script>\n";
     269        $expected = "<script src='/main-script-a1.js' id='main-script-a1-js' async='async' data-wp-strategy='async'></script>\n";
    274270        $this->assertEqualHTML( $expected, $output, '<body>', 'Scripts enqueued with an async loading strategy are failing to have the async attribute applied to the script handle when being printed.' );
    275271    }
     
    293289        wp_enqueue_script( 'main-script-a2', '/main-script-a2.js', array( 'dependency-script-a2' ), null, compact( 'strategy' ) );
    294290        $output    = get_echo( 'wp_print_scripts' );
    295         $expected  = "<script id='dependency-script-a2-js' src='/dependency-script-a2.js' type='text/javascript'></script>\n";
    296         $expected .= "<script type='text/javascript' src='/main-script-a2.js' id='main-script-a2-js' {$strategy}='{$strategy}' data-wp-strategy='{$strategy}'></script>";
     291        $expected  = "<script id='dependency-script-a2-js' src='/dependency-script-a2.js'></script>\n";
     292        $expected .= "<script src='/main-script-a2.js' id='main-script-a2-js' {$strategy}='{$strategy}' data-wp-strategy='{$strategy}'></script>";
    297293        $this->assertEqualHTML( $expected, $output, '<body>', 'Dependents of a blocking dependency are free to have any strategy.' );
    298294    }
     
    316312        $output   = get_echo( 'wp_print_scripts' );
    317313        $expected = <<<JS
    318             <script type='text/javascript' src='/main-script-a3.js' id='main-script-a3-js' data-wp-strategy='{$strategy}'></script>
    319             <script id="dependent-script-a3-js" src="/dependent-script-a3.js" type="text/javascript"></script>
     314            <script src='/main-script-a3.js' id='main-script-a3-js' data-wp-strategy='{$strategy}'></script>
     315            <script id="dependent-script-a3-js" src="/dependent-script-a3.js"></script>
    320316JS;
    321317        $this->assertEqualHTML( $expected, $output, '<body>', 'Blocking dependents must force delayed dependencies to become blocking.' );
     
    567563                },
    568564                'expected_markup' => <<<HTML
    569 <script id="blocking-not-async-without-dependency-js-before" type="text/javascript">
     565<script id="blocking-not-async-without-dependency-js-before">
    570566/* <![CDATA[ */
    571567scriptEventLog.push( "blocking-not-async-without-dependency: before inline" )
     
    573569/* ]]> */
    574570</script>
    575 <script type='text/javascript' src='https://example.com/external.js?script_event_log=blocking-not-async-without-dependency%3A+script' id='blocking-not-async-without-dependency-js'></script>
    576 <script id="blocking-not-async-without-dependency-js-after" type="text/javascript">
     571<script src='https://example.com/external.js?script_event_log=blocking-not-async-without-dependency%3A+script' id='blocking-not-async-without-dependency-js'></script>
     572<script id="blocking-not-async-without-dependency-js-after">
    577573/* <![CDATA[ */
    578574scriptEventLog.push( "blocking-not-async-without-dependency: after inline" )
     
    580576/* ]]> */
    581577</script>
    582 <script id="async-with-blocking-dependency-js-before" type="text/javascript">
     578<script id="async-with-blocking-dependency-js-before">
    583579/* <![CDATA[ */
    584580scriptEventLog.push( "async-with-blocking-dependency: before inline" )
     
    586582/* ]]> */
    587583</script>
    588 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async-with-blocking-dependency%3A+script' id='async-with-blocking-dependency-js' data-wp-strategy='async'></script>
    589 <script id="async-with-blocking-dependency-js-after" type="text/javascript">
     584<script src='https://example.com/external.js?script_event_log=async-with-blocking-dependency%3A+script' id='async-with-blocking-dependency-js' data-wp-strategy='async'></script>
     585<script id="async-with-blocking-dependency-js-after">
    590586/* <![CDATA[ */
    591587scriptEventLog.push( "async-with-blocking-dependency: after inline" )
     
    616612                },
    617613                'expected_markup' => <<<HTML
    618 <script id="async-no-dependency-js-before" type="text/javascript">
     614<script id="async-no-dependency-js-before">
    619615/* <![CDATA[ */
    620616scriptEventLog.push( "async-no-dependency: before inline" )
     
    622618/* ]]> */
    623619</script>
    624 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async-no-dependency%3A+script' id='async-no-dependency-js' data-wp-strategy='async'></script>
    625 <script id="async-no-dependency-js-after" type="text/javascript">
     620<script src='https://example.com/external.js?script_event_log=async-no-dependency%3A+script' id='async-no-dependency-js' data-wp-strategy='async'></script>
     621<script id="async-no-dependency-js-after">
    626622/* <![CDATA[ */
    627623scriptEventLog.push( "async-no-dependency: after inline" )
     
    629625/* ]]> */
    630626</script>
    631 <script id="async-one-async-dependency-js-before" type="text/javascript">
     627<script id="async-one-async-dependency-js-before">
    632628/* <![CDATA[ */
    633629scriptEventLog.push( "async-one-async-dependency: before inline" )
     
    635631/* ]]> */
    636632</script>
    637 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async-one-async-dependency%3A+script' id='async-one-async-dependency-js' data-wp-strategy='async'></script>
    638 <script id="async-one-async-dependency-js-after" type="text/javascript">
     633<script src='https://example.com/external.js?script_event_log=async-one-async-dependency%3A+script' id='async-one-async-dependency-js' data-wp-strategy='async'></script>
     634<script id="async-one-async-dependency-js-after">
    639635/* <![CDATA[ */
    640636scriptEventLog.push( "async-one-async-dependency: after inline" )
     
    642638/* ]]> */
    643639</script>
    644 <script id="async-two-async-dependencies-js-before" type="text/javascript">
     640<script id="async-two-async-dependencies-js-before">
    645641/* <![CDATA[ */
    646642scriptEventLog.push( "async-two-async-dependencies: before inline" )
     
    648644/* ]]> */
    649645</script>
    650 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async-two-async-dependencies%3A+script' id='async-two-async-dependencies-js' data-wp-strategy='async'></script>
    651 <script id="async-two-async-dependencies-js-after" type="text/javascript">
     646<script src='https://example.com/external.js?script_event_log=async-two-async-dependencies%3A+script' id='async-two-async-dependencies-js' data-wp-strategy='async'></script>
     647<script id="async-two-async-dependencies-js-after">
    652648/* <![CDATA[ */
    653649scriptEventLog.push( "async-two-async-dependencies: after inline" )
     
    670666                },
    671667                'expected_markup' => <<<HTML
    672 <script id="async-with-blocking-dependent-js-before" type="text/javascript">
     668<script id="async-with-blocking-dependent-js-before">
    673669/* <![CDATA[ */
    674670scriptEventLog.push( "async-with-blocking-dependent: before inline" )
     
    676672/* ]]> */
    677673</script>
    678 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async-with-blocking-dependent%3A+script' id='async-with-blocking-dependent-js' data-wp-strategy='async'></script>
    679 <script id="async-with-blocking-dependent-js-after" type="text/javascript">
     674<script src='https://example.com/external.js?script_event_log=async-with-blocking-dependent%3A+script' id='async-with-blocking-dependent-js' data-wp-strategy='async'></script>
     675<script id="async-with-blocking-dependent-js-after">
    680676/* <![CDATA[ */
    681677scriptEventLog.push( "async-with-blocking-dependent: after inline" )
     
    683679/* ]]> */
    684680</script>
    685 <script id="blocking-dependent-of-async-js-before" type="text/javascript">
     681<script id="blocking-dependent-of-async-js-before">
    686682/* <![CDATA[ */
    687683scriptEventLog.push( "blocking-dependent-of-async: before inline" )
     
    689685/* ]]> */
    690686</script>
    691 <script type='text/javascript' src='https://example.com/external.js?script_event_log=blocking-dependent-of-async%3A+script' id='blocking-dependent-of-async-js'></script>
    692 <script id="blocking-dependent-of-async-js-after" type="text/javascript">
     687<script src='https://example.com/external.js?script_event_log=blocking-dependent-of-async%3A+script' id='blocking-dependent-of-async-js'></script>
     688<script id="blocking-dependent-of-async-js-after">
    693689/* <![CDATA[ */
    694690scriptEventLog.push( "blocking-dependent-of-async: after inline" )
     
    711707                },
    712708                'expected_markup' => <<<HTML
    713 <script id="async-with-defer-dependent-js-before" type="text/javascript">
     709<script id="async-with-defer-dependent-js-before">
    714710/* <![CDATA[ */
    715711scriptEventLog.push( "async-with-defer-dependent: before inline" )
     
    717713/* ]]> */
    718714</script>
    719 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async-with-defer-dependent%3A+script' id='async-with-defer-dependent-js' data-wp-strategy='async'></script>
    720 <script id="async-with-defer-dependent-js-after" type="text/javascript">
     715<script src='https://example.com/external.js?script_event_log=async-with-defer-dependent%3A+script' id='async-with-defer-dependent-js' data-wp-strategy='async'></script>
     716<script id="async-with-defer-dependent-js-after">
    721717/* <![CDATA[ */
    722718scriptEventLog.push( "async-with-defer-dependent: after inline" )
     
    724720/* ]]> */
    725721</script>
    726 <script id="defer-dependent-of-async-js-before" type="text/javascript">
     722<script id="defer-dependent-of-async-js-before">
    727723/* <![CDATA[ */
    728724scriptEventLog.push( "defer-dependent-of-async: before inline" )
     
    730726/* ]]> */
    731727</script>
    732 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependent-of-async%3A+script' id='defer-dependent-of-async-js' data-wp-strategy='defer'></script>
    733 <script id="defer-dependent-of-async-js-after" type="text/javascript">
     728<script src='https://example.com/external.js?script_event_log=defer-dependent-of-async%3A+script' id='defer-dependent-of-async-js' data-wp-strategy='defer'></script>
     729<script id="defer-dependent-of-async-js-after">
    734730/* <![CDATA[ */
    735731scriptEventLog.push( "defer-dependent-of-async: after inline" )
     
    755751                },
    756752                'expected_markup' => <<<HTML
    757 <script id="blocking-bundle-of-none-js-before" type="text/javascript">
     753<script id="blocking-bundle-of-none-js-before">
    758754/* <![CDATA[ */
    759755scriptEventLog.push( "blocking-bundle-of-none: before inline" )
     
    761757/* ]]> */
    762758</script>
    763 <script id="blocking-bundle-of-none-js-after" type="text/javascript">
     759<script id="blocking-bundle-of-none-js-after">
    764760/* <![CDATA[ */
    765761scriptEventLog.push( "blocking-bundle-of-none: after inline" )
     
    767763/* ]]> */
    768764</script>
    769 <script id="defer-dependent-of-blocking-bundle-of-none-js-before" type="text/javascript">
     765<script id="defer-dependent-of-blocking-bundle-of-none-js-before">
    770766/* <![CDATA[ */
    771767scriptEventLog.push( "defer-dependent-of-blocking-bundle-of-none: before inline" )
     
    773769/* ]]> */
    774770</script>
    775 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependent-of-blocking-bundle-of-none%3A+script' id='defer-dependent-of-blocking-bundle-of-none-js' data-wp-strategy='defer'></script>
    776 <script id="defer-dependent-of-blocking-bundle-of-none-js-after" type="text/javascript">
     771<script src='https://example.com/external.js?script_event_log=defer-dependent-of-blocking-bundle-of-none%3A+script' id='defer-dependent-of-blocking-bundle-of-none-js' data-wp-strategy='defer'></script>
     772<script id="defer-dependent-of-blocking-bundle-of-none-js-after">
    777773/* <![CDATA[ */
    778774scriptEventLog.push( "defer-dependent-of-blocking-bundle-of-none: after inline" )
     
    801797                },
    802798                'expected_markup' => <<<HTML
    803 <script id="blocking-bundle-member-one-js-before" type="text/javascript">
     799<script id="blocking-bundle-member-one-js-before">
    804800/* <![CDATA[ */
    805801scriptEventLog.push( "blocking-bundle-member-one: before inline" )
     
    807803/* ]]> */
    808804</script>
    809 <script type='text/javascript' src='https://example.com/external.js?script_event_log=blocking-bundle-member-one%3A+script' id='blocking-bundle-member-one-js'></script>
    810 <script id="blocking-bundle-member-one-js-after" type="text/javascript">
     805<script src='https://example.com/external.js?script_event_log=blocking-bundle-member-one%3A+script' id='blocking-bundle-member-one-js'></script>
     806<script id="blocking-bundle-member-one-js-after">
    811807/* <![CDATA[ */
    812808scriptEventLog.push( "blocking-bundle-member-one: after inline" )
     
    814810/* ]]> */
    815811</script>
    816 <script id="blocking-bundle-member-two-js-before" type="text/javascript">
     812<script id="blocking-bundle-member-two-js-before">
    817813/* <![CDATA[ */
    818814scriptEventLog.push( "blocking-bundle-member-two: before inline" )
     
    820816/* ]]> */
    821817</script>
    822 <script type='text/javascript' src='https://example.com/external.js?script_event_log=blocking-bundle-member-two%3A+script' id='blocking-bundle-member-two-js'></script>
    823 <script id="blocking-bundle-member-two-js-after" type="text/javascript">
     818<script src='https://example.com/external.js?script_event_log=blocking-bundle-member-two%3A+script' id='blocking-bundle-member-two-js'></script>
     819<script id="blocking-bundle-member-two-js-after">
    824820/* <![CDATA[ */
    825821scriptEventLog.push( "blocking-bundle-member-two: after inline" )
     
    827823/* ]]> */
    828824</script>
    829 <script id="defer-dependent-of-blocking-bundle-of-two-js-before" type="text/javascript">
     825<script id="defer-dependent-of-blocking-bundle-of-two-js-before">
    830826/* <![CDATA[ */
    831827scriptEventLog.push( "defer-dependent-of-blocking-bundle-of-two: before inline" )
     
    833829/* ]]> */
    834830</script>
    835 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependent-of-blocking-bundle-of-two%3A+script' id='defer-dependent-of-blocking-bundle-of-two-js' data-wp-strategy='defer'></script>
    836 <script id="defer-dependent-of-blocking-bundle-of-two-js-after" type="text/javascript">
     831<script src='https://example.com/external.js?script_event_log=defer-dependent-of-blocking-bundle-of-two%3A+script' id='defer-dependent-of-blocking-bundle-of-two-js' data-wp-strategy='defer'></script>
     832<script id="defer-dependent-of-blocking-bundle-of-two-js-after">
    837833/* <![CDATA[ */
    838834scriptEventLog.push( "defer-dependent-of-blocking-bundle-of-two: after inline" )
     
    860856                },
    861857                'expected_markup' => <<<HTML
    862 <script id="defer-bundle-of-none-js-before" type="text/javascript">
     858<script id="defer-bundle-of-none-js-before">
    863859/* <![CDATA[ */
    864860scriptEventLog.push( "defer-bundle-of-none: before inline" )
     
    866862/* ]]> */
    867863</script>
    868 <script id="defer-bundle-of-none-js-after" type="text/javascript">
     864<script id="defer-bundle-of-none-js-after">
    869865/* <![CDATA[ */
    870866scriptEventLog.push( "defer-bundle-of-none: after inline" )
     
    872868/* ]]> */
    873869</script>
    874 <script id="defer-dependent-of-defer-bundle-of-none-js-before" type="text/javascript">
     870<script id="defer-dependent-of-defer-bundle-of-none-js-before">
    875871/* <![CDATA[ */
    876872scriptEventLog.push( "defer-dependent-of-defer-bundle-of-none: before inline" )
     
    878874/* ]]> */
    879875</script>
    880 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependent-of-defer-bundle-of-none%3A+script' id='defer-dependent-of-defer-bundle-of-none-js' data-wp-strategy='defer'></script>
    881 <script id="defer-dependent-of-defer-bundle-of-none-js-after" type="text/javascript">
     876<script src='https://example.com/external.js?script_event_log=defer-dependent-of-defer-bundle-of-none%3A+script' id='defer-dependent-of-defer-bundle-of-none-js' data-wp-strategy='defer'></script>
     877<script id="defer-dependent-of-defer-bundle-of-none-js-after">
    882878/* <![CDATA[ */
    883879scriptEventLog.push( "defer-dependent-of-defer-bundle-of-none: after inline" )
     
    903899                },
    904900                'expected_markup' => <<<HTML
    905 <script id="blocking-dependency-with-defer-following-dependency-js-before" type="text/javascript">
     901<script id="blocking-dependency-with-defer-following-dependency-js-before">
    906902/* <![CDATA[ */
    907903scriptEventLog.push( "blocking-dependency-with-defer-following-dependency: before inline" )
     
    909905/* ]]> */
    910906</script>
    911 <script type='text/javascript' src='https://example.com/external.js?script_event_log=blocking-dependency-with-defer-following-dependency%3A+script' id='blocking-dependency-with-defer-following-dependency-js'></script>
    912 <script id="blocking-dependency-with-defer-following-dependency-js-after" type="text/javascript">
     907<script src='https://example.com/external.js?script_event_log=blocking-dependency-with-defer-following-dependency%3A+script' id='blocking-dependency-with-defer-following-dependency-js'></script>
     908<script id="blocking-dependency-with-defer-following-dependency-js-after">
    913909/* <![CDATA[ */
    914910scriptEventLog.push( "blocking-dependency-with-defer-following-dependency: after inline" )
     
    916912/* ]]> */
    917913</script>
    918 <script id="defer-dependency-with-blocking-preceding-dependency-js-before" type="text/javascript">
     914<script id="defer-dependency-with-blocking-preceding-dependency-js-before">
    919915/* <![CDATA[ */
    920916scriptEventLog.push( "defer-dependency-with-blocking-preceding-dependency: before inline" )
     
    922918/* ]]> */
    923919</script>
    924 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependency-with-blocking-preceding-dependency%3A+script' id='defer-dependency-with-blocking-preceding-dependency-js' data-wp-strategy='defer'></script>
    925 <script id="defer-dependency-with-blocking-preceding-dependency-js-after" type="text/javascript">
     920<script src='https://example.com/external.js?script_event_log=defer-dependency-with-blocking-preceding-dependency%3A+script' id='defer-dependency-with-blocking-preceding-dependency-js' data-wp-strategy='defer'></script>
     921<script id="defer-dependency-with-blocking-preceding-dependency-js-after">
    926922/* <![CDATA[ */
    927923scriptEventLog.push( "defer-dependency-with-blocking-preceding-dependency: after inline" )
     
    929925/* ]]> */
    930926</script>
    931 <script id="defer-dependent-of-blocking-and-defer-dependencies-js-before" type="text/javascript">
     927<script id="defer-dependent-of-blocking-and-defer-dependencies-js-before">
    932928/* <![CDATA[ */
    933929scriptEventLog.push( "defer-dependent-of-blocking-and-defer-dependencies: before inline" )
     
    935931/* ]]> */
    936932</script>
    937 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependent-of-blocking-and-defer-dependencies%3A+script' id='defer-dependent-of-blocking-and-defer-dependencies-js' data-wp-strategy='defer'></script>
    938 <script id="defer-dependent-of-blocking-and-defer-dependencies-js-after" type="text/javascript">
     933<script src='https://example.com/external.js?script_event_log=defer-dependent-of-blocking-and-defer-dependencies%3A+script' id='defer-dependent-of-blocking-and-defer-dependencies-js' data-wp-strategy='defer'></script>
     934<script id="defer-dependent-of-blocking-and-defer-dependencies-js-after">
    939935/* <![CDATA[ */
    940936scriptEventLog.push( "defer-dependent-of-blocking-and-defer-dependencies: after inline" )
     
    960956                },
    961957                'expected_markup' => <<<HTML
    962 <script id="defer-dependency-with-blocking-following-dependency-js-before" type="text/javascript">
     958<script id="defer-dependency-with-blocking-following-dependency-js-before">
    963959/* <![CDATA[ */
    964960scriptEventLog.push( "defer-dependency-with-blocking-following-dependency: before inline" )
     
    966962/* ]]> */
    967963</script>
    968 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependency-with-blocking-following-dependency%3A+script' id='defer-dependency-with-blocking-following-dependency-js' data-wp-strategy='defer'></script>
    969 <script id="defer-dependency-with-blocking-following-dependency-js-after" type="text/javascript">
     964<script src='https://example.com/external.js?script_event_log=defer-dependency-with-blocking-following-dependency%3A+script' id='defer-dependency-with-blocking-following-dependency-js' data-wp-strategy='defer'></script>
     965<script id="defer-dependency-with-blocking-following-dependency-js-after">
    970966/* <![CDATA[ */
    971967scriptEventLog.push( "defer-dependency-with-blocking-following-dependency: after inline" )
     
    973969/* ]]> */
    974970</script>
    975 <script id="blocking-dependency-with-defer-preceding-dependency-js-before" type="text/javascript">
     971<script id="blocking-dependency-with-defer-preceding-dependency-js-before">
    976972/* <![CDATA[ */
    977973scriptEventLog.push( "blocking-dependency-with-defer-preceding-dependency: before inline" )
     
    979975/* ]]> */
    980976</script>
    981 <script type='text/javascript' src='https://example.com/external.js?script_event_log=blocking-dependency-with-defer-preceding-dependency%3A+script' id='blocking-dependency-with-defer-preceding-dependency-js'></script>
    982 <script id="blocking-dependency-with-defer-preceding-dependency-js-after" type="text/javascript">
     977<script src='https://example.com/external.js?script_event_log=blocking-dependency-with-defer-preceding-dependency%3A+script' id='blocking-dependency-with-defer-preceding-dependency-js'></script>
     978<script id="blocking-dependency-with-defer-preceding-dependency-js-after">
    983979/* <![CDATA[ */
    984980scriptEventLog.push( "blocking-dependency-with-defer-preceding-dependency: after inline" )
     
    986982/* ]]> */
    987983</script>
    988 <script id="defer-dependent-of-defer-and-blocking-dependencies-js-before" type="text/javascript">
     984<script id="defer-dependent-of-defer-and-blocking-dependencies-js-before">
    989985/* <![CDATA[ */
    990986scriptEventLog.push( "defer-dependent-of-defer-and-blocking-dependencies: before inline" )
     
    992988/* ]]> */
    993989</script>
    994 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependent-of-defer-and-blocking-dependencies%3A+script' id='defer-dependent-of-defer-and-blocking-dependencies-js' data-wp-strategy='defer'></script>
    995 <script id="defer-dependent-of-defer-and-blocking-dependencies-js-after" type="text/javascript">
     990<script src='https://example.com/external.js?script_event_log=defer-dependent-of-defer-and-blocking-dependencies%3A+script' id='defer-dependent-of-defer-and-blocking-dependencies-js' data-wp-strategy='defer'></script>
     991<script id="defer-dependent-of-defer-and-blocking-dependencies-js-after">
    996992/* <![CDATA[ */
    997993scriptEventLog.push( "defer-dependent-of-defer-and-blocking-dependencies: after inline" )
     
    10141010                },
    10151011                'expected_markup' => <<<HTML
    1016 <script id="defer-with-async-dependent-js-before" type="text/javascript">
     1012<script id="defer-with-async-dependent-js-before">
    10171013/* <![CDATA[ */
    10181014scriptEventLog.push( "defer-with-async-dependent: before inline" )
     
    10201016/* ]]> */
    10211017</script>
    1022 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-with-async-dependent%3A+script' id='defer-with-async-dependent-js' data-wp-strategy='defer'></script>
    1023 <script id="defer-with-async-dependent-js-after" type="text/javascript">
     1018<script src='https://example.com/external.js?script_event_log=defer-with-async-dependent%3A+script' id='defer-with-async-dependent-js' data-wp-strategy='defer'></script>
     1019<script id="defer-with-async-dependent-js-after">
    10241020/* <![CDATA[ */
    10251021scriptEventLog.push( "defer-with-async-dependent: after inline" )
     
    10271023/* ]]> */
    10281024</script>
    1029 <script id="async-dependent-of-defer-js-before" type="text/javascript">
     1025<script id="async-dependent-of-defer-js-before">
    10301026/* <![CDATA[ */
    10311027scriptEventLog.push( "async-dependent-of-defer: before inline" )
     
    10331029/* ]]> */
    10341030</script>
    1035 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async-dependent-of-defer%3A+script' id='async-dependent-of-defer-js' data-wp-strategy='async'></script>
    1036 <script id="async-dependent-of-defer-js-after" type="text/javascript">
     1031<script src='https://example.com/external.js?script_event_log=async-dependent-of-defer%3A+script' id='async-dependent-of-defer-js' data-wp-strategy='async'></script>
     1032<script id="async-dependent-of-defer-js-after">
    10371033/* <![CDATA[ */
    10381034scriptEventLog.push( "async-dependent-of-defer: after inline" )
     
    10511047                },
    10521048                'expected_markup' => <<<HTML
    1053 <script id="defer-with-before-inline-js-before" type="text/javascript">
     1049<script id="defer-with-before-inline-js-before">
    10541050/* <![CDATA[ */
    10551051scriptEventLog.push( "defer-with-before-inline: before inline" )
     
    10571053/* ]]> */
    10581054</script>
    1059 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-with-before-inline%3A+script' id='defer-with-before-inline-js' defer='defer' data-wp-strategy='defer'></script>
     1055<script src='https://example.com/external.js?script_event_log=defer-with-before-inline%3A+script' id='defer-with-before-inline-js' defer='defer' data-wp-strategy='defer'></script>
    10601056HTML
    10611057                ,
     
    10691065                },
    10701066                'expected_markup' => <<<HTML
    1071 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-with-after-inline%3A+script' id='defer-with-after-inline-js' data-wp-strategy='defer'></script>
    1072 <script id="defer-with-after-inline-js-after" type="text/javascript">
     1067<script src='https://example.com/external.js?script_event_log=defer-with-after-inline%3A+script' id='defer-with-after-inline-js' data-wp-strategy='defer'></script>
     1068<script id="defer-with-after-inline-js-after">
    10731069/* <![CDATA[ */
    10741070scriptEventLog.push( "defer-with-after-inline: after inline" )
     
    10901086                },
    10911087                'expected_markup' => <<<HTML
    1092 <script type='text/javascript' src='http://$wp_tests_domain/wp-includes/js/jquery/jquery.js' id='jquery-core-js' defer='defer' data-wp-strategy='defer'></script>
    1093 <script type='text/javascript' src='http://$wp_tests_domain/wp-includes/js/jquery/jquery-migrate.js' id='jquery-migrate-js' defer='defer' data-wp-strategy='defer'></script>
    1094 <script type='text/javascript' src='https://example.com/theme-functions.js' id='theme-functions-js' defer='defer' data-wp-strategy='defer'></script>
     1088<script src='http://$wp_tests_domain/wp-includes/js/jquery/jquery.js' id='jquery-core-js' defer='defer' data-wp-strategy='defer'></script>
     1089<script src='http://$wp_tests_domain/wp-includes/js/jquery/jquery-migrate.js' id='jquery-migrate-js' defer='defer' data-wp-strategy='defer'></script>
     1090<script src='https://example.com/theme-functions.js' id='theme-functions-js' defer='defer' data-wp-strategy='defer'></script>
    10951091HTML
    10961092                ,
     
    11151111                },
    11161112                'expected_markup' => <<<HTML
    1117 <script type='text/javascript' src='https://example.com/external.js?script_event_log=inner-bundle-member-one%3A+script' id='inner-bundle-member-one-js' data-wp-strategy='defer'></script>
    1118 <script type='text/javascript' src='https://example.com/external.js?script_event_log=inner-bundle-member-two%3A+script' id='inner-bundle-member-two-js' data-wp-strategy='defer'></script>
    1119 <script type='text/javascript' src='https://example.com/external.js?script_event_log=outer-bundle-leaf-member%3A+script' id='outer-bundle-leaf-member-js'></script>
    1120 <script id="defer-dependent-of-nested-aliases-js-before" type="text/javascript">
     1113<script src='https://example.com/external.js?script_event_log=inner-bundle-member-one%3A+script' id='inner-bundle-member-one-js' data-wp-strategy='defer'></script>
     1114<script src='https://example.com/external.js?script_event_log=inner-bundle-member-two%3A+script' id='inner-bundle-member-two-js' data-wp-strategy='defer'></script>
     1115<script src='https://example.com/external.js?script_event_log=outer-bundle-leaf-member%3A+script' id='outer-bundle-leaf-member-js'></script>
     1116<script id="defer-dependent-of-nested-aliases-js-before">
    11211117/* <![CDATA[ */
    11221118scriptEventLog.push( "defer-dependent-of-nested-aliases: before inline" )
     
    11241120/* ]]> */
    11251121</script>
    1126 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependent-of-nested-aliases%3A+script' id='defer-dependent-of-nested-aliases-js' data-wp-strategy='defer'></script>
    1127 <script id="defer-dependent-of-nested-aliases-js-after" type="text/javascript">
     1122<script src='https://example.com/external.js?script_event_log=defer-dependent-of-nested-aliases%3A+script' id='defer-dependent-of-nested-aliases-js' data-wp-strategy='defer'></script>
     1123<script id="defer-dependent-of-nested-aliases-js-after">
    11281124/* <![CDATA[ */
    11291125scriptEventLog.push( "defer-dependent-of-nested-aliases: after inline" )
     
    11481144                },
    11491145                'expected_markup' => <<<HTML
    1150 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async1%3A+script' id='async1-js' defer='defer' data-wp-strategy='async'></script>
    1151 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async2%3A+script' id='async2-js' defer='defer' data-wp-strategy='async'></script>
    1152 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependent-of-async-aliases%3A+script' id='defer-dependent-of-async-aliases-js' defer='defer' data-wp-strategy='defer'></script>
     1146<script src='https://example.com/external.js?script_event_log=async1%3A+script' id='async1-js' defer='defer' data-wp-strategy='async'></script>
     1147<script src='https://example.com/external.js?script_event_log=async2%3A+script' id='async2-js' defer='defer' data-wp-strategy='async'></script>
     1148<script src='https://example.com/external.js?script_event_log=defer-dependent-of-async-aliases%3A+script' id='defer-dependent-of-async-aliases-js' defer='defer' data-wp-strategy='defer'></script>
    11531149HTML
    11541150                ,
     
    12811277        // Note: All of these scripts have fetchpriority=high because the leaf dependent script has that fetch priority.
    12821278        $output    = get_echo( 'wp_print_scripts' );
    1283         $expected  = "<script type='text/javascript' src='/main-script-d4.js'        id='main-script-d4-js'        defer='defer' data-wp-strategy='defer' fetchpriority='high' data-wp-fetchpriority='auto'></script>\n";
    1284         $expected .= "<script type='text/javascript' src='/dependent-script-d4-1.js' id='dependent-script-d4-1-js' defer='defer' data-wp-strategy='defer' fetchpriority='high' data-wp-fetchpriority='auto'></script>\n";
    1285         $expected .= "<script type='text/javascript' src='/dependent-script-d4-2.js' id='dependent-script-d4-2-js' defer='defer' data-wp-strategy='async' fetchpriority='high' data-wp-fetchpriority='low'></script>\n";
    1286         $expected .= "<script type='text/javascript' src='/dependent-script-d4-3.js' id='dependent-script-d4-3-js' defer='defer' data-wp-strategy='defer' fetchpriority='high'></script>\n";
     1279        $expected  = "<script src='/main-script-d4.js'        id='main-script-d4-js'        defer='defer' data-wp-strategy='defer' fetchpriority='high' data-wp-fetchpriority='auto'></script>\n";
     1280        $expected .= "<script src='/dependent-script-d4-1.js' id='dependent-script-d4-1-js' defer='defer' data-wp-strategy='defer' fetchpriority='high' data-wp-fetchpriority='auto'></script>\n";
     1281        $expected .= "<script src='/dependent-script-d4-2.js' id='dependent-script-d4-2-js' defer='defer' data-wp-strategy='async' fetchpriority='high' data-wp-fetchpriority='low'></script>\n";
     1282        $expected .= "<script src='/dependent-script-d4-3.js' id='dependent-script-d4-3-js' defer='defer' data-wp-strategy='defer' fetchpriority='high'></script>\n";
    12871283
    12881284        $this->assertEqualHTML( $expected, $output, '<body>', 'Scripts registered as defer but that have dependents that are async are expected to have said dependents deferred.' );
     
    14001396            'enqueue_bajo' => array(
    14011397                'enqueues' => array( 'bajo' ),
    1402                 'expected' => '<script fetchpriority="low" id="bajo-js" src="/bajo.js" type="text/javascript"></script>',
     1398                'expected' => '<script fetchpriority="low" id="bajo-js" src="/bajo.js"></script>',
    14031399            ),
    14041400            'enqueue_auto' => array(
    14051401                'enqueues' => array( 'auto' ),
    14061402                'expected' => '
    1407                     <script type="text/javascript" src="/bajo.js" id="bajo-js" data-wp-fetchpriority="low"></script>
    1408                     <script type="text/javascript" src="/auto.js" id="auto-js"></script>
     1403                    <script src="/bajo.js" id="bajo-js" data-wp-fetchpriority="low"></script>
     1404                    <script src="/auto.js" id="auto-js"></script>
    14091405                ',
    14101406            ),
     
    14121408                'enqueues' => array( 'alto' ),
    14131409                'expected' => '
    1414                     <script type="text/javascript" src="/bajo.js" id="bajo-js" fetchpriority="high" data-wp-fetchpriority="low"></script>
    1415                     <script type="text/javascript" src="/auto.js" id="auto-js" fetchpriority="high" data-wp-fetchpriority="auto"></script>
    1416                     <script type="text/javascript" src="/alto.js" id="alto-js" fetchpriority="high"></script>
     1410                    <script src="/bajo.js" id="bajo-js" fetchpriority="high" data-wp-fetchpriority="low"></script>
     1411                    <script src="/auto.js" id="auto-js" fetchpriority="high" data-wp-fetchpriority="auto"></script>
     1412                    <script src="/alto.js" id="alto-js" fetchpriority="high"></script>
    14171413                ',
    14181414            ),
     
    14701466        $actual   = get_echo( 'wp_print_scripts' );
    14711467        $expected = '
    1472             <script type="text/javascript" src="/z.js" id="z-js" fetchpriority="high" data-wp-fetchpriority="auto"></script>
    1473             <script type="text/javascript" src="/d.js" id="d-js" fetchpriority="high"></script>
    1474             <script type="text/javascript" src="/e.js" id="e-js"></script>
    1475             <script type="text/javascript" src="/c.js" id="c-js"></script>
    1476             <script type="text/javascript" src="/b.js" id="b-js"></script>
    1477             <script type="text/javascript" src="/a.js" id="a-js" fetchpriority="low"></script>
    1478             <script type="text/javascript" src="/y.js" id="y-js" fetchpriority="high" data-wp-fetchpriority="auto"></script>
    1479             <script type="text/javascript" src="/x.js" id="x-js" fetchpriority="high"></script>
     1468            <script src="/z.js" id="z-js" fetchpriority="high" data-wp-fetchpriority="auto"></script>
     1469            <script src="/d.js" id="d-js" fetchpriority="high"></script>
     1470            <script src="/e.js" id="e-js"></script>
     1471            <script src="/c.js" id="c-js"></script>
     1472            <script src="/b.js" id="b-js"></script>
     1473            <script src="/a.js" id="a-js" fetchpriority="low"></script>
     1474            <script src="/y.js" id="y-js" fetchpriority="high" data-wp-fetchpriority="auto"></script>
     1475            <script src="/x.js" id="x-js" fetchpriority="high"></script>
    14801476        ';
    14811477        $this->assertEqualHTML( $expected, $actual, '<body>', "Snapshot:\n$actual" );
     
    15341530        $actual = $this->normalize_markup_for_snapshot( get_echo( array( $wp_scripts, 'print_scripts' ) ) );
    15351531        $this->assertEqualHTML(
    1536             '<script type="text/javascript" src="/wp-includes/js/comment-reply.js" id="comment-reply-js" async="async" data-wp-strategy="async" fetchpriority="low"></script>',
     1532            '<script src="/wp-includes/js/comment-reply.js" id="comment-reply-js" async="async" data-wp-strategy="async" fetchpriority="low"></script>',
    15371533            $actual,
    15381534            '<body>',
     
    15711567        $this->assertEqualHTML(
    15721568            sprintf(
    1573                 '<script type="text/javascript" src="%s" id="comment-reply-js" async="async" data-wp-strategy="async" fetchpriority="low"></script>',
     1569                '<script src="%s" id="comment-reply-js" async="async" data-wp-strategy="async" fetchpriority="low"></script>',
    15741570                includes_url( 'js/comment-reply.js' )
    15751571            ),
     
    16111607        wp_enqueue_script( 'dependent-script-d4-3', '/dependent-script-d4-3.js', array( 'dependent-script-d4-2' ), null, array( 'strategy' => 'defer' ) );
    16121608        $output   = get_echo( 'wp_print_scripts' );
    1613         $expected = str_replace( "'", '"', "<script type='text/javascript' src='/main-script-d4.js' id='main-script-d4-js' data-wp-strategy='defer'></script>\n" );
     1609        $expected = str_replace( "'", '"', "<script src='/main-script-d4.js' id='main-script-d4-js' data-wp-strategy='defer'></script>\n" );
    16141610        $this->assertStringContainsString( $expected, $output, 'Scripts registered as defer but that have all dependents with no strategy, should become blocking (no strategy).' );
    16151611    }
     
    16281624        wp_enqueue_script( 'main-script-b1', '/main-script-b1.js', array(), null );
    16291625        $output   = get_echo( 'wp_print_scripts' );
    1630         $expected = "<script type='text/javascript' src='/main-script-b1.js' id='main-script-b1-js'></script>\n";
     1626        $expected = "<script src='/main-script-b1.js' id='main-script-b1-js'></script>\n";
    16311627        $this->assertEqualHTML( $expected, $output, '<body>', 'Scripts registered with a "blocking" strategy, and who have no dependencies, should have no loading strategy attributes printed.' );
    16321628
     
    16341630        wp_enqueue_script( 'main-script-b2', '/main-script-b2.js', array(), null, array() );
    16351631        $output   = get_echo( 'wp_print_scripts' );
    1636         $expected = "<script type='text/javascript' src='/main-script-b2.js' id='main-script-b2-js'></script>\n";
     1632        $expected = "<script src='/main-script-b2.js' id='main-script-b2-js'></script>\n";
    16371633        $this->assertEqualHTML( $expected, $output, '<body>', 'Scripts registered with no strategy assigned, and who have no dependencies, should have no loading strategy attributes printed.' );
    16381634    }
     
    16911687        $actual_footer = get_echo( 'wp_print_scripts' );
    16921688
    1693         $expected_header  = "<script type='text/javascript' src='/header-old.js' id='header-old-js'></script>\n";
    1694         $expected_header .= "<script type='text/javascript' src='/header-new.js' id='header-new-js'></script>\n";
    1695         $expected_header .= "<script type='text/javascript' src='/enqueue-header-old.js' id='enqueue-header-old-js'></script>\n";
    1696         $expected_header .= "<script type='text/javascript' src='/enqueue-header-new.js' id='enqueue-header-new-js'></script>\n";
     1689        $expected_header  = "<script src='/header-old.js' id='header-old-js'></script>\n";
     1690        $expected_header .= "<script src='/header-new.js' id='header-new-js'></script>\n";
     1691        $expected_header .= "<script src='/enqueue-header-old.js' id='enqueue-header-old-js'></script>\n";
     1692        $expected_header .= "<script src='/enqueue-header-new.js' id='enqueue-header-new-js'></script>\n";
    16971693
    16981694        $this->assertEqualHTML( $expected_header, $actual_header, '<body>', 'Scripts registered/enqueued using the older $in_footer parameter or the newer $args parameter should have the same outcome.' );
     
    17181714        $actual_footer = get_echo( 'wp_print_scripts' );
    17191715
    1720         $expected_footer  = "<script type='text/javascript' src='/footer-old.js' id='footer-old-js'></script>\n";
    1721         $expected_footer .= "<script type='text/javascript' src='/footer-new.js' id='footer-new-js'></script>\n";
    1722         $expected_footer .= "<script type='text/javascript' src='/enqueue-footer-old.js' id='enqueue-footer-old-js'></script>\n";
    1723         $expected_footer .= "<script type='text/javascript' src='/enqueue-footer-new.js' id='enqueue-footer-new-js'></script>\n";
     1716        $expected_footer  = "<script src='/footer-old.js' id='footer-old-js'></script>\n";
     1717        $expected_footer .= "<script src='/footer-new.js' id='footer-new-js'></script>\n";
     1718        $expected_footer .= "<script src='/enqueue-footer-old.js' id='enqueue-footer-old-js'></script>\n";
     1719        $expected_footer .= "<script src='/enqueue-footer-new.js' id='enqueue-footer-new-js'></script>\n";
    17241720
    17251721        $this->assertEmpty( $actual_header, 'Expected header to be empty since all scripts targeted footer.' );
     
    18441840
    18451841        $this->assertEqualHTML(
    1846             "<script type='text/javascript' src='/defaults.js' id='invalid-strategy-js'></script>\n",
     1842            "<script src='/defaults.js' id='invalid-strategy-js'></script>\n",
    18471843            get_echo( 'wp_print_scripts' )
    18481844        );
     
    18691865
    18701866        $this->assertEqualHTML(
    1871             "<script type='text/javascript' src='/defaults.js' id='invalid-strategy-js'></script>\n",
     1867            "<script src='/defaults.js' id='invalid-strategy-js'></script>\n",
    18721868            get_echo( 'wp_print_scripts' )
    18731869        );
     
    18901886
    18911887        $this->assertEqualHTML(
    1892             "<script type='text/javascript' src='/defaults.js' id='invalid-strategy-js'></script>\n",
     1888            "<script src='/defaults.js' id='invalid-strategy-js'></script>\n",
    18931889            get_echo( 'wp_print_scripts' )
    18941890        );
     
    19201916        $print_scripts = get_echo( '_print_scripts' );
    19211917
    1922         $expected  = "<script type='text/javascript' src='/wp-admin/load-scripts.php?c=0&amp;load%5Bchunk_0%5D=one-concat-dep,two-concat-dep,three-concat-dep&amp;ver={$wp_version}'></script>\n";
    1923         $expected .= "<script type='text/javascript' src='/main-script.js' id='main-defer-script-js' defer='defer' data-wp-strategy='defer'></script>\n";
     1918        $expected  = "<script src='/wp-admin/load-scripts.php?c=0&amp;load%5Bchunk_0%5D=one-concat-dep,two-concat-dep,three-concat-dep&amp;ver={$wp_version}'></script>\n";
     1919        $expected .= "<script src='/main-script.js' id='main-defer-script-js' defer='defer' data-wp-strategy='defer'></script>\n";
    19241920
    19251921        $this->assertEqualHTML( $expected, $print_scripts, '<body>', 'Scripts are being incorrectly concatenated when a main script is registered with a "defer" loading strategy. Deferred scripts should not be part of the script concat loading query.' );
     
    19511947        $print_scripts = get_echo( '_print_scripts' );
    19521948
    1953         $expected  = "<script type='text/javascript' src='/wp-admin/load-scripts.php?c=0&amp;load%5Bchunk_0%5D=one-concat-dep-1,two-concat-dep-1,three-concat-dep-1&amp;ver={$wp_version}'></script>\n";
    1954         $expected .= "<script type='text/javascript' src='/main-script.js' id='main-async-script-1-js' async='async' data-wp-strategy='async'></script>\n";
     1949        $expected  = "<script src='/wp-admin/load-scripts.php?c=0&amp;load%5Bchunk_0%5D=one-concat-dep-1,two-concat-dep-1,three-concat-dep-1&amp;ver={$wp_version}'></script>\n";
     1950        $expected .= "<script src='/main-script.js' id='main-async-script-1-js' async='async' data-wp-strategy='async'></script>\n";
    19551951
    19561952        $this->assertEqualHTML( $expected, $print_scripts, '<body>', 'Scripts are being incorrectly concatenated when a main script is registered with an "async" loading strategy. Async scripts should not be part of the script concat loading query.' );
     
    19861982        $print_scripts = get_echo( '_print_scripts' );
    19871983
    1988         $expected  = "<script type='text/javascript' src='/wp-admin/load-scripts.php?c=0&amp;load%5Bchunk_0%5D=one-concat-dep-2,two-concat-dep-2,three-concat-dep-2,four-concat-dep-2,five-concat-dep-2,six-concat-dep-2&amp;ver={$wp_version}'></script>\n";
    1989         $expected .= "<script type='text/javascript' src='/main-script.js' id='deferred-script-2-js' defer='defer' data-wp-strategy='defer'></script>\n";
     1984        $expected  = "<script src='/wp-admin/load-scripts.php?c=0&amp;load%5Bchunk_0%5D=one-concat-dep-2,two-concat-dep-2,three-concat-dep-2,four-concat-dep-2,five-concat-dep-2,six-concat-dep-2&amp;ver={$wp_version}'></script>\n";
     1985        $expected .= "<script src='/main-script.js' id='deferred-script-2-js' defer='defer' data-wp-strategy='defer'></script>\n";
    19901986
    19911987        $this->assertEqualHTML( $expected, $print_scripts, '<body>', 'Scripts are being incorrectly concatenated when a main script is registered as deferred after other blocking scripts are registered. Deferred scripts should not be part of the script concat loader query string. ' );
     
    20262022        // Try with an HTTP reference.
    20272023        wp_enqueue_script( 'jquery-http', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js' );
    2028         $expected .= "<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js?ver={$wp_version}' id='jquery-http-js'></script>\n";
     2024        $expected .= "<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js?ver={$wp_version}' id='jquery-http-js'></script>\n";
    20292025
    20302026        // Try with an HTTPS reference.
    20312027        wp_enqueue_script( 'jquery-https', 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js' );
    2032         $expected .= "<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js?ver={$wp_version}' id='jquery-https-js'></script>\n";
     2028        $expected .= "<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js?ver={$wp_version}' id='jquery-https-js'></script>\n";
    20332029
    20342030        // Try with an automatic protocol reference (//).
    20352031        wp_enqueue_script( 'jquery-doubleslash', '//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js' );
    2036         $expected .= "<script type='text/javascript' src='//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js?ver={$wp_version}' id='jquery-doubleslash-js'></script>\n";
     2032        $expected .= "<script src='//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js?ver={$wp_version}' id='jquery-doubleslash-js'></script>\n";
    20372033
    20382034        // Try with a local resource and an automatic protocol reference (//).
    20392035        $url = '//my_plugin/script.js';
    20402036        wp_enqueue_script( 'plugin-script', $url );
    2041         $expected .= "<script type='text/javascript' src='$url?ver={$wp_version}' id='plugin-script-js'></script>\n";
     2037        $expected .= "<script src='$url?ver={$wp_version}' id='plugin-script-js'></script>\n";
    20422038
    20432039        // Try with a bad protocol.
    20442040        wp_enqueue_script( 'jquery-ftp', 'ftp://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js' );
    2045         $expected .= "<script type='text/javascript' src='{$wp_scripts->base_url}ftp://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js?ver={$wp_version}' id='jquery-ftp-js'></script>\n";
     2041        $expected .= "<script src='{$wp_scripts->base_url}ftp://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js?ver={$wp_version}' id='jquery-ftp-js'></script>\n";
    20462042
    20472043        // Go!
     
    20712067        $print_scripts = get_echo( '_print_scripts' );
    20722068
    2073         $expected = "<script type='text/javascript' src='/wp-admin/load-scripts.php?c=0&amp;load%5Bchunk_0%5D=one,two,three&amp;ver={$wp_version}'></script>\n";
     2069        $expected = "<script src='/wp-admin/load-scripts.php?c=0&amp;load%5Bchunk_0%5D=one,two,three&amp;ver={$wp_version}'></script>\n";
    20742070
    20752071        $this->assertSame( $expected, $print_scripts );
     
    20852081        wp_enqueue_script( 'test-only-data', 'example.com', array(), null );
    20862082        wp_script_add_data( 'test-only-data', 'data', 'testing' );
    2087         $expected  = "<script type='text/javascript' id='test-only-data-js-extra'>\n/* <![CDATA[ */\ntesting\n//# sourceURL=test-only-data-js-extra\n/* ]]> */\n</script>\n";
    2088         $expected .= "<script type='text/javascript' src='http://example.com' id='test-only-data-js'></script>\n";
     2083        $expected  = "<script id='test-only-data-js-extra'>\n/* <![CDATA[ */\ntesting\n//# sourceURL=test-only-data-js-extra\n/* ]]> */\n</script>\n";
     2084        $expected .= "<script src='http://example.com' id='test-only-data-js'></script>\n";
    20892085
    20902086        // Go!
     
    21212117        wp_enqueue_script( 'test-invalid', 'example.com', array(), null );
    21222118        wp_script_add_data( 'test-invalid', 'invalid', 'testing' );
    2123         $expected = "<script type='text/javascript' src='http://example.com' id='test-invalid-js'></script>\n";
     2119        $expected = "<script src='http://example.com' id='test-invalid-js'></script>\n";
    21242120
    21252121        // Go!
     
    21442140     */
    21452141    public function test_wp_register_script_with_handle_without_source() {
    2146         $expected  = "<script type='text/javascript' src='http://example.com?ver=1' id='handle-one-js'></script>\n";
    2147         $expected .= "<script type='text/javascript' src='http://example.com?ver=2' id='handle-two-js'></script>\n";
     2142        $expected  = "<script src='http://example.com?ver=1' id='handle-one-js'></script>\n";
     2143        $expected .= "<script src='http://example.com?ver=2' id='handle-two-js'></script>\n";
    21482144
    21492145        wp_register_script( 'handle-one', 'http://example.com', array(), 1 );
     
    22372233        $footer = get_echo( 'wp_print_footer_scripts' );
    22382234
    2239         $expected_header  = "<script type='text/javascript' src='/child-footer.js' id='child-footer-js'></script>\n";
    2240         $expected_header .= "<script type='text/javascript' src='/child-head.js' id='child-head-js'></script>\n";
    2241         $expected_footer  = "<script type='text/javascript' src='/parent.js' id='parent-js'></script>\n";
     2235        $expected_header  = "<script src='/child-footer.js' id='child-footer-js'></script>\n";
     2236        $expected_header .= "<script src='/child-head.js' id='child-head-js'></script>\n";
     2237        $expected_footer  = "<script src='/parent.js' id='parent-js'></script>\n";
    22422238
    22432239        $this->assertEqualHTML( $expected_header, $header, '<body>', 'Expected same header markup.' );
     
    22582254        $footer = get_echo( 'wp_print_footer_scripts' );
    22592255
    2260         $expected_header  = "<script type='text/javascript' src='/child-head.js' id='child-head-js'></script>\n";
    2261         $expected_footer  = "<script type='text/javascript' src='/child-footer.js' id='child-footer-js'></script>\n";
    2262         $expected_footer .= "<script type='text/javascript' src='/parent.js' id='parent-js'></script>\n";
     2256        $expected_header  = "<script src='/child-head.js' id='child-head-js'></script>\n";
     2257        $expected_footer  = "<script src='/child-footer.js' id='child-footer-js'></script>\n";
     2258        $expected_footer .= "<script src='/parent.js' id='parent-js'></script>\n";
    22632259
    22642260        $this->assertEqualHTML( $expected_header, $header, '<body>', 'Expected same header markup.' );
     
    22842280        $footer = get_echo( 'wp_print_footer_scripts' );
    22852281
    2286         $expected_header  = "<script type='text/javascript' src='/child-head.js' id='child-head-js'></script>\n";
    2287         $expected_header .= "<script type='text/javascript' src='/grandchild-head.js' id='grandchild-head-js'></script>\n";
    2288         $expected_header .= "<script type='text/javascript' src='/child2-head.js' id='child2-head-js'></script>\n";
    2289         $expected_header .= "<script type='text/javascript' src='/parent-header.js' id='parent-header-js'></script>\n";
    2290 
    2291         $expected_footer  = "<script type='text/javascript' src='/child-footer.js' id='child-footer-js'></script>\n";
    2292         $expected_footer .= "<script type='text/javascript' src='/child2-footer.js' id='child2-footer-js'></script>\n";
    2293         $expected_footer .= "<script type='text/javascript' src='/parent-footer.js' id='parent-footer-js'></script>\n";
     2282        $expected_header  = "<script src='/child-head.js' id='child-head-js'></script>\n";
     2283        $expected_header .= "<script src='/grandchild-head.js' id='grandchild-head-js'></script>\n";
     2284        $expected_header .= "<script src='/child2-head.js' id='child2-head-js'></script>\n";
     2285        $expected_header .= "<script src='/parent-header.js' id='parent-header-js'></script>\n";
     2286
     2287        $expected_footer  = "<script src='/child-footer.js' id='child-footer-js'></script>\n";
     2288        $expected_footer .= "<script src='/child2-footer.js' id='child2-footer-js'></script>\n";
     2289        $expected_footer .= "<script src='/parent-footer.js' id='parent-footer-js'></script>\n";
    22942290
    22952291        $this->assertEqualHTML( $expected_header, $header, '<body>', 'Expected same header markup.' );
     
    23222318
    23232319        $expected  = <<<HTML
    2324 <script type='text/javascript' id='test-example-js-before'>
     2320<script id='test-example-js-before'>
    23252321/* <![CDATA[ */
    23262322console.log("before");
     
    23292325</script>
    23302326HTML;
    2331         $expected .= "<script type='text/javascript' src='http://example.com' id='test-example-js'></script>\n";
     2327        $expected .= "<script src='http://example.com' id='test-example-js'></script>\n";
    23322328
    23332329        $this->assertEqualHTML( $expected, get_echo( 'wp_print_scripts' ) );
     
    23412337        wp_add_inline_script( 'test-example', 'console.log("after");' );
    23422338
    2343         $expected  = "<script type='text/javascript' src='http://example.com' id='test-example-js'></script>\n";
     2339        $expected  = "<script src='http://example.com' id='test-example-js'></script>\n";
    23442340        $expected .= <<<HTML
    2345 <script type='text/javascript' id='test-example-js-after'>
     2341<script id='test-example-js-after'>
    23462342/* <![CDATA[ */
    23472343console.log("after");
     
    23622358        wp_add_inline_script( 'test-example', 'console.log("after");' );
    23632359
    2364         $expected  = "<script type='text/javascript' id='test-example-js-before'>\n/* <![CDATA[ */\nconsole.log(\"before\");\n//# sourceURL=test-example-js-before\n/* ]]> */\n</script>\n";
    2365         $expected .= "<script type='text/javascript' src='http://example.com' id='test-example-js'></script>\n";
    2366         $expected .= "<script type='text/javascript' id='test-example-js-after'>\n/* <![CDATA[ */\nconsole.log(\"after\");\n//# sourceURL=test-example-js-after\n/* ]]> */\n</script>\n";
     2360        $expected  = "<script id='test-example-js-before'>\n/* <![CDATA[ */\nconsole.log(\"before\");\n//# sourceURL=test-example-js-before\n/* ]]> */\n</script>\n";
     2361        $expected .= "<script src='http://example.com' id='test-example-js'></script>\n";
     2362        $expected .= "<script id='test-example-js-after'>\n/* <![CDATA[ */\nconsole.log(\"after\");\n//# sourceURL=test-example-js-after\n/* ]]> */\n</script>\n";
    23672363
    23682364        $this->assertEqualHTML( $expected, get_echo( 'wp_print_scripts' ) );
     
    23772373        wp_add_inline_script( 'test-example', 'console.log("before");', 'before' );
    23782374
    2379         $expected = "<script type='text/javascript' id='test-example-js-before'>\n/* <![CDATA[ */\nconsole.log(\"before\");\n//# sourceURL=test-example-js-before\n/* ]]> */\n</script>\n";
     2375        $expected = "<script id='test-example-js-before'>\n/* <![CDATA[ */\nconsole.log(\"before\");\n//# sourceURL=test-example-js-before\n/* ]]> */\n</script>\n";
    23802376
    23812377        $this->assertEqualHTML( $expected, get_echo( 'wp_print_scripts' ) );
     
    23902386        wp_add_inline_script( 'test-example', 'console.log("after");' );
    23912387
    2392         $expected = "<script type='text/javascript' id='test-example-js-after'>\n/* <![CDATA[ */\nconsole.log(\"after\");\n//# sourceURL=test-example-js-after\n/* ]]> */\n</script>\n";
     2388        $expected = "<script id='test-example-js-after'>\n/* <![CDATA[ */\nconsole.log(\"after\");\n//# sourceURL=test-example-js-after\n/* ]]> */\n</script>\n";
    23932389
    23942390        $this->assertEqualHTML( $expected, get_echo( 'wp_print_scripts' ) );
     
    24042400        wp_add_inline_script( 'test-example', 'console.log("after");' );
    24052401
    2406         $expected  = "<script type='text/javascript' id='test-example-js-before'>\n/* <![CDATA[ */\nconsole.log(\"before\");\n//# sourceURL=test-example-js-before\n/* ]]> */\n</script>\n";
    2407         $expected .= "<script type='text/javascript' id='test-example-js-after'>\n/* <![CDATA[ */\nconsole.log(\"after\");\n//# sourceURL=test-example-js-after\n/* ]]> */\n</script>\n";
     2402        $expected  = "<script id='test-example-js-before'>\n/* <![CDATA[ */\nconsole.log(\"before\");\n//# sourceURL=test-example-js-before\n/* ]]> */\n</script>\n";
     2403        $expected .= "<script id='test-example-js-after'>\n/* <![CDATA[ */\nconsole.log(\"after\");\n//# sourceURL=test-example-js-after\n/* ]]> */\n</script>\n";
    24082404
    24092405        $this->assertEqualHTML( $expected, get_echo( 'wp_print_scripts' ) );
     
    24202416        wp_add_inline_script( 'test-example', 'console.log("after");' );
    24212417
    2422         $expected  = "<script type='text/javascript' id='test-example-js-before'>\n/* <![CDATA[ */\nconsole.log(\"before\");\nconsole.log(\"before\");\n//# sourceURL=test-example-js-before\n/* ]]> */\n</script>\n";
    2423         $expected .= "<script type='text/javascript' src='http://example.com' id='test-example-js'></script>\n";
    2424         $expected .= "<script type='text/javascript' id='test-example-js-after'>\n/* <![CDATA[ */\nconsole.log(\"after\");\nconsole.log(\"after\");\n//# sourceURL=test-example-js-after\n/* ]]> */\n</script>\n";
     2418        $expected  = "<script id='test-example-js-before'>\n/* <![CDATA[ */\nconsole.log(\"before\");\nconsole.log(\"before\");\n//# sourceURL=test-example-js-before\n/* ]]> */\n</script>\n";
     2419        $expected .= "<script src='http://example.com' id='test-example-js'></script>\n";
     2420        $expected .= "<script id='test-example-js-after'>\n/* <![CDATA[ */\nconsole.log(\"after\");\nconsole.log(\"after\");\n//# sourceURL=test-example-js-after\n/* ]]> */\n</script>\n";
    24252421
    24262422        $this->assertEqualHTML( $expected, get_echo( 'wp_print_scripts' ) );
     
    24362432        wp_add_inline_script( 'test-example', 'console.log("after");' );
    24372433
    2438         $expected  = "<script type='text/javascript' id='test-example-js-extra'>\n/* <![CDATA[ */\nvar testExample = {\"foo\":\"bar\"};\n//# sourceURL=test-example-js-extra\n/* ]]> */\n</script>\n";
    2439         $expected .= "<script type='text/javascript' id='test-example-js-before'>\n/* <![CDATA[ */\nconsole.log(\"before\");\n//# sourceURL=test-example-js-before\n/* ]]> */\n</script>\n";
    2440         $expected .= "<script type='text/javascript' src='http://example.com' id='test-example-js'></script>\n";
    2441         $expected .= "<script type='text/javascript' id='test-example-js-after'>\n/* <![CDATA[ */\nconsole.log(\"after\");\n//# sourceURL=test-example-js-after\n/* ]]> */\n</script>\n";
     2434        $expected  = "<script id='test-example-js-extra'>\n/* <![CDATA[ */\nvar testExample = {\"foo\":\"bar\"};\n//# sourceURL=test-example-js-extra\n/* ]]> */\n</script>\n";
     2435        $expected .= "<script id='test-example-js-before'>\n/* <![CDATA[ */\nconsole.log(\"before\");\n//# sourceURL=test-example-js-before\n/* ]]> */\n</script>\n";
     2436        $expected .= "<script src='http://example.com' id='test-example-js'></script>\n";
     2437        $expected .= "<script id='test-example-js-after'>\n/* <![CDATA[ */\nconsole.log(\"after\");\n//# sourceURL=test-example-js-after\n/* ]]> */\n</script>\n";
    24422438
    24432439        $this->assertEqualHTML( $expected, get_echo( 'wp_print_scripts' ) );
     
    24602456        wp_add_inline_script( 'two', 'console.log("before two");', 'before' );
    24612457
    2462         $expected  = "<script type='text/javascript' id='one-js-before'>\n/* <![CDATA[ */\nconsole.log(\"before one\");\n//# sourceURL=one-js-before\n/* ]]> */\n</script>\n";
    2463         $expected .= "<script type='text/javascript' src='{$this->default_scripts_dir}one.js?ver={$wp_version}' id='one-js'></script>\n";
    2464         $expected .= "<script type='text/javascript' id='two-js-before'>\n/* <![CDATA[ */\nconsole.log(\"before two\");\n//# sourceURL=two-js-before\n/* ]]> */\n</script>\n";
    2465         $expected .= "<script type='text/javascript' src='{$this->default_scripts_dir}two.js?ver={$wp_version}' id='two-js'></script>\n";
    2466         $expected .= "<script type='text/javascript' src='{$this->default_scripts_dir}three.js?ver={$wp_version}' id='three-js'></script>\n";
     2458        $expected  = "<script id='one-js-before'>\n/* <![CDATA[ */\nconsole.log(\"before one\");\n//# sourceURL=one-js-before\n/* ]]> */\n</script>\n";
     2459        $expected .= "<script src='{$this->default_scripts_dir}one.js?ver={$wp_version}' id='one-js'></script>\n";
     2460        $expected .= "<script id='two-js-before'>\n/* <![CDATA[ */\nconsole.log(\"before two\");\n//# sourceURL=two-js-before\n/* ]]> */\n</script>\n";
     2461        $expected .= "<script src='{$this->default_scripts_dir}two.js?ver={$wp_version}' id='two-js'></script>\n";
     2462        $expected .= "<script src='{$this->default_scripts_dir}three.js?ver={$wp_version}' id='three-js'></script>\n";
    24672463
    24682464        $this->assertEqualHTML( $expected, get_echo( 'wp_print_scripts' ) );
     
    24842480        wp_add_inline_script( 'one', 'console.log("before one");', 'before' );
    24852481
    2486         $expected  = "<script type='text/javascript' id='one-js-before'>\n/* <![CDATA[ */\nconsole.log(\"before one\");\n//# sourceURL=one-js-before\n/* ]]> */\n</script>\n";
    2487         $expected .= "<script type='text/javascript' src='{$this->default_scripts_dir}one.js?ver={$wp_version}' id='one-js'></script>\n";
    2488         $expected .= "<script type='text/javascript' src='{$this->default_scripts_dir}two.js?ver={$wp_version}' id='two-js'></script>\n";
    2489         $expected .= "<script type='text/javascript' src='{$this->default_scripts_dir}three.js?ver={$wp_version}' id='three-js'></script>\n";
     2482        $expected  = "<script id='one-js-before'>\n/* <![CDATA[ */\nconsole.log(\"before one\");\n//# sourceURL=one-js-before\n/* ]]> */\n</script>\n";
     2483        $expected .= "<script src='{$this->default_scripts_dir}one.js?ver={$wp_version}' id='one-js'></script>\n";
     2484        $expected .= "<script src='{$this->default_scripts_dir}two.js?ver={$wp_version}' id='two-js'></script>\n";
     2485        $expected .= "<script src='{$this->default_scripts_dir}three.js?ver={$wp_version}' id='three-js'></script>\n";
    24902486
    24912487        $this->assertEqualHTML( $expected, get_echo( 'wp_print_scripts' ) );
     
    25092505        wp_add_inline_script( 'three', 'console.log("after three");' );
    25102506
    2511         $expected  = "<script type='text/javascript' src='/wp-admin/load-scripts.php?c=0&amp;load%5Bchunk_0%5D=one&amp;ver={$wp_version}'></script>\n";
    2512         $expected .= "<script type='text/javascript' src='{$this->default_scripts_dir}two.js?ver={$wp_version}' id='two-js'></script>\n";
    2513         $expected .= "<script type='text/javascript' id='two-js-after'>\n/* <![CDATA[ */\nconsole.log(\"after two\");\n//# sourceURL=two-js-after\n/* ]]> */\n</script>\n";
    2514         $expected .= "<script type='text/javascript' src='{$this->default_scripts_dir}three.js?ver={$wp_version}' id='three-js'></script>\n";
    2515         $expected .= "<script type='text/javascript' id='three-js-after'>\n/* <![CDATA[ */\nconsole.log(\"after three\");\n//# sourceURL=three-js-after\n/* ]]> */\n</script>\n";
    2516         $expected .= "<script type='text/javascript' src='{$this->default_scripts_dir}four.js?ver={$wp_version}' id='four-js'></script>\n";
     2507        $expected  = "<script src='/wp-admin/load-scripts.php?c=0&amp;load%5Bchunk_0%5D=one&amp;ver={$wp_version}'></script>\n";
     2508        $expected .= "<script src='{$this->default_scripts_dir}two.js?ver={$wp_version}' id='two-js'></script>\n";
     2509        $expected .= "<script id='two-js-after'>\n/* <![CDATA[ */\nconsole.log(\"after two\");\n//# sourceURL=two-js-after\n/* ]]> */\n</script>\n";
     2510        $expected .= "<script src='{$this->default_scripts_dir}three.js?ver={$wp_version}' id='three-js'></script>\n";
     2511        $expected .= "<script id='three-js-after'>\n/* <![CDATA[ */\nconsole.log(\"after three\");\n//# sourceURL=three-js-after\n/* ]]> */\n</script>\n";
     2512        $expected .= "<script src='{$this->default_scripts_dir}four.js?ver={$wp_version}' id='four-js'></script>\n";
    25172513
    25182514        $this->assertEqualHTML( $expected, get_echo( 'wp_print_scripts' ) );
     
    25572553        $wp_scripts->do_concat = true;
    25582554
    2559         $expected  = "<script type='text/javascript' src='/wp-admin/load-scripts.php?c=0&amp;load%5Bchunk_0%5D=jquery-core,jquery-migrate&amp;ver={$wp_version}'></script>\n";
    2560         $expected .= "<script type='text/javascript' src='http://example.com' id='test-example-js'></script>\n";
    2561         $expected .= "<script type='text/javascript' id='test-example-js-after'>\n/* <![CDATA[ */\nconsole.log(\"after\");\n//# sourceURL=test-example-js-after\n/* ]]> */\n</script>\n";
     2555        $expected  = "<script src='/wp-admin/load-scripts.php?c=0&amp;load%5Bchunk_0%5D=jquery-core,jquery-migrate&amp;ver={$wp_version}'></script>\n";
     2556        $expected .= "<script src='http://example.com' id='test-example-js'></script>\n";
     2557        $expected .= "<script id='test-example-js-after'>\n/* <![CDATA[ */\nconsole.log(\"after\");\n//# sourceURL=test-example-js-after\n/* ]]> */\n</script>\n";
    25622558
    25632559        wp_enqueue_script( 'test-example', 'http://example.com', array( 'jquery' ), null );
     
    26062602        $wp_scripts->do_concat = true;
    26072603
    2608         $expected  = "<script type='text/javascript' src='/wp-admin/load-scripts.php?c=0&amp;load%5Bchunk_0%5D=jquery-core,jquery-migrate&amp;ver={$wp_version}'></script>\n";
    2609         $expected .= "<script type='text/javascript' id='test-example-js-before'>\n/* <![CDATA[ */\nconsole.log(\"before\");\n//# sourceURL=test-example-js-before\n/* ]]> */\n</script>\n";
    2610         $expected .= "<script type='text/javascript' src='http://example.com' id='test-example-js'></script>\n";
     2604        $expected  = "<script src='/wp-admin/load-scripts.php?c=0&amp;load%5Bchunk_0%5D=jquery-core,jquery-migrate&amp;ver={$wp_version}'></script>\n";
     2605        $expected .= "<script id='test-example-js-before'>\n/* <![CDATA[ */\nconsole.log(\"before\");\n//# sourceURL=test-example-js-before\n/* ]]> */\n</script>\n";
     2606        $expected .= "<script src='http://example.com' id='test-example-js'></script>\n";
    26112607
    26122608        wp_enqueue_script( 'test-example', 'http://example.com', array( 'jquery' ), null );
     
    26312627        $wp_scripts->do_concat = true;
    26322628
    2633         $expected  = "<script type='text/javascript' src='/wp-admin/load-scripts.php?c=0&amp;load%5Bchunk_0%5D=jquery-core,jquery-migrate,wp-dom-ready,wp-hooks&amp;ver={$wp_version}'></script>\n";
    2634         $expected .= "<script type='text/javascript' id='test-example-js-before'>\n";
     2629        $expected  = "<script src='/wp-admin/load-scripts.php?c=0&amp;load%5Bchunk_0%5D=jquery-core,jquery-migrate,wp-dom-ready,wp-hooks&amp;ver={$wp_version}'></script>\n";
     2630        $expected .= "<script id='test-example-js-before'>\n";
    26352631        $expected .= "/* <![CDATA[ */\nconsole.log(\"before\");\n//# sourceURL=test-example-js-before\n/* ]]> */\n";
    26362632        $expected .= "</script>\n";
    2637         $expected .= "<script type='text/javascript' src='http://example.com' id='test-example-js'></script>\n";
    2638         $expected .= "<script type='text/javascript' src='/wp-includes/js/dist/i18n.min.js' id='wp-i18n-js'></script>\n";
    2639         $expected .= "<script type='text/javascript' id='wp-i18n-js-after'>\n";
     2633        $expected .= "<script src='http://example.com' id='test-example-js'></script>\n";
     2634        $expected .= "<script src='/wp-includes/js/dist/i18n.min.js' id='wp-i18n-js'></script>\n";
     2635        $expected .= "<script id='wp-i18n-js-after'>\n";
    26402636        $expected .= "/* <![CDATA[ */\n";
    26412637        $expected .= "wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );\n";
     
    26432639        $expected .= "/* ]]> */\n";
    26442640        $expected .= "</script>\n";
    2645         $expected .= "<script type='text/javascript' src='/wp-includes/js/dist/a11y.min.js' id='wp-a11y-js'></script>\n";
    2646         $expected .= "<script type='text/javascript' src='http://example2.com' id='test-example2-js'></script>\n";
    2647         $expected .= "<script type='text/javascript' id='test-example2-js-after'>\n/* <![CDATA[ */\nconsole.log(\"after\");\n//# sourceURL=test-example2-js-after\n/* ]]> */\n</script>\n";
     2641        $expected .= "<script src='/wp-includes/js/dist/a11y.min.js' id='wp-a11y-js'></script>\n";
     2642        $expected .= "<script src='http://example2.com' id='test-example2-js'></script>\n";
     2643        $expected .= "<script id='test-example2-js-after'>\n/* <![CDATA[ */\nconsole.log(\"after\");\n//# sourceURL=test-example2-js-after\n/* ]]> */\n</script>\n";
    26482644        wp_enqueue_script( 'test-example', 'http://example.com', array( 'jquery' ), null );
    26492645        wp_add_inline_script( 'test-example', 'console.log("before");', 'before' );
     
    26962692        $print_scripts = $this->getActualOutput();
    26972693
    2698         $expected = "<script type='text/javascript' src='/customize-dependency.js' id='customize-dependency-js'></script>\n";
     2694        $expected = "<script src='/customize-dependency.js' id='customize-dependency-js'></script>\n";
    26992695        $this->assertEqualHTMLScriptTagById( $expected, $print_scripts );
    27002696
    2701         $expected  = "<script type='text/javascript' id='customize-dependency-js-after'>\n";
     2697        $expected  = "<script id='customize-dependency-js-after'>\n";
    27022698        $expected .= "/* <![CDATA[ */\n";
    27032699        $expected .= "tryCustomizeDependency()\n";
     
    27232719        wp_enqueue_script( 'four', '/wp-includes/js/script4.js' );
    27242720
    2725         $expected  = "<script type='text/javascript' src='/wp-includes/js/script.js?ver={$wp_version}' id='one-js'></script>\n";
    2726         $expected .= "<script type='text/javascript' id='one-js-after'>\n/* <![CDATA[ */\nconsole.log(\"after one\");\n//# sourceURL=one-js-after\n/* ]]> */\n</script>\n";
    2727         $expected .= "<script type='text/javascript' src='/wp-includes/js/script2.js?ver={$wp_version}' id='two-js'></script>\n";
    2728         $expected .= "<script type='text/javascript' src='/wp-includes/js/script3.js?ver={$wp_version}' id='three-js'></script>\n";
    2729         $expected .= "<script type='text/javascript' src='/wp-includes/js/script4.js?ver={$wp_version}' id='four-js'></script>\n";
     2721        $expected  = "<script src='/wp-includes/js/script.js?ver={$wp_version}' id='one-js'></script>\n";
     2722        $expected .= "<script id='one-js-after'>\n/* <![CDATA[ */\nconsole.log(\"after one\");\n//# sourceURL=one-js-after\n/* ]]> */\n</script>\n";
     2723        $expected .= "<script src='/wp-includes/js/script2.js?ver={$wp_version}' id='two-js'></script>\n";
     2724        $expected .= "<script src='/wp-includes/js/script3.js?ver={$wp_version}' id='three-js'></script>\n";
     2725        $expected .= "<script src='/wp-includes/js/script4.js?ver={$wp_version}' id='four-js'></script>\n";
    27302726
    27312727        $this->assertEqualHTML( $expected, get_echo( 'wp_print_scripts' ) );
     
    27472743        wp_enqueue_script( 'four', '/wp-includes/js/script4.js' );
    27482744
    2749         $expected  = "<script type='text/javascript' src='/wp-admin/load-scripts.php?c=0&amp;load%5Bchunk_0%5D=one,two&amp;ver={$wp_version}'></script>\n";
    2750         $expected .= "<script type='text/javascript' id='three-js-before'>\n/* <![CDATA[ */\nconsole.log(\"before three\");\n//# sourceURL=three-js-before\n/* ]]> */\n</script>\n";
    2751         $expected .= "<script type='text/javascript' src='/wp-includes/js/script3.js?ver={$wp_version}' id='three-js'></script>\n";
    2752         $expected .= "<script type='text/javascript' src='/wp-includes/js/script4.js?ver={$wp_version}' id='four-js'></script>\n";
     2745        $expected  = "<script src='/wp-admin/load-scripts.php?c=0&amp;load%5Bchunk_0%5D=one,two&amp;ver={$wp_version}'></script>\n";
     2746        $expected .= "<script id='three-js-before'>\n/* <![CDATA[ */\nconsole.log(\"before three\");\n//# sourceURL=three-js-before\n/* ]]> */\n</script>\n";
     2747        $expected .= "<script src='/wp-includes/js/script3.js?ver={$wp_version}' id='three-js'></script>\n";
     2748        $expected .= "<script src='/wp-includes/js/script4.js?ver={$wp_version}' id='four-js'></script>\n";
    27532749
    27542750        $this->assertEqualHTML( $expected, get_echo( 'wp_print_scripts' ) );
     
    27692765                'delayed'        => false,
    27702766                'expected_data'  => "/*before foo 1*/\n//# sourceURL=foo-js-before",
    2771                 'expected_tag'   => "<script id='foo-js-before' type='text/javascript'>\n/* <![CDATA[ */\n/*before foo 1*/\n//# sourceURL=foo-js-before\n/* ]]> */\n</script>\n",
     2767                'expected_tag'   => "<script id='foo-js-before'>\n/* <![CDATA[ */\n/*before foo 1*/\n//# sourceURL=foo-js-before\n/* ]]> */\n</script>\n",
    27722768            ),
    27732769            'after-blocking'  => array(
     
    27792775                'delayed'        => false,
    27802776                'expected_data'  => "/*after foo 1*/\n/*after foo 2*/\n//# sourceURL=foo-js-after",
    2781                 'expected_tag'   => "<script id='foo-js-after' type='text/javascript'>\n/* <![CDATA[ */\n/*after foo 1*/\n/*after foo 2*/\n//# sourceURL=foo-js-after\n/* ]]> */\n</script>\n",
     2777                'expected_tag'   => "<script id='foo-js-after'>\n/* <![CDATA[ */\n/*after foo 1*/\n/*after foo 2*/\n//# sourceURL=foo-js-after\n/* ]]> */\n</script>\n",
    27822778            ),
    27832779            'before-delayed'  => array(
     
    27882784                'delayed'        => true,
    27892785                'expected_data'  => "/*before foo 1*/\n//# sourceURL=foo-js-before",
    2790                 'expected_tag'   => "<script id='foo-js-before' type='text/javascript'>\n/* <![CDATA[ */\n/*before foo 1*/\n//# sourceURL=foo-js-before\n/* ]]> */\n</script>\n",
     2786                'expected_tag'   => "<script id='foo-js-before'>\n/* <![CDATA[ */\n/*before foo 1*/\n//# sourceURL=foo-js-before\n/* ]]> */\n</script>\n",
    27912787            ),
    27922788            'after-delayed'   => array(
     
    27982794                'delayed'        => true,
    27992795                'expected_data'  => "/*after foo 1*/\n/*after foo 2*/\n//# sourceURL=foo-js-after",
    2800                 'expected_tag'   => "<script id='foo-js-after' type='text/javascript'>\n/* <![CDATA[ */\n/*after foo 1*/\n/*after foo 2*/\n//# sourceURL=foo-js-after\n/* ]]> */\n</script>\n",
     2796                'expected_tag'   => "<script id='foo-js-after'>\n/* <![CDATA[ */\n/*after foo 1*/\n/*after foo 2*/\n//# sourceURL=foo-js-after\n/* ]]> */\n</script>\n",
    28012797            ),
    28022798        );
     
    28682864        wp_set_script_translations( 'test-example', 'default', DIR_TESTDATA . '/languages' );
    28692865
    2870         $expected  = "<script type='text/javascript' src='/wp-includes/js/dist/wp-i18n.js' id='wp-i18n-js'></script>\n";
     2866        $expected  = "<script src='/wp-includes/js/dist/wp-i18n.js' id='wp-i18n-js'></script>\n";
    28712867        $expected .= str_replace(
    28722868            array(
     
    28822878            $this->wp_scripts_print_translations_output
    28832879        );
    2884         $expected .= "<script type='text/javascript' src='/wp-includes/js/script.js' id='test-example-js'></script>\n";
     2880        $expected .= "<script src='/wp-includes/js/script.js' id='test-example-js'></script>\n";
    28852881
    28862882        $this->assertEqualHTML( $expected, get_echo( 'wp_print_scripts' ) );
     
    29002896        wp_set_script_translations( 'domain-path-plugin', 'internationalized-plugin' );
    29012897
    2902         $expected  = "<script type='text/javascript' src='/wp-includes/js/dist/wp-i18n.js' id='wp-i18n-js'></script>\n";
     2898        $expected  = "<script src='/wp-includes/js/dist/wp-i18n.js' id='wp-i18n-js'></script>\n";
    29032899        $expected .= str_replace(
    29042900            array(
     
    29142910            $this->wp_scripts_print_translations_output
    29152911        );
    2916         $expected .= "<script type='text/javascript' src='/wp-content/plugins/my-plugin/js/script.js' id='domain-path-plugin-js'></script>\n";
     2912        $expected .= "<script src='/wp-content/plugins/my-plugin/js/script.js' id='domain-path-plugin-js'></script>\n";
    29172913
    29182914        $this->assertEqualHTML( $expected, get_echo( 'wp_print_scripts' ) );
     
    29352931        wp_set_script_translations( 'script-handle', 'admin' );
    29362932
    2937         $expected  = "<script type='text/javascript' src='/wp-includes/js/dist/wp-i18n.js' id='wp-i18n-js'></script>\n";
     2933        $expected  = "<script src='/wp-includes/js/dist/wp-i18n.js' id='wp-i18n-js'></script>\n";
    29382934        $expected .= str_replace(
    29392935            array(
     
    29492945            $this->wp_scripts_print_translations_output
    29502946        );
    2951         $expected .= "<script type='text/javascript' src='/wp-admin/js/script.js' id='script-handle-js'></script>\n";
     2947        $expected .= "<script src='/wp-admin/js/script.js' id='script-handle-js'></script>\n";
    29522948
    29532949        $this->assertEqualHTML( $expected, get_echo( 'wp_print_scripts' ) );
     
    29622958        wp_set_script_translations( 'plugin-example', 'internationalized-plugin', DIR_TESTDATA . '/languages/plugins' );
    29632959
    2964         $expected  = "<script type='text/javascript' src='/wp-includes/js/dist/wp-i18n.js' id='wp-i18n-js'></script>\n";
     2960        $expected  = "<script src='/wp-includes/js/dist/wp-i18n.js' id='wp-i18n-js'></script>\n";
    29652961        $expected .= str_replace(
    29662962            array(
     
    29762972            $this->wp_scripts_print_translations_output
    29772973        );
    2978         $expected .= "<script type='text/javascript' src='/wp-content/plugins/my-plugin/js/script.js' id='plugin-example-js'></script>\n";
     2974        $expected .= "<script src='/wp-content/plugins/my-plugin/js/script.js' id='plugin-example-js'></script>\n";
    29792975
    29802976        $this->assertEqualHTML( $expected, get_echo( 'wp_print_scripts' ) );
     
    29892985        wp_set_script_translations( 'theme-example', 'internationalized-theme', DIR_TESTDATA . '/languages/themes' );
    29902986
    2991         $expected  = "<script type='text/javascript' src='/wp-includes/js/dist/wp-i18n.js' id='wp-i18n-js'></script>\n";
     2987        $expected  = "<script src='/wp-includes/js/dist/wp-i18n.js' id='wp-i18n-js'></script>\n";
    29922988        $expected .= str_replace(
    29932989            array(
     
    30032999            $this->wp_scripts_print_translations_output
    30043000        );
    3005         $expected .= "<script type='text/javascript' src='/wp-content/themes/my-theme/js/script.js' id='theme-example-js'></script>\n";
     3001        $expected .= "<script src='/wp-content/themes/my-theme/js/script.js' id='theme-example-js'></script>\n";
    30063002
    30073003        $this->assertEqualHTML( $expected, get_echo( 'wp_print_scripts' ) );
     
    30163012        wp_set_script_translations( 'script-handle', 'admin', DIR_TESTDATA . '/languages/' );
    30173013
    3018         $expected  = "<script type='text/javascript' src='/wp-includes/js/dist/wp-i18n.js' id='wp-i18n-js'></script>\n";
     3014        $expected  = "<script src='/wp-includes/js/dist/wp-i18n.js' id='wp-i18n-js'></script>\n";
    30193015        $expected .= str_replace(
    30203016            array(
     
    30303026            $this->wp_scripts_print_translations_output
    30313027        );
    3032         $expected .= "<script type='text/javascript' src='/wp-admin/js/script.js' id='script-handle-js'></script>\n";
     3028        $expected .= "<script src='/wp-admin/js/script.js' id='script-handle-js'></script>\n";
    30333029
    30343030        $this->assertEqualHTML( $expected, get_echo( 'wp_print_scripts' ) );
     
    30593055        wp_set_script_translations( 'test-example', 'admin', DIR_TESTDATA . '/languages/' );
    30603056
    3061         $expected  = "<script type='text/javascript' src='/wp-includes/js/dist/wp-i18n.js' id='wp-i18n-js'></script>\n";
    3062         $expected .= "<script type='text/javascript' src='/wp-admin/js/script.js' id='test-example-js'></script>\n";
     3057        $expected  = "<script src='/wp-includes/js/dist/wp-i18n.js' id='wp-i18n-js'></script>\n";
     3058        $expected .= "<script src='/wp-admin/js/script.js' id='test-example-js'></script>\n";
    30633059
    30643060        $this->assertEqualHTML( $expected, get_echo( 'wp_print_scripts' ) );
     
    30753071        wp_enqueue_script( 'test-example' );
    30763072
    3077         $expected  = "<script type='text/javascript' src='/wp-includes/js/dist/wp-i18n.js' id='wp-i18n-js'></script>\n";
     3073        $expected  = "<script src='/wp-includes/js/dist/wp-i18n.js' id='wp-i18n-js'></script>\n";
    30783074        $expected .= str_replace(
    30793075            array(
     
    30893085            $this->wp_scripts_print_translations_output
    30903086        );
    3091         $expected .= "<script type='text/javascript' src='/wp-includes/js/script.js' id='test-example-js'></script>\n";
     3087        $expected .= "<script src='/wp-includes/js/script.js' id='test-example-js'></script>\n";
    30923088
    30933089        $this->assertEqualHTML( $expected, get_echo( 'wp_print_scripts' ) );
     
    31043100        wp_enqueue_script( 'test-example', '/wp-includes/js/script2.js', array( 'test-dependency' ), null );
    31053101
    3106         $expected  = "<script type='text/javascript' src='/wp-includes/js/dist/wp-i18n.js' id='wp-i18n-js'></script>\n";
     3102        $expected  = "<script src='/wp-includes/js/dist/wp-i18n.js' id='wp-i18n-js'></script>\n";
    31073103        $expected .= str_replace(
    31083104            array(
     
    31183114            $this->wp_scripts_print_translations_output
    31193115        );
    3120         $expected .= "<script type='text/javascript' src='/wp-includes/js/script.js' id='test-dependency-js'></script>\n";
    3121         $expected .= "<script type='text/javascript' src='/wp-includes/js/script2.js' id='test-example-js'></script>\n";
     3116        $expected .= "<script src='/wp-includes/js/script.js' id='test-dependency-js'></script>\n";
     3117        $expected .= "<script src='/wp-includes/js/script2.js' id='test-example-js'></script>\n";
    31223118
    31233119        $this->assertEqualHTML( $expected, get_echo( 'wp_print_scripts' ) );
     
    35073503        wp_localize_script( 'test-example', 'testExample', $l10n_data );
    35083504
    3509         $expected  = "<script type='text/javascript' id='test-example-js-extra'>\n/* <![CDATA[ */\nvar testExample = {$expected};\n//# sourceURL=test-example-js-extra\n/* ]]> */\n</script>\n";
    3510         $expected .= "<script type='text/javascript' src='http://example.com' id='test-example-js'></script>\n";
     3505        $expected  = "<script id='test-example-js-extra'>\n/* <![CDATA[ */\nvar testExample = {$expected};\n//# sourceURL=test-example-js-extra\n/* ]]> */\n</script>\n";
     3506        $expected .= "<script src='http://example.com' id='test-example-js'></script>\n";
    35113507
    35123508        $this->assertEqualHTML( $expected, get_echo( 'wp_print_scripts' ) );
     
    35713567
    35723568        // The non-default script should end concatenation and maintain order.
    3573         $expected  = "<script type='text/javascript' src='/wp-admin/load-scripts.php?c=0&amp;load%5Bchunk_0%5D=jquery-core&amp;ver={$wp_version}'></script>\n";
    3574         $expected .= "<script type='text/javascript' src='/plugins/wp-i18n.js' id='wp-i18n-js'></script>\n";
    3575         $expected .= "<script type='text/javascript' src='/default/common.js' id='common-js'></script>\n";
     3569        $expected  = "<script src='/wp-admin/load-scripts.php?c=0&amp;load%5Bchunk_0%5D=jquery-core&amp;ver={$wp_version}'></script>\n";
     3570        $expected .= "<script src='/plugins/wp-i18n.js' id='wp-i18n-js'></script>\n";
     3571        $expected .= "<script src='/default/common.js' id='common-js'></script>\n";
    35763572
    35773573        $this->assertEqualHTML( $expected, $print_scripts );
     
    36993695                'expected_header'    => '',
    37003696                'expected_footer'    => '
    3701                     <script type="text/javascript" src="https://example.com/script-a.js" id="script-a-js" data-wp-strategy="defer"></script>
    3702                     <script type="text/javascript" src="https://example.com/script-b.js" id="script-b-js"></script>
     3697                    <script src="https://example.com/script-a.js" id="script-a-js" data-wp-strategy="defer"></script>
     3698                    <script src="https://example.com/script-b.js" id="script-b-js"></script>
    37033699                ',
    37043700                'expected_in_footer' => array(
     
    37203716                'expected_header'    => '',
    37213717                'expected_footer'    => '
    3722                     <script type="text/javascript" src="https://example.com/script-a.js" id="script-a-js" data-wp-strategy="async"></script>
    3723                     <script type="text/javascript" src="https://example.com/script-b.js" id="script-b-js"></script>
     3718                    <script src="https://example.com/script-a.js" id="script-a-js" data-wp-strategy="async"></script>
     3719                    <script src="https://example.com/script-b.js" id="script-b-js"></script>
    37243720                ',
    37253721                'expected_in_footer' => array(
     
    37403736                },
    37413737                'expected_header'    => '
    3742                     <script type="text/javascript" src="https://example.com/script-a.js" id="script-a-js" data-wp-strategy="defer"></script>
    3743                     <script type="text/javascript" src="https://example.com/script-b.js" id="script-b-js"></script>
     3738                    <script src="https://example.com/script-a.js" id="script-a-js" data-wp-strategy="defer"></script>
     3739                    <script src="https://example.com/script-b.js" id="script-b-js"></script>
    37443740                ',
    37453741                'expected_footer'    => '',
     
    37673763                },
    37683764                'expected_header'    => '
    3769                     <script type="text/javascript" src="https://example.com/script-a.js" id="script-a-js" defer="defer" data-wp-strategy="defer"></script>
     3765                    <script src="https://example.com/script-a.js" id="script-a-js" defer="defer" data-wp-strategy="defer"></script>
    37703766                ',
    37713767                'expected_footer'    => '
    3772                     <script type="text/javascript" src="https://example.com/script-b.js" id="script-b-js" defer="defer" data-wp-strategy="defer"></script>
     3768                    <script src="https://example.com/script-b.js" id="script-b-js" defer="defer" data-wp-strategy="defer"></script>
    37733769                ',
    37743770                'expected_in_footer' => array(
     
    38173813                },
    38183814                'expected_header'    => '
    3819                     <script type="text/javascript" src="https://example.com/script-a.js" id="script-a-js" defer="defer" data-wp-strategy="defer"></script>
    3820                     <script type="text/javascript" src="https://example.com/script-b.js" id="script-b-js" defer="defer" data-wp-strategy="defer"></script>
     3815                    <script src="https://example.com/script-a.js" id="script-a-js" defer="defer" data-wp-strategy="defer"></script>
     3816                    <script src="https://example.com/script-b.js" id="script-b-js" defer="defer" data-wp-strategy="defer"></script>
    38213817                ',
    38223818                'expected_footer'    => '
    3823                     <script type="text/javascript" src="https://example.com/script-c.js" id="script-c-js" defer="defer" data-wp-strategy="defer"></script>
    3824                     <script type="text/javascript" src="https://example.com/script-d.js" id="script-d-js" defer="defer" data-wp-strategy="defer"></script>
     3819                    <script src="https://example.com/script-c.js" id="script-c-js" defer="defer" data-wp-strategy="defer"></script>
     3820                    <script src="https://example.com/script-d.js" id="script-d-js" defer="defer" data-wp-strategy="defer"></script>
    38253821                ',
    38263822                'expected_in_footer' => array(
     
    38643860                'expected_header'    => '',
    38653861                'expected_footer'    => '
    3866                     <script type="text/javascript" src="https://example.com/script-a.js" id="script-a-js" data-wp-strategy="defer"></script>
    3867                     <script type="text/javascript" src="https://example.com/script-b.js" id="script-b-js" defer="defer" data-wp-strategy="defer"></script>
    3868                     <script type="text/javascript" src="https://example.com/script-c.js" id="script-c-js"></script>
    3869                     <script type="text/javascript" src="https://example.com/script-d.js" id="script-d-js" defer="defer" data-wp-strategy="defer"></script>
     3862                    <script src="https://example.com/script-a.js" id="script-a-js" data-wp-strategy="defer"></script>
     3863                    <script src="https://example.com/script-b.js" id="script-b-js" defer="defer" data-wp-strategy="defer"></script>
     3864                    <script src="https://example.com/script-c.js" id="script-c-js"></script>
     3865                    <script src="https://example.com/script-d.js" id="script-d-js" defer="defer" data-wp-strategy="defer"></script>
    38703866                ',
    38713867                'expected_in_footer' => array(
     
    39113907                },
    39123908                'expected_header'    => '
    3913                     <script type="text/javascript" src="https://example.com/script-a.js" id="script-a-js" data-wp-strategy="defer"></script>
    3914                     <script type="text/javascript" src="https://example.com/script-b.js" id="script-b-js" defer="defer" data-wp-strategy="defer"></script>
     3909                    <script src="https://example.com/script-a.js" id="script-a-js" data-wp-strategy="defer"></script>
     3910                    <script src="https://example.com/script-b.js" id="script-b-js" defer="defer" data-wp-strategy="defer"></script>
    39153911                ',
    39163912                'expected_footer'    => '
    3917                     <script type="text/javascript" src="https://example.com/script-c.js" id="script-c-js"></script>
    3918                     <script type="text/javascript" src="https://example.com/script-d.js" id="script-d-js" defer="defer" data-wp-strategy="defer"></script>
     3913                    <script src="https://example.com/script-c.js" id="script-c-js"></script>
     3914                    <script src="https://example.com/script-d.js" id="script-d-js" defer="defer" data-wp-strategy="defer"></script>
    39193915                ',
    39203916                'expected_in_footer' => array(
     
    42074203        $markup = get_echo( 'wp_print_scripts' );
    42084204
    4209         $expected = "<script type='text/javascript' src='/test-script.js?{$expected_query_string}' id='test-script-js'></script>";
     4205        $expected = "<script src='/test-script.js?{$expected_query_string}' id='test-script-js'></script>";
    42104206        $this->assertEqualHTML( $expected, $markup, '<body>', 'Expected equal snapshot for wp_print_scripts() with version ' . var_export( $version, true ) . ":\n$markup" );
    42114207    }
     
    42284224        $markup = get_echo( 'wp_print_scripts' );
    42294225
    4230         $expected = "<script type='text/javascript' src='/test-script.js?{$expected_query_string}' id='test-script-js'></script>";
     4226        $expected = "<script src='/test-script.js?{$expected_query_string}' id='test-script-js'></script>";
    42314227        $this->assertEqualHTML( $expected, $markup, '<body>', 'Expected equal snapshot for wp_print_scripts() with version ' . var_export( $version, true ) . ":\n$markup" );
    42324228    }
  • trunk/tests/phpunit/tests/dependencies/styles.php

    r61397 r61411  
    6969
    7070        $ver       = get_bloginfo( 'version' );
    71         $expected  = "<link rel='stylesheet' id='no-deps-no-version-css' href='http://example.com?ver=$ver' type='text/css' media='all' />\n";
    72         $expected .= "<link rel='stylesheet' id='no-deps-version-css' href='http://example.com?ver=1.2' type='text/css' media='all' />\n";
    73         $expected .= "<link rel='stylesheet' id='no-deps-null-version-css' href='http://example.com' type='text/css' media='all' />\n";
    74         $expected .= "<link rel='stylesheet' id='no-deps-null-version-print-media-css' href='http://example.com' type='text/css' media='print' />\n";
    75         $expected .= "<link rel='stylesheet' id='no-deps-arg-in-handle-with-ver-css' href='https://example.com/test.css?ver=2.0&#038;arg1=foo&#038;arg2=bar' type='text/css' media='all' />\n";
    76         $expected .= "<link rel='stylesheet' id='no-deps-arg-in-handle-without-ver-css' href='https://example.com/test.css?arg1=foo&#038;arg2=bar' type='text/css' media='all' />\n";
    77         $expected .= "<link rel='stylesheet' id='registered-no-qs-handle-null-version-enqueued-with-qs-css' href='https://example.com/test.css?ver={$ver}&#038;arg1=foo&#038;arg2=bar' type='text/css' media='all' />\n";
     71        $expected  = "<link rel='stylesheet' id='no-deps-no-version-css' href='http://example.com?ver=$ver' media='all' />\n";
     72        $expected .= "<link rel='stylesheet' id='no-deps-version-css' href='http://example.com?ver=1.2' media='all' />\n";
     73        $expected .= "<link rel='stylesheet' id='no-deps-null-version-css' href='http://example.com' media='all' />\n";
     74        $expected .= "<link rel='stylesheet' id='no-deps-null-version-print-media-css' href='http://example.com' media='print' />\n";
     75        $expected .= "<link rel='stylesheet' id='no-deps-arg-in-handle-with-ver-css' href='https://example.com/test.css?ver=2.0&#038;arg1=foo&#038;arg2=bar' media='all' />\n";
     76        $expected .= "<link rel='stylesheet' id='no-deps-arg-in-handle-without-ver-css' href='https://example.com/test.css?arg1=foo&#038;arg2=bar' media='all' />\n";
     77        $expected .= "<link rel='stylesheet' id='registered-no-qs-handle-null-version-enqueued-with-qs-css' href='https://example.com/test.css?ver={$ver}&#038;arg1=foo&#038;arg2=bar' media='all' />\n";
    7878
    7979        $this->assertEqualHTML( $expected, get_echo( 'wp_print_styles' ) );
     
    110110        wp_enqueue_style( $handle, 'example.com', array(), null );
    111111
    112         $expected = "<link rel='stylesheet' id='$handle-css' href='http://example.com' type='text/css' media='all' />\n";
     112        $expected = "<link rel='stylesheet' id='$handle-css' href='http://example.com' media='all' />\n";
    113113
    114114        $this->assertEqualHTML( $expected, get_echo( 'wp_print_styles' ) );
     
    146146        // Try with an HTTP reference.
    147147        wp_enqueue_style( 'reset-css-http', 'http://yui.yahooapis.com/2.8.1/build/reset/reset-min.css' );
    148         $expected .= "<link rel='stylesheet' id='reset-css-http-css' href='http://yui.yahooapis.com/2.8.1/build/reset/reset-min.css?ver=$ver' type='text/css' media='all' />\n";
     148        $expected .= "<link rel='stylesheet' id='reset-css-http-css' href='http://yui.yahooapis.com/2.8.1/build/reset/reset-min.css?ver=$ver' media='all' />\n";
    149149
    150150        // Try with an HTTPS reference.
    151151        wp_enqueue_style( 'reset-css-https', 'http://yui.yahooapis.com/2.8.1/build/reset/reset-min.css' );
    152         $expected .= "<link rel='stylesheet' id='reset-css-https-css' href='http://yui.yahooapis.com/2.8.1/build/reset/reset-min.css?ver=$ver' type='text/css' media='all' />\n";
     152        $expected .= "<link rel='stylesheet' id='reset-css-https-css' href='http://yui.yahooapis.com/2.8.1/build/reset/reset-min.css?ver=$ver' media='all' />\n";
    153153
    154154        // Try with an automatic protocol reference (//).
    155155        wp_enqueue_style( 'reset-css-doubleslash', '//yui.yahooapis.com/2.8.1/build/reset/reset-min.css' );
    156         $expected .= "<link rel='stylesheet' id='reset-css-doubleslash-css' href='//yui.yahooapis.com/2.8.1/build/reset/reset-min.css?ver=$ver' type='text/css' media='all' />\n";
     156        $expected .= "<link rel='stylesheet' id='reset-css-doubleslash-css' href='//yui.yahooapis.com/2.8.1/build/reset/reset-min.css?ver=$ver' media='all' />\n";
    157157
    158158        // Try with a local resource and an automatic protocol reference (//).
    159159        $url = '//my_plugin/style.css';
    160160        wp_enqueue_style( 'plugin-style', $url );
    161         $expected .= "<link rel='stylesheet' id='plugin-style-css' href='$url?ver=$ver' type='text/css' media='all' />\n";
     161        $expected .= "<link rel='stylesheet' id='plugin-style-css' href='$url?ver=$ver' media='all' />\n";
    162162
    163163        // Try with a bad protocol.
    164164        wp_enqueue_style( 'reset-css-ftp', 'ftp://yui.yahooapis.com/2.8.1/build/reset/reset-min.css' );
    165         $expected .= "<link rel='stylesheet' id='reset-css-ftp-css' href='{$wp_styles->base_url}ftp://yui.yahooapis.com/2.8.1/build/reset/reset-min.css?ver=$ver' type='text/css' media='all' />\n";
     165        $expected .= "<link rel='stylesheet' id='reset-css-ftp-css' href='{$wp_styles->base_url}ftp://yui.yahooapis.com/2.8.1/build/reset/reset-min.css?ver=$ver' media='all' />\n";
    166166
    167167        // Go!
     
    186186        $style .= '}';
    187187
    188         $expected  = "<link rel='stylesheet' id='handle-css' href='http://example.com?ver=1' type='text/css' media='all' />\n";
    189         $expected .= "<style id='handle-inline-css' type='text/css'>\n";
     188        $expected  = "<link rel='stylesheet' id='handle-css' href='http://example.com?ver=1' media='all' />\n";
     189        $expected .= "<style id='handle-inline-css'>\n";
    190190        $expected .= "$style\n";
    191191        $expected .= "/*# sourceURL=handle-inline-css */\n";
     
    214214        $style .= '}';
    215215
    216         $expected  = "<link rel='stylesheet' id='handle-css' href='http://example.com?ver=1' type='text/css' media='all' />\n";
    217         $expected .= "<style id='handle-inline-css' type='text/css'>\n";
     216        $expected  = "<link rel='stylesheet' id='handle-css' href='http://example.com?ver=1' media='all' />\n";
     217        $expected .= "<style id='handle-inline-css'>\n";
    218218        $expected .= "$style\n";
    219219        $expected .= "</style>\n";
     
    308308        $style2 .= '}';
    309309
    310         $expected  = "<link rel='stylesheet' id='handle-css' href='http://example.com?ver=1' type='text/css' media='all' />\n";
    311         $expected .= "<style id='handle-inline-css' type='text/css'>\n";
     310        $expected  = "<link rel='stylesheet' id='handle-css' href='http://example.com?ver=1' media='all' />\n";
     311        $expected .= "<style id='handle-inline-css'>\n";
    312312        $expected .= "$style1\n";
    313313        $expected .= "$style2\n";
     
    334334        $style .= '}';
    335335
    336         $expected  = "<link rel='stylesheet' id='handle-css' href='http://example.com?ver=1' type='text/css' media='all' />\n";
    337         $expected .= "<style id='handle-inline-css' type='text/css'>\n";
     336        $expected  = "<link rel='stylesheet' id='handle-css' href='http://example.com?ver=1' media='all' />\n";
     337        $expected .= "<style id='handle-inline-css'>\n";
    338338        $expected .= "$style\n";
    339339        $expected .= "/*# sourceURL=handle-inline-css */\n";
     
    354354    public function test_unnecessary_style_tags() {
    355355
    356         $expected = "<link rel='stylesheet' id='handle-css' href='http://example.com?ver=1' type='text/css' media='all' />\n";
     356        $expected = "<link rel='stylesheet' id='handle-css' href='http://example.com?ver=1' media='all' />\n";
    357357
    358358        wp_enqueue_style( 'handle', 'http://example.com', array(), 1 );
     
    392392        $style = 'a { color: blue; }';
    393393
    394         $expected  = "<link rel='stylesheet' id='handle-one-css' href='http://example.com?ver=1' type='text/css' media='all' />\n";
    395         $expected .= "<link rel='stylesheet' id='handle-two-css' href='http://example.com?ver=1' type='text/css' media='all' />\n";
    396         $expected .= "<style id='handle-three-inline-css' type='text/css'>\n";
     394        $expected  = "<link rel='stylesheet' id='handle-one-css' href='http://example.com?ver=1' media='all' />\n";
     395        $expected .= "<link rel='stylesheet' id='handle-two-css' href='http://example.com?ver=1' media='all' />\n";
     396        $expected .= "<style id='handle-three-inline-css'>\n";
    397397        $expected .= "$style\n";
    398398        $expected .= "/*# sourceURL=handle-three-inline-css */\n";
     
    629629            $this->assertSame( 'STYLE', $processor->get_tag() );
    630630            $this->assertSame( $handle . '-inline-css', $processor->get_attribute( 'id' ) );
    631             $this->assertSame( 'text/css', $processor->get_attribute( 'type' ) );
     631            $this->assertNull( $processor->get_attribute( 'type' ) );
    632632
    633633            $expected_inline_styles = $expected_after;
     
    778778
    779779        $expected = <<<HTML
    780 <link rel='stylesheet' href="/example.css?ver=0.0" id="# test/</style> #-css" media="all" type="text/css">
    781 <style id="# test/</style> #-inline-css" type="text/css">
     780<link rel='stylesheet' href="/example.css?ver=0.0" id="# test/</style> #-css" media="all">
     781<style id="# test/</style> #-inline-css">
    782782custom-el { content: "ok"; }
    783783/*# sourceURL=%23%20test%2F%3C%2Fstyle%3E%20%23-inline-css */
     
    870870        $markup = get_echo( 'wp_print_styles' );
    871871
    872         $expected = "<link rel='stylesheet' href='/test-style.css?{$expected_query_string}' id='test-style-css' type='text/css' media='all' />";
     872        $expected = "<link rel='stylesheet' href='/test-style.css?{$expected_query_string}' id='test-style-css' media='all' />";
    873873        $this->assertEqualHTML( $expected, $markup, '<body>', 'Expected equal snapshot for wp_print_styles() with version ' . var_export( $version, true ) . ":\n$markup" );
    874874    }
     
    891891        $markup = get_echo( 'wp_print_styles' );
    892892
    893         $expected = "<link rel='stylesheet' href='/test-style.css?{$expected_query_string}' id='test-style-css' type='text/css' media='all' />";
     893        $expected = "<link rel='stylesheet' href='/test-style.css?{$expected_query_string}' id='test-style-css' media='all' />";
    894894        $this->assertEqualHTML( $expected, $markup, '<body>', 'Expected equal snapshot for wp_print_styles() with version ' . var_export( $version, true ) . ":\n$markup" );
    895895    }
  • trunk/tests/phpunit/tests/dependencies/wpInlineScriptTag.php

    r61395 r61411  
    144144
    145145        $this->assertSame(
    146             "<script type=\"text/javascript\">\n/* <![CDATA[ */\n/* <![CDATA[ */ console.log( 'Hello World!' ); /* ]]]]><![CDATA[> */\n/* ]]> */\n</script>\n",
     146            "<script>\n/* <![CDATA[ */\n/* <![CDATA[ */ console.log( 'Hello World!' ); /* ]]]]><![CDATA[> */\n/* ]]> */\n</script>\n",
    147147            wp_get_inline_script_tag( "/* <![CDATA[ */ console.log( 'Hello World!' ); /* ]]> */" )
    148148        );
  • trunk/tests/phpunit/tests/fonts/font-face/wpFontFace/generateAndPrint.php

    r61409 r61411  
    3232    public function test_should_generate_and_print_given_fonts( array $fonts, $expected ) {
    3333        $font_face       = new WP_Font_Face();
    34         $style_element   = "<style class='wp-fonts-local' type='text/css'>\n%s\n</style>\n";
     34        $style_element   = "<style class='wp-fonts-local'>\n%s\n</style>\n";
    3535        $expected_output = sprintf( $style_element, $expected );
    3636
  • trunk/tests/phpunit/tests/fonts/font-face/wpPrintFontFaces.php

    r61409 r61411  
    5656
    5757        $expected_output = <<<CSS
    58 <style class='wp-fonts-local' type='text/css'>
     58<style class='wp-fonts-local'>
    5959@font-face{font-family:"Source Serif Pro";font-style:normal;font-weight:200 900;font-display:fallback;src:url('http://example.com/assets/source-serif-pro/SourceSerif4Variable-Roman.ttf.woff2') format('woff2');font-stretch:;}
    6060</style>
     
    7777
    7878    private function get_expected_styles_output( $styles ) {
    79         $style_element = "<style class='wp-fonts-local' type='text/css'>\n%s\n</style>\n";
     79        $style_element = "<style class='wp-fonts-local'>\n%s\n</style>\n";
    8080        return sprintf( $style_element, $styles );
    8181    }
  • trunk/tests/phpunit/tests/fonts/font-face/wpPrintFontFacesFromStyleVariations.php

    r61409 r61411  
    4949
    5050    private function get_expected_styles_output( $styles ) {
    51         $style_element = "<style class='wp-fonts-local' type='text/css'>\n%s\n</style>\n";
     51        $style_element = "<style class='wp-fonts-local'>\n%s\n</style>\n";
    5252        return sprintf( $style_element, $styles );
    5353    }
  • trunk/tests/phpunit/tests/privacy/wpPrivacyGeneratePersonalDataExportFile.php

    r58221 r61411  
    332332        $expected .= "<head>\n";
    333333        $expected .= "<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />\n";
    334         $expected .= "<style type='text/css'>body { color: black; font-family: Arial, sans-serif; font-size: 11pt; margin: 15px auto; width: 860px; }table { background: #f0f0f0; border: 1px solid #ddd; margin-bottom: 20px; width: 100%; }th { padding: 5px; text-align: left; width: 20%; }td { padding: 5px; }tr:nth-child(odd) { background-color: #fafafa; }.return-to-top { text-align: right; }</style><title>Personal Data Export for {$request->email}</title></head>\n";
     334        $expected .= "<style>body { color: black; font-family: Arial, sans-serif; font-size: 11pt; margin: 15px auto; width: 860px; }table { background: #f0f0f0; border: 1px solid #ddd; margin-bottom: 20px; width: 100%; }th { padding: 5px; text-align: left; width: 20%; }td { padding: 5px; }tr:nth-child(odd) { background-color: #fafafa; }.return-to-top { text-align: right; }</style><title>Personal Data Export for {$request->email}</title></head>\n";
    335335        $expected .= "<body>\n";
    336336        $expected .= '<h1 id="top">Personal Data Export</h1>';
Note: See TracChangeset for help on using the changeset viewer.