<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[57327] trunk: Script Modules API: Rename `wp_module` to `wp_script_module`</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="https://core.trac.wordpress.org/changeset/57327">57327</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"https://core.trac.wordpress.org/changeset/57327","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>dmsnell</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2024-01-23 03:32:03 +0000 (Tue, 23 Jan 2024)</dd>
</dl>
<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>Script Modules API: Rename `wp_module` to `wp_script_module`
Renames all mentions to "module" with "script module", including function names, comments, and tests.
Follow up to <a href="https://core.trac.wordpress.org/changeset/57269">[57269]</a>
The list of functions renamed are:
- `wp_module()` -> `wp_script_module()`.
- `wp_register_module()` -> `wp_register_script_module()`.
- `wp_enqueue_module()` -> `wp_enqueue_script_module()`.
- `wp_dequeue_module()` -> `wp_dequeue_script_module()`.
- `WP_Script_Modules::print_enqueued_modules()` -> `WP_Script_Modules::print_enqueued_script_modules()`.
- `WP_Script_Modules::print_module_preloads()` -> `WP_Script_Modules::print_script_module_preloads()`.
It also adds PHP 7 typing to all the functions and improves the types of the `$deps` argument of `wp_register_script_module()` and `wp_enqueue_script_module()` using `@type`.
Props luisherranz, idad5, costdev, nefff, joemcgill, jorbin, swisspidy, jonsurrel, flixos90, gziolo, westonruter, bernhard-reiter, kamranzafar4343
See <a href="https://core.trac.wordpress.org/ticket/56313">#56313</a></pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunksrcwpincludesclasswpscriptmodulesphp">trunk/src/wp-includes/class-wp-script-modules.php</a></li>
<li><a href="#trunksrcwpincludesscriptmodulesphp">trunk/src/wp-includes/script-modules.php</a></li>
<li><a href="#trunktestsphpunittestsscriptmoduleswpScriptModulesphp">trunk/tests/phpunit/tests/script-modules/wpScriptModules.php</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunksrcwpincludesclasswpscriptmodulesphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/class-wp-script-modules.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/class-wp-script-modules.php 2024-01-23 01:49:06 UTC (rev 57326)
+++ trunk/src/wp-includes/class-wp-script-modules.php 2024-01-23 03:32:03 UTC (rev 57327)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,6 +1,6 @@
</span><span class="cx" style="display: block; padding: 0 10px"> <?php
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Modules API: WP_Script_Modules class.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Script Modules API: WP_Script_Modules class.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * Native support for ES Modules and Import Maps.
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9,13 +9,13 @@
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Core class used to register modules.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Core class used to register script modules.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> class WP_Script_Modules {
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Holds the registered modules, keyed by module identifier.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Holds the registered script modules, keyed by script module identifier.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px"> * @var array
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23,47 +23,46 @@
</span><span class="cx" style="display: block; padding: 0 10px"> private $registered = array();
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Holds the module identifiers that were enqueued before registered.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Holds the script module identifiers that were enqueued before registered.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @since 6.5.0
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @var array
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @var array<string, true>
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> private $enqueued_before_registered = array();
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Registers the module if no module with that module identifier has already
- * been registered.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Registers the script module if no script module with that script module
+ * identifier has already been registered.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @param string $module_id The identifier of the module.
- * Should be unique. It will be used
- * in the final import map.
- * @param string $src Full URL of the module, or path of
- * the module relative to the
- * WordPress root directory.
- * @param array<string|array{id: string, import?: 'static'|'dynamic' }> $deps Optional. An array of module
- * identifiers of the dependencies of
- * this module. The dependencies can
- * be strings or arrays. If they are
- * arrays, they need an `id` key with
- * the module identifier, and can
- * contain an `import` key with either
- * `static` or `dynamic`. By default,
- * dependencies that don't contain an
- * `import` key are considered static.
- * @param string|false|null $version Optional. String specifying the
- * module version number. Defaults to
- * false. It is added to the URL as a
- * query string for cache busting
- * purposes. If $version is set to
- * false, the version number is the
- * currently installed WordPress
- * version. If $version is set to
- * null, no version is added.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @param string $id The identifier of the script module. Should be unique. It will be used in the
+ * final import map.
+ * @param string $src Optional. Full URL of the script module, or path of the script module relative
+ * to the WordPress root directory. If it is provided and the script module has
+ * not been registered yet, it will be registered.
+ * @param array $deps {
+ * Optional. List of dependencies.
+ *
+ * @type string|array $0... {
+ * An array of script module identifiers of the dependencies of this script
+ * module. The dependencies can be strings or arrays. If they are arrays,
+ * they need an `id` key with the script module identifier, and can contain
+ * an `import` key with either `static` or `dynamic`. By default,
+ * dependencies that don't contain an `import` key are considered static.
+ *
+ * @type string $id The script module identifier.
+ * @type string $import Optional. Import type. May be either `static` or
+ * `dynamic`. Defaults to `static`.
+ * }
+ * }
+ * @param string|false|null $version Optional. String specifying the script module version number. Defaults to false.
+ * It is added to the URL as a query string for cache busting purposes. If $version
+ * is set to false, the version number is the currently installed WordPress version.
+ * If $version is set to null, no version is added.
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function register( $module_id, $src, $deps = array(), $version = false ) {
- if ( ! isset( $this->registered[ $module_id ] ) ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function register( string $id, string $src, array $deps = array(), $version = false ) {
+ if ( ! isset( $this->registered[ $id ] ) ) {
</ins><span class="cx" style="display: block; padding: 0 10px"> $dependencies = array();
</span><span class="cx" style="display: block; padding: 0 10px"> foreach ( $deps as $dependency ) {
</span><span class="cx" style="display: block; padding: 0 10px"> if ( is_array( $dependency ) ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -85,10 +84,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->registered[ $module_id ] = array(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->registered[ $id ] = array(
</ins><span class="cx" style="display: block; padding: 0 10px"> 'src' => $src,
</span><span class="cx" style="display: block; padding: 0 10px"> 'version' => $version,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- 'enqueue' => isset( $this->enqueued_before_registered[ $module_id ] ),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ 'enqueue' => isset( $this->enqueued_before_registered[ $id ] ),
</ins><span class="cx" style="display: block; padding: 0 10px"> 'dependencies' => $dependencies,
</span><span class="cx" style="display: block; padding: 0 10px"> 'enqueued' => false,
</span><span class="cx" style="display: block; padding: 0 10px"> 'preloaded' => false,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -97,116 +96,113 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Marks the module to be enqueued in the page the next time
- * `prints_enqueued_modules` is called.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Marks the script module to be enqueued in the page the next time
+ * `print_enqueued_script_modules` is called.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * If a src is provided and the module has not been registered yet, it will be
- * registered.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * If a src is provided and the script module has not been registered yet, it
+ * will be registered.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @param string $module_id The identifier of the module.
- * Should be unique. It will be used
- * in the final import map.
- * @param string $src Optional. Full URL of the module,
- * or path of the module relative to
- * the WordPress root directory. If
- * it is provided and the module has
- * not been registered yet, it will be
- * registered.
- * @param array<string|array{id: string, import?: 'static'|'dynamic' }> $deps Optional. An array of module
- * identifiers of the dependencies of
- * this module. The dependencies can
- * be strings or arrays. If they are
- * arrays, they need an `id` key with
- * the module identifier, and can
- * contain an `import` key with either
- * `static` or `dynamic`. By default,
- * dependencies that don't contain an
- * `import` key are considered static.
- * @param string|false|null $version Optional. String specifying the
- * module version number. Defaults to
- * false. It is added to the URL as a
- * query string for cache busting
- * purposes. If $version is set to
- * false, the version number is the
- * currently installed WordPress
- * version. If $version is set to
- * null, no version is added.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @param string $id The identifier of the script module. Should be unique. It will be used in the
+ * final import map.
+ * @param string $src Optional. Full URL of the script module, or path of the script module relative
+ * to the WordPress root directory. If it is provided and the script module has
+ * not been registered yet, it will be registered.
+ * @param array $deps {
+ * Optional. List of dependencies.
+ *
+ * @type string|array $0... {
+ * An array of script module identifiers of the dependencies of this script
+ * module. The dependencies can be strings or arrays. If they are arrays,
+ * they need an `id` key with the script module identifier, and can contain
+ * an `import` key with either `static` or `dynamic`. By default,
+ * dependencies that don't contain an `import` key are considered static.
+ *
+ * @type string $id The script module identifier.
+ * @type string $import Optional. Import type. May be either `static` or
+ * `dynamic`. Defaults to `static`.
+ * }
+ * }
+ * @param string|false|null $version Optional. String specifying the script module version number. Defaults to false.
+ * It is added to the URL as a query string for cache busting purposes. If $version
+ * is set to false, the version number is the currently installed WordPress version.
+ * If $version is set to null, no version is added.
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function enqueue( $module_id, $src = '', $deps = array(), $version = false ) {
- if ( isset( $this->registered[ $module_id ] ) ) {
- $this->registered[ $module_id ]['enqueue'] = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function enqueue( string $id, string $src = '', array $deps = array(), $version = false ) {
+ if ( isset( $this->registered[ $id ] ) ) {
+ $this->registered[ $id ]['enqueue'] = true;
</ins><span class="cx" style="display: block; padding: 0 10px"> } elseif ( $src ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->register( $module_id, $src, $deps, $version );
- $this->registered[ $module_id ]['enqueue'] = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->register( $id, $src, $deps, $version );
+ $this->registered[ $id ]['enqueue'] = true;
</ins><span class="cx" style="display: block; padding: 0 10px"> } else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->enqueued_before_registered[ $module_id ] = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->enqueued_before_registered[ $id ] = true;
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Unmarks the module so it will no longer be enqueued in the page.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Unmarks the script module so it will no longer be enqueued in the page.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @param string $module_id The identifier of the module.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @param string $id The identifier of the script module.
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function dequeue( $module_id ) {
- if ( isset( $this->registered[ $module_id ] ) ) {
- $this->registered[ $module_id ]['enqueue'] = false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function dequeue( string $id ) {
+ if ( isset( $this->registered[ $id ] ) ) {
+ $this->registered[ $id ]['enqueue'] = false;
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- unset( $this->enqueued_before_registered[ $module_id ] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ unset( $this->enqueued_before_registered[ $id ] );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Adds the hooks to print the import map, enqueued modules and module
- * preloads.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Adds the hooks to print the import map, enqueued script modules and script
+ * module preloads.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * It adds the actions to print the enqueued modules and module preloads to
- * both `wp_head` and `wp_footer` because in classic themes, the modules
- * used by the theme and plugins will likely be able to be printed in the
- * `head`, but the ones used by the blocks will need to be enqueued in the
- * `footer`.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * It adds the actions to print the enqueued script modules and script module
+ * preloads to both `wp_head` and `wp_footer` because in classic themes, the
+ * script modules used by the theme and plugins will likely be able to be
+ * printed in the `head`, but the ones used by the blocks will need to be
+ * enqueued in the `footer`.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * As all modules are deferred and dependencies are handled by the browser,
- * the order of the modules is not important, but it's still better to print
- * the ones that are available when the `wp_head` is rendered, so the browser
- * starts downloading those as soon as possible.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * As all script modules are deferred and dependencies are handled by the
+ * browser, the order of the script modules is not important, but it's still
+ * better to print the ones that are available when the `wp_head` is rendered,
+ * so the browser starts downloading those as soon as possible.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * The import map is also printed in the footer to be able to include the
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * dependencies of all the modules, including the ones printed in the footer.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * dependencies of all the script modules, including the ones printed in the
+ * footer.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public function add_hooks() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- add_action( 'wp_head', array( $this, 'print_enqueued_modules' ) );
- add_action( 'wp_head', array( $this, 'print_module_preloads' ) );
- add_action( 'wp_footer', array( $this, 'print_enqueued_modules' ) );
- add_action( 'wp_footer', array( $this, 'print_module_preloads' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ add_action( 'wp_head', array( $this, 'print_enqueued_script_modules' ) );
+ add_action( 'wp_head', array( $this, 'print_script_module_preloads' ) );
+ add_action( 'wp_footer', array( $this, 'print_enqueued_script_modules' ) );
+ add_action( 'wp_footer', array( $this, 'print_script_module_preloads' ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> add_action( 'wp_footer', array( $this, 'print_import_map' ) );
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Prints the enqueued modules using script tags with type="module"
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Prints the enqueued script modules using script tags with type="module"
</ins><span class="cx" style="display: block; padding: 0 10px"> * attributes.
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * If a enqueued module has already been printed, it will not be printed again
- * on subsequent calls to this function.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * If a enqueued script module has already been printed, it will not be
+ * printed again on subsequent calls to this function.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function print_enqueued_modules() {
- foreach ( $this->get_marked_for_enqueue() as $module_id => $module ) {
- if ( false === $module['enqueued'] ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function print_enqueued_script_modules() {
+ foreach ( $this->get_marked_for_enqueue() as $id => $script_module ) {
+ if ( false === $script_module['enqueued'] ) {
</ins><span class="cx" style="display: block; padding: 0 10px"> // Mark it as enqueued so it doesn't get enqueued again.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->registered[ $module_id ]['enqueued'] = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->registered[ $id ]['enqueued'] = true;
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> wp_print_script_tag(
</span><span class="cx" style="display: block; padding: 0 10px"> array(
</span><span class="cx" style="display: block; padding: 0 10px"> 'type' => 'module',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- 'src' => $this->get_versioned_src( $module ),
- 'id' => $module_id . '-js-module',
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ 'src' => $this->get_versioned_src( $script_module ),
+ 'id' => $id . '-js-module',
</ins><span class="cx" style="display: block; padding: 0 10px"> )
</span><span class="cx" style="display: block; padding: 0 10px"> );
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -214,26 +210,26 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Prints the the static dependencies of the enqueued modules using link tags
- * with rel="modulepreload" attributes.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Prints the the static dependencies of the enqueued script modules using
+ * link tags with rel="modulepreload" attributes.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * If a module is marked for enqueue, it will not be preloaded. If a preloaded
- * module has already been printed, it will not be printed again on subsequent
- * calls to this function.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * If a script module is marked for enqueue, it will not be preloaded. If a
+ * preloaded script module has already been printed, it will not be printed
+ * again on subsequent calls to this function.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function print_module_preloads() {
- foreach ( $this->get_dependencies( array_keys( $this->get_marked_for_enqueue() ), array( 'static' ) ) as $module_id => $module ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function print_script_module_preloads() {
+ foreach ( $this->get_dependencies( array_keys( $this->get_marked_for_enqueue() ), array( 'static' ) ) as $id => $script_module ) {
</ins><span class="cx" style="display: block; padding: 0 10px"> // Don't preload if it's marked for enqueue or has already been preloaded.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- if ( true !== $module['enqueue'] && false === $module['preloaded'] ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ if ( true !== $script_module['enqueue'] && false === $script_module['preloaded'] ) {
</ins><span class="cx" style="display: block; padding: 0 10px"> // Mark it as preloaded so it doesn't get preloaded again.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->registered[ $module_id ]['preloaded'] = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->registered[ $id ]['preloaded'] = true;
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> echo sprintf(
</span><span class="cx" style="display: block; padding: 0 10px"> '<link rel="modulepreload" href="%s" id="%s">',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- esc_url( $this->get_versioned_src( $module ) ),
- esc_attr( $module_id . '-js-modulepreload' )
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ esc_url( $this->get_versioned_src( $script_module ) ),
+ esc_attr( $id . '-js-modulepreload' )
</ins><span class="cx" style="display: block; padding: 0 10px"> );
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -262,29 +258,29 @@
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @return array Array with an `imports` key mapping to an array of module identifiers and their respective URLs,
- * including the version query.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @return array Array with an `imports` key mapping to an array of script module identifiers and their respective
+ * URLs, including the version query.
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- private function get_import_map() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ private function get_import_map(): array {
</ins><span class="cx" style="display: block; padding: 0 10px"> $imports = array();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- foreach ( $this->get_dependencies( array_keys( $this->get_marked_for_enqueue() ) ) as $module_id => $module ) {
- $imports[ $module_id ] = $this->get_versioned_src( $module );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ foreach ( $this->get_dependencies( array_keys( $this->get_marked_for_enqueue() ) ) as $id => $script_module ) {
+ $imports[ $id ] = $this->get_versioned_src( $script_module );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> return array( 'imports' => $imports );
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Retrieves the list of modules marked for enqueue.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Retrieves the list of script modules marked for enqueue.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @return array Modules marked for enqueue, keyed by module identifier.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @return array Script modules marked for enqueue, keyed by script module identifier.
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- private function get_marked_for_enqueue() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ private function get_marked_for_enqueue(): array {
</ins><span class="cx" style="display: block; padding: 0 10px"> $enqueued = array();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- foreach ( $this->registered as $module_id => $module ) {
- if ( true === $module['enqueue'] ) {
- $enqueued[ $module_id ] = $module;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ foreach ( $this->registered as $id => $script_module ) {
+ if ( true === $script_module['enqueue'] ) {
+ $enqueued[ $id ] = $script_module;
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> return $enqueued;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -291,8 +287,8 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Retrieves all the dependencies for the given module identifiers, filtered
- * by import types.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Retrieves all the dependencies for the given script module identifiers,
+ * filtered by import types.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * It will consolidate an array containing a set of unique dependencies based
</span><span class="cx" style="display: block; padding: 0 10px"> * on the requested import types: 'static', 'dynamic', or both. This method is
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -300,26 +296,27 @@
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @param array $module_ids The identifiers of the modules for which to gather dependencies.
- * @param array $import_types Optional. Import types of dependencies to retrieve: 'static', 'dynamic', or both.
- * Default is both.
- * @return array List of dependencies, keyed by module identifier.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+ * @param string[] $ids The identifiers of the script modules for which to gather dependencies.
+ * @param array $import_types Optional. Import types of dependencies to retrieve: 'static', 'dynamic', or both.
+ * Default is both.
+ * @return array List of dependencies, keyed by script module identifier.
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- private function get_dependencies( $module_ids, $import_types = array( 'static', 'dynamic' ) ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ private function get_dependencies( array $ids, array $import_types = array( 'static', 'dynamic' ) ) {
</ins><span class="cx" style="display: block; padding: 0 10px"> return array_reduce(
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $module_ids,
- function ( $dependency_modules, $module_id ) use ( $import_types ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $ids,
+ function ( $dependency_script_modules, $id ) use ( $import_types ) {
</ins><span class="cx" style="display: block; padding: 0 10px"> $dependencies = array();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- foreach ( $this->registered[ $module_id ]['dependencies'] as $dependency ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ foreach ( $this->registered[ $id ]['dependencies'] as $dependency ) {
</ins><span class="cx" style="display: block; padding: 0 10px"> if (
</span><span class="cx" style="display: block; padding: 0 10px"> in_array( $dependency['import'], $import_types, true ) &&
</span><span class="cx" style="display: block; padding: 0 10px"> isset( $this->registered[ $dependency['id'] ] ) &&
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- ! isset( $dependency_modules[ $dependency['id'] ] )
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ ! isset( $dependency_script_modules[ $dependency['id'] ] )
</ins><span class="cx" style="display: block; padding: 0 10px"> ) {
</span><span class="cx" style="display: block; padding: 0 10px"> $dependencies[ $dependency['id'] ] = $this->registered[ $dependency['id'] ];
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- return array_merge( $dependency_modules, $dependencies, $this->get_dependencies( array_keys( $dependencies ), $import_types ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ return array_merge( $dependency_script_modules, $dependencies, $this->get_dependencies( array_keys( $dependencies ), $import_types ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> },
</span><span class="cx" style="display: block; padding: 0 10px"> array()
</span><span class="cx" style="display: block; padding: 0 10px"> );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -326,7 +323,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Gets the versioned URL for a module src.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Gets the versioned URL for a script module src.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * If $version is set to false, the version number is the currently installed
</span><span class="cx" style="display: block; padding: 0 10px"> * WordPress version. If $version is set to null, no version is added.
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -334,19 +331,19 @@
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @param array $module The module.
- * @return string The module src with a version if relevant.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @param array $script_module The script module.
+ * @return string The script module src with a version if relevant.
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- private function get_versioned_src( array $module ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ private function get_versioned_src( array $script_module ): string {
</ins><span class="cx" style="display: block; padding: 0 10px"> $args = array();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- if ( false === $module['version'] ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ if ( false === $script_module['version'] ) {
</ins><span class="cx" style="display: block; padding: 0 10px"> $args['ver'] = get_bloginfo( 'version' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- } elseif ( null !== $module['version'] ) {
- $args['ver'] = $module['version'];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ } elseif ( null !== $script_module['version'] ) {
+ $args['ver'] = $script_module['version'];
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> if ( $args ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- return add_query_arg( $args, $module['src'] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ return add_query_arg( $args, $script_module['src'] );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- return $module['src'];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ return $script_module['src'];
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span></span></pre></div>
<a id="trunksrcwpincludesscriptmodulesphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/script-modules.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/script-modules.php 2024-01-23 01:49:06 UTC (rev 57326)
+++ trunk/src/wp-includes/script-modules.php 2024-01-23 03:32:03 UTC (rev 57327)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,6 +1,6 @@
</span><span class="cx" style="display: block; padding: 0 10px"> <?php
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Script Modules API: Module functions
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Script Modules API: Script Module functions
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18,7 +18,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @return WP_Script_Modules The main WP_Script_Modules instance.
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-function wp_modules() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+function wp_script_modules(): WP_Script_Modules {
</ins><span class="cx" style="display: block; padding: 0 10px"> static $instance = null;
</span><span class="cx" style="display: block; padding: 0 10px"> if ( is_null( $instance ) ) {
</span><span class="cx" style="display: block; padding: 0 10px"> $instance = new WP_Script_Modules();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -28,89 +28,84 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Registers the module if no module with that module identifier has already
- * been registered.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Registers the script module if no script module with that script module
+ * identifier has already been registered.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @param string $module_id The identifier of the module.
- * Should be unique. It will be used
- * in the final import map.
- * @param string $src Full URL of the module, or path of
- * the module relative to the
- * WordPress root directory.
- * @param array<string|array{id: string, import?: 'static'|'dynamic' }> $deps Optional. An array of module
- * identifiers of the dependencies of
- * this module. The dependencies can
- * be strings or arrays. If they are
- * arrays, they need an `id` key with
- * the module identifier, and can
- * contain an `import` key with either
- * `static` or `dynamic`. By default,
- * dependencies that don't contain an
- * `import` key are considered static.
- * @param string|false|null $version Optional. String specifying the
- * module version number. Defaults to
- * false. It is added to the URL as a
- * query string for cache busting
- * purposes. If $version is set to
- * false, the version number is the
- * currently installed WordPress
- * version. If $version is set to
- * null, no version is added.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @param string $id The identifier of the script module. Should be unique. It will be used in the
+ * final import map.
+ * @param string $src Optional. Full URL of the script module, or path of the script module relative
+ * to the WordPress root directory. If it is provided and the script module has
+ * not been registered yet, it will be registered.
+ * @param array $deps {
+ * Optional. List of dependencies.
+ *
+ * @type string|array $0... {
+ * An array of script module identifiers of the dependencies of this script
+ * module. The dependencies can be strings or arrays. If they are arrays,
+ * they need an `id` key with the script module identifier, and can contain
+ * an `import` key with either `static` or `dynamic`. By default,
+ * dependencies that don't contain an `import` key are considered static.
+ *
+ * @type string $id The script module identifier.
+ * @type string $import Optional. Import type. May be either `static` or
+ * `dynamic`. Defaults to `static`.
+ * }
+ * }
+ * @param string|false|null $version Optional. String specifying the script module version number. Defaults to false.
+ * It is added to the URL as a query string for cache busting purposes. If $version
+ * is set to false, the version number is the currently installed WordPress version.
+ * If $version is set to null, no version is added.
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-function wp_register_module( $module_id, $src, $deps = array(), $version = false ) {
- wp_modules()->register( $module_id, $src, $deps, $version );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+function wp_register_script_module( string $id, string $src, array $deps = array(), $version = false ) {
+ wp_script_modules()->register( $id, $src, $deps, $version );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Marks the module to be enqueued in the page.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Marks the script module to be enqueued in the page.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * If a src is provided and the module has not been registered yet, it will be
- * registered.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * If a src is provided and the script module has not been registered yet, it
+ * will be registered.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @param string $module_id The identifier of the module.
- * Should be unique. It will be used
- * in the final import map.
- * @param string $src Optional. Full URL of the module,
- * or path of the module relative to
- * the WordPress root directory. If
- * it is provided and the module has
- * not been registered yet, it will be
- * registered.
- * @param array<string|array{id: string, import?: 'static'|'dynamic' }> $deps Optional. An array of module
- * identifiers of the dependencies of
- * this module. The dependencies can
- * be strings or arrays. If they are
- * arrays, they need an `id` key with
- * the module identifier, and can
- * contain an `import` key with either
- * `static` or `dynamic`. By default,
- * dependencies that don't contain an
- * `import` key are considered static.
- * @param string|false|null $version Optional. String specifying the
- * module version number. Defaults to
- * false. It is added to the URL as a
- * query string for cache busting
- * purposes. If $version is set to
- * false, the version number is the
- * currently installed WordPress
- * version. If $version is set to
- * null, no version is added.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @param string $id The identifier of the script module. Should be unique. It will be used in the
+ * final import map.
+ * @param string $src Optional. Full URL of the script module, or path of the script module relative
+ * to the WordPress root directory. If it is provided and the script module has
+ * not been registered yet, it will be registered.
+ * @param array $deps {
+ * Optional. List of dependencies.
+ *
+ * @type string|array $0... {
+ * An array of script module identifiers of the dependencies of this script
+ * module. The dependencies can be strings or arrays. If they are arrays,
+ * they need an `id` key with the script module identifier, and can contain
+ * an `import` key with either `static` or `dynamic`. By default,
+ * dependencies that don't contain an `import` key are considered static.
+ *
+ * @type string $id The script module identifier.
+ * @type string $import Optional. Import type. May be either `static` or
+ * `dynamic`. Defaults to `static`.
+ * }
+ * }
+ * @param string|false|null $version Optional. String specifying the script module version number. Defaults to false.
+ * It is added to the URL as a query string for cache busting purposes. If $version
+ * is set to false, the version number is the currently installed WordPress version.
+ * If $version is set to null, no version is added.
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-function wp_enqueue_module( $module_id, $src = '', $deps = array(), $version = false ) {
- wp_modules()->enqueue( $module_id, $src, $deps, $version );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+function wp_enqueue_script_module( string $id, string $src = '', array $deps = array(), $version = false ) {
+ wp_script_modules()->enqueue( $id, $src, $deps, $version );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Unmarks the module so it is no longer enqueued in the page.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Unmarks the script module so it is no longer enqueued in the page.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @since 6.5.0
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @param string $module_id The identifier of the module.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @param string $id The identifier of the script module.
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-function wp_dequeue_module( $module_id ) {
- wp_modules()->dequeue( $module_id );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+function wp_dequeue_script_module( string $id ) {
+ wp_script_modules()->dequeue( $id );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span></span></pre></div>
<a id="trunktestsphpunittestsscriptmoduleswpScriptModulesphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/tests/phpunit/tests/script-modules/wpScriptModules.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/script-modules/wpScriptModules.php 2024-01-23 01:49:06 UTC (rev 57326)
+++ trunk/tests/phpunit/tests/script-modules/wpScriptModules.php 2024-01-23 03:32:03 UTC (rev 57327)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17,7 +17,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @var WP_Script_Modules
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- protected $modules;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ protected $script_modules;
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="cx" style="display: block; padding: 0 10px"> * Set up.
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,90 +24,84 @@
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public function set_up() {
</span><span class="cx" style="display: block; padding: 0 10px"> parent::set_up();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->modules = new WP_Script_Modules();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->script_modules = new WP_Script_Modules();
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Gets a list of the enqueued modules.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Gets a list of the enqueued script modules.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @return array Enqueued module URLs, keyed by module identifier.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @return array Enqueued script module URLs, keyed by script module identifier.
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function get_enqueued_modules() {
- $modules_markup = get_echo( array( $this->modules, 'print_enqueued_modules' ) );
- $p = new WP_HTML_Tag_Processor( $modules_markup );
- $enqueued_modules = array();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function get_enqueued_script_modules() {
+ $script_modules_markup = get_echo( array( $this->script_modules, 'print_enqueued_script_modules' ) );
+ $p = new WP_HTML_Tag_Processor( $script_modules_markup );
+ $enqueued_script_modules = array();
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- while ( $p->next_tag(
- array(
- 'tag' => 'SCRIPT',
- 'import' => 'module',
- )
- ) ) {
- $id = preg_replace( '/-js-module$/', '', $p->get_attribute( 'id' ) );
- $enqueued_modules[ $id ] = $p->get_attribute( 'src' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ while ( $p->next_tag( array( 'tag' => 'SCRIPT' ) ) ) {
+ if ( 'module' === $p->get_attribute( 'type' ) ) {
+ $id = preg_replace( '/-js-module$/', '', $p->get_attribute( 'id' ) );
+ $enqueued_script_modules[ $id ] = $p->get_attribute( 'src' );
+ }
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- return $enqueued_modules;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ return $enqueued_script_modules;
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Gets the modules listed in the import map.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Gets the script modules listed in the import map.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @return array Import map entry URLs, keyed by module identifier.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @return array Import map entry URLs, keyed by script module identifier.
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public function get_import_map() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $import_map_markup = get_echo( array( $this->modules, 'print_import_map' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $import_map_markup = get_echo( array( $this->script_modules, 'print_import_map' ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> preg_match( '/<script type="importmap" id="wp-importmap">.*?(\{.*\}).*?<\/script>/s', $import_map_markup, $import_map_string );
</span><span class="cx" style="display: block; padding: 0 10px"> return json_decode( $import_map_string[1], true )['imports'];
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Gets a list of preloaded modules.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Gets a list of preloaded script modules.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @return array Preloaded module URLs, keyed by module identifier.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @return array Preloaded script module URLs, keyed by script module identifier.
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function get_preloaded_modules() {
- $preloaded_markup = get_echo( array( $this->modules, 'print_module_preloads' ) );
- $p = new WP_HTML_Tag_Processor( $preloaded_markup );
- $preloaded_modules = array();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function get_preloaded_script_modules() {
+ $preloaded_markup = get_echo( array( $this->script_modules, 'print_script_module_preloads' ) );
+ $p = new WP_HTML_Tag_Processor( $preloaded_markup );
+ $preloaded_script_modules = array();
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- while ( $p->next_tag(
- array(
- 'tag' => 'LINK',
- 'rel' => 'modulepreload',
- )
- ) ) {
- $id = preg_replace( '/-js-modulepreload$/', '', $p->get_attribute( 'id' ) );
- $preloaded_modules[ $id ] = $p->get_attribute( 'href' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ while ( $p->next_tag( array( 'tag' => 'LINK' ) ) ) {
+ if ( 'modulepreload' === $p->get_attribute( 'rel' ) ) {
+ $id = preg_replace( '/-js-modulepreload$/', '', $p->get_attribute( 'id' ) );
+ $preloaded_script_modules[ $id ] = $p->get_attribute( 'href' );
+ }
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- return $preloaded_modules;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ return $preloaded_script_modules;
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Tests that a module gets enqueued correctly after being registered.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Tests that a script module gets enqueued correctly after being registered.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::register()
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::enqueue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @covers ::print_enqueued_modules()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @covers ::print_enqueued_script_modules()
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function test_wp_enqueue_module() {
- $this->modules->register( 'foo', '/foo.js' );
- $this->modules->register( 'bar', '/bar.js' );
- $this->modules->enqueue( 'foo' );
- $this->modules->enqueue( 'bar' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_wp_enqueue_script_module() {
+ $this->script_modules->register( 'foo', '/foo.js' );
+ $this->script_modules->register( 'bar', '/bar.js' );
+ $this->script_modules->enqueue( 'foo' );
+ $this->script_modules->enqueue( 'bar' );
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $enqueued_modules = $this->get_enqueued_modules();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $enqueued_script_modules = $this->get_enqueued_script_modules();
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->assertCount( 2, $enqueued_modules );
- $this->assertStringStartsWith( '/foo.js', $enqueued_modules['foo'] );
- $this->assertStringStartsWith( '/bar.js', $enqueued_modules['bar'] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->assertCount( 2, $enqueued_script_modules );
+ $this->assertStringStartsWith( '/foo.js', $enqueued_script_modules['foo'] );
+ $this->assertStringStartsWith( '/bar.js', $enqueued_script_modules['bar'] );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Tests that a module can be dequeued after being enqueued.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Tests that a script module can be dequeued after being enqueued.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -114,47 +108,47 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::register()
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::enqueue()
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::dequeue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @covers ::print_enqueued_modules()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @covers ::print_enqueued_script_modules()
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function test_wp_dequeue_module() {
- $this->modules->register( 'foo', '/foo.js' );
- $this->modules->register( 'bar', '/bar.js' );
- $this->modules->enqueue( 'foo' );
- $this->modules->enqueue( 'bar' );
- $this->modules->dequeue( 'foo' ); // Dequeued.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_wp_dequeue_script_module() {
+ $this->script_modules->register( 'foo', '/foo.js' );
+ $this->script_modules->register( 'bar', '/bar.js' );
+ $this->script_modules->enqueue( 'foo' );
+ $this->script_modules->enqueue( 'bar' );
+ $this->script_modules->dequeue( 'foo' ); // Dequeued.
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $enqueued_modules = $this->get_enqueued_modules();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $enqueued_script_modules = $this->get_enqueued_script_modules();
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->assertCount( 1, $enqueued_modules );
- $this->assertFalse( isset( $enqueued_modules['foo'] ) );
- $this->assertTrue( isset( $enqueued_modules['bar'] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->assertCount( 1, $enqueued_script_modules );
+ $this->assertFalse( isset( $enqueued_script_modules['foo'] ) );
+ $this->assertTrue( isset( $enqueued_script_modules['bar'] ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Tests that a module can be enqueued before it is registered, and will be
- * handled correctly once registered.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Tests that a script module can be enqueued before it is registered, and will
+ * be handled correctly once registered.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::register()
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::enqueue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @covers ::print_enqueued_modules()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @covers ::print_enqueued_script_modules()
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function test_wp_enqueue_module_works_before_register() {
- $this->modules->enqueue( 'foo' );
- $this->modules->register( 'foo', '/foo.js' );
- $this->modules->enqueue( 'bar' ); // Not registered.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_wp_enqueue_script_module_works_before_register() {
+ $this->script_modules->enqueue( 'foo' );
+ $this->script_modules->register( 'foo', '/foo.js' );
+ $this->script_modules->enqueue( 'bar' ); // Not registered.
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $enqueued_modules = $this->get_enqueued_modules();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $enqueued_script_modules = $this->get_enqueued_script_modules();
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->assertCount( 1, $enqueued_modules );
- $this->assertStringStartsWith( '/foo.js', $enqueued_modules['foo'] );
- $this->assertFalse( isset( $enqueued_modules['bar'] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->assertCount( 1, $enqueued_script_modules );
+ $this->assertStringStartsWith( '/foo.js', $enqueued_script_modules['foo'] );
+ $this->assertFalse( isset( $enqueued_script_modules['bar'] ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Tests that a module can be dequeued before it is registered and ensures
- * that it is not enqueued after registration.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Tests that a script module can be dequeued before it is registered and
+ * ensures that it is not enqueued after registration.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -161,25 +155,25 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::register()
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::enqueue()
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::dequeue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @covers ::print_enqueued_modules()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @covers ::print_enqueued_script_modules()
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function test_wp_dequeue_module_works_before_register() {
- $this->modules->enqueue( 'foo' );
- $this->modules->enqueue( 'bar' );
- $this->modules->dequeue( 'foo' );
- $this->modules->register( 'foo', '/foo.js' );
- $this->modules->register( 'bar', '/bar.js' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_wp_dequeue_script_module_works_before_register() {
+ $this->script_modules->enqueue( 'foo' );
+ $this->script_modules->enqueue( 'bar' );
+ $this->script_modules->dequeue( 'foo' );
+ $this->script_modules->register( 'foo', '/foo.js' );
+ $this->script_modules->register( 'bar', '/bar.js' );
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $enqueued_modules = $this->get_enqueued_modules();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $enqueued_script_modules = $this->get_enqueued_script_modules();
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->assertCount( 1, $enqueued_modules );
- $this->assertFalse( isset( $enqueued_modules['foo'] ) );
- $this->assertTrue( isset( $enqueued_modules['bar'] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->assertCount( 1, $enqueued_script_modules );
+ $this->assertFalse( isset( $enqueued_script_modules['foo'] ) );
+ $this->assertTrue( isset( $enqueued_script_modules['bar'] ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="cx" style="display: block; padding: 0 10px"> * Tests that dependencies for a registered module are added to the import map
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * when the module is enqueued.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * when the script module is enqueued.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -188,10 +182,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::print_import_map()
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public function test_wp_import_map_dependencies() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->modules->register( 'foo', '/foo.js', array( 'dep' ) );
- $this->modules->register( 'dep', '/dep.js' );
- $this->modules->register( 'no-dep', '/no-dep.js' );
- $this->modules->enqueue( 'foo' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->script_modules->register( 'foo', '/foo.js', array( 'dep' ) );
+ $this->script_modules->register( 'dep', '/dep.js' );
+ $this->script_modules->register( 'no-dep', '/no-dep.js' );
+ $this->script_modules->enqueue( 'foo' );
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $import_map = $this->get_import_map();
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -202,7 +196,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="cx" style="display: block; padding: 0 10px"> * Tests that dependencies are not duplicated in the import map when multiple
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * modules require the same dependency.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * script modules require the same dependency.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -211,11 +205,11 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::print_import_map()
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public function test_wp_import_map_no_duplicate_dependencies() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->modules->register( 'foo', '/foo.js', array( 'dep' ) );
- $this->modules->register( 'bar', '/bar.js', array( 'dep' ) );
- $this->modules->register( 'dep', '/dep.js' );
- $this->modules->enqueue( 'foo' );
- $this->modules->enqueue( 'bar' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->script_modules->register( 'foo', '/foo.js', array( 'dep' ) );
+ $this->script_modules->register( 'bar', '/bar.js', array( 'dep' ) );
+ $this->script_modules->register( 'dep', '/dep.js' );
+ $this->script_modules->enqueue( 'foo' );
+ $this->script_modules->enqueue( 'bar' );
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $import_map = $this->get_import_map();
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -234,7 +228,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::print_import_map()
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public function test_wp_import_map_recursive_dependencies() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->modules->register(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->script_modules->register(
</ins><span class="cx" style="display: block; padding: 0 10px"> 'foo',
</span><span class="cx" style="display: block; padding: 0 10px"> '/foo.js',
</span><span class="cx" style="display: block; padding: 0 10px"> array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -245,7 +239,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> ),
</span><span class="cx" style="display: block; padding: 0 10px"> )
</span><span class="cx" style="display: block; padding: 0 10px"> );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->modules->register(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->script_modules->register(
</ins><span class="cx" style="display: block; padding: 0 10px"> 'static-dep',
</span><span class="cx" style="display: block; padding: 0 10px"> '/static-dep.js',
</span><span class="cx" style="display: block; padding: 0 10px"> array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -259,11 +253,11 @@
</span><span class="cx" style="display: block; padding: 0 10px"> ),
</span><span class="cx" style="display: block; padding: 0 10px"> )
</span><span class="cx" style="display: block; padding: 0 10px"> );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->modules->register( 'dynamic-dep', '/dynamic-dep.js' );
- $this->modules->register( 'nested-static-dep', '/nested-static-dep.js' );
- $this->modules->register( 'nested-dynamic-dep', '/nested-dynamic-dep.js' );
- $this->modules->register( 'no-dep', '/no-dep.js' );
- $this->modules->enqueue( 'foo' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->script_modules->register( 'dynamic-dep', '/dynamic-dep.js' );
+ $this->script_modules->register( 'nested-static-dep', '/nested-static-dep.js' );
+ $this->script_modules->register( 'nested-dynamic-dep', '/nested-dynamic-dep.js' );
+ $this->script_modules->register( 'no-dep', '/no-dep.js' );
+ $this->script_modules->enqueue( 'foo' );
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $import_map = $this->get_import_map();
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -285,10 +279,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::print_import_map()
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public function test_wp_import_map_doesnt_print_if_no_dependencies() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->modules->register( 'foo', '/foo.js' ); // No deps.
- $this->modules->enqueue( 'foo' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->script_modules->register( 'foo', '/foo.js' ); // No deps.
+ $this->script_modules->enqueue( 'foo' );
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $import_map_markup = get_echo( array( $this->modules, 'print_import_map' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $import_map_markup = get_echo( array( $this->script_modules, 'print_import_map' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $this->assertEmpty( $import_map_markup );
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -301,10 +295,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::register()
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::enqueue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @covers ::print_module_preloads()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @covers ::print_script_module_preloads()
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public function test_wp_enqueue_preloaded_static_dependencies() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->modules->register(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->script_modules->register(
</ins><span class="cx" style="display: block; padding: 0 10px"> 'foo',
</span><span class="cx" style="display: block; padding: 0 10px"> '/foo.js',
</span><span class="cx" style="display: block; padding: 0 10px"> array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -315,7 +309,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> ),
</span><span class="cx" style="display: block; padding: 0 10px"> )
</span><span class="cx" style="display: block; padding: 0 10px"> );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->modules->register(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->script_modules->register(
</ins><span class="cx" style="display: block; padding: 0 10px"> 'static-dep',
</span><span class="cx" style="display: block; padding: 0 10px"> '/static-dep.js',
</span><span class="cx" style="display: block; padding: 0 10px"> array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -329,20 +323,20 @@
</span><span class="cx" style="display: block; padding: 0 10px"> ),
</span><span class="cx" style="display: block; padding: 0 10px"> )
</span><span class="cx" style="display: block; padding: 0 10px"> );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->modules->register( 'dynamic-dep', '/dynamic-dep.js' );
- $this->modules->register( 'nested-static-dep', '/nested-static-dep.js' );
- $this->modules->register( 'nested-dynamic-dep', '/nested-dynamic-dep.js' );
- $this->modules->register( 'no-dep', '/no-dep.js' );
- $this->modules->enqueue( 'foo' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->script_modules->register( 'dynamic-dep', '/dynamic-dep.js' );
+ $this->script_modules->register( 'nested-static-dep', '/nested-static-dep.js' );
+ $this->script_modules->register( 'nested-dynamic-dep', '/nested-dynamic-dep.js' );
+ $this->script_modules->register( 'no-dep', '/no-dep.js' );
+ $this->script_modules->enqueue( 'foo' );
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $preloaded_modules = $this->get_preloaded_modules();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $preloaded_script_modules = $this->get_preloaded_script_modules();
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->assertCount( 2, $preloaded_modules );
- $this->assertStringStartsWith( '/static-dep.js', $preloaded_modules['static-dep'] );
- $this->assertStringStartsWith( '/nested-static-dep.js', $preloaded_modules['nested-static-dep'] );
- $this->assertFalse( isset( $preloaded_modules['no-dep'] ) );
- $this->assertFalse( isset( $preloaded_modules['dynamic-dep'] ) );
- $this->assertFalse( isset( $preloaded_modules['nested-dynamic-dep'] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->assertCount( 2, $preloaded_script_modules );
+ $this->assertStringStartsWith( '/static-dep.js', $preloaded_script_modules['static-dep'] );
+ $this->assertStringStartsWith( '/nested-static-dep.js', $preloaded_script_modules['nested-static-dep'] );
+ $this->assertFalse( isset( $preloaded_script_modules['no-dep'] ) );
+ $this->assertFalse( isset( $preloaded_script_modules['dynamic-dep'] ) );
+ $this->assertFalse( isset( $preloaded_script_modules['nested-dynamic-dep'] ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -352,10 +346,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::register()
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::enqueue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @covers ::print_module_preloads()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @covers ::print_script_module_preloads()
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public function test_wp_dont_preload_static_dependencies_of_dynamic_dependencies() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->modules->register(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->script_modules->register(
</ins><span class="cx" style="display: block; padding: 0 10px"> 'foo',
</span><span class="cx" style="display: block; padding: 0 10px"> '/foo.js',
</span><span class="cx" style="display: block; padding: 0 10px"> array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -366,32 +360,32 @@
</span><span class="cx" style="display: block; padding: 0 10px"> ),
</span><span class="cx" style="display: block; padding: 0 10px"> )
</span><span class="cx" style="display: block; padding: 0 10px"> );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->modules->register( 'static-dep', '/static-dep.js' );
- $this->modules->register( 'dynamic-dep', '/dynamic-dep.js', array( 'nested-static-dep' ) );
- $this->modules->register( 'nested-static-dep', '/nested-static-dep.js' );
- $this->modules->register( 'no-dep', '/no-dep.js' );
- $this->modules->enqueue( 'foo' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->script_modules->register( 'static-dep', '/static-dep.js' );
+ $this->script_modules->register( 'dynamic-dep', '/dynamic-dep.js', array( 'nested-static-dep' ) );
+ $this->script_modules->register( 'nested-static-dep', '/nested-static-dep.js' );
+ $this->script_modules->register( 'no-dep', '/no-dep.js' );
+ $this->script_modules->enqueue( 'foo' );
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $preloaded_modules = $this->get_preloaded_modules();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $preloaded_script_modules = $this->get_preloaded_script_modules();
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->assertCount( 1, $preloaded_modules );
- $this->assertStringStartsWith( '/static-dep.js', $preloaded_modules['static-dep'] );
- $this->assertFalse( isset( $preloaded_modules['dynamic-dep'] ) );
- $this->assertFalse( isset( $preloaded_modules['nested-static-dep'] ) );
- $this->assertFalse( isset( $preloaded_modules['no-dep'] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->assertCount( 1, $preloaded_script_modules );
+ $this->assertStringStartsWith( '/static-dep.js', $preloaded_script_modules['static-dep'] );
+ $this->assertFalse( isset( $preloaded_script_modules['dynamic-dep'] ) );
+ $this->assertFalse( isset( $preloaded_script_modules['nested-static-dep'] ) );
+ $this->assertFalse( isset( $preloaded_script_modules['no-dep'] ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Tests that preloaded dependencies don't include enqueued modules.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Tests that preloaded dependencies don't include enqueued script modules.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::register()
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::enqueue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @covers ::print_module_preloads()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @covers ::print_script_module_preloads()
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function test_wp_preloaded_dependencies_filter_enqueued_modules() {
- $this->modules->register(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_wp_preloaded_dependencies_filter_enqueued_script_modules() {
+ $this->script_modules->register(
</ins><span class="cx" style="display: block; padding: 0 10px"> 'foo',
</span><span class="cx" style="display: block; padding: 0 10px"> '/foo.js',
</span><span class="cx" style="display: block; padding: 0 10px"> array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -399,21 +393,21 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 'enqueued-dep',
</span><span class="cx" style="display: block; padding: 0 10px"> )
</span><span class="cx" style="display: block; padding: 0 10px"> );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->modules->register( 'dep', '/dep.js' );
- $this->modules->register( 'enqueued-dep', '/enqueued-dep.js' );
- $this->modules->enqueue( 'foo' );
- $this->modules->enqueue( 'enqueued-dep' ); // Not preloaded.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->script_modules->register( 'dep', '/dep.js' );
+ $this->script_modules->register( 'enqueued-dep', '/enqueued-dep.js' );
+ $this->script_modules->enqueue( 'foo' );
+ $this->script_modules->enqueue( 'enqueued-dep' ); // Not preloaded.
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $preloaded_modules = $this->get_preloaded_modules();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $preloaded_script_modules = $this->get_preloaded_script_modules();
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->assertCount( 1, $preloaded_modules );
- $this->assertTrue( isset( $preloaded_modules['dep'] ) );
- $this->assertFalse( isset( $preloaded_modules['enqueued-dep'] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->assertCount( 1, $preloaded_script_modules );
+ $this->assertTrue( isset( $preloaded_script_modules['dep'] ) );
+ $this->assertFalse( isset( $preloaded_script_modules['enqueued-dep'] ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Tests that enqueued modules with dependants correctly add both the module
- * and its dependencies to the import map.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Tests that enqueued script modules with dependants correctly add both the
+ * script module and its dependencies to the import map.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -421,8 +415,8 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::enqueue()
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::print_import_map()
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function test_wp_enqueued_modules_with_dependants_add_import_map() {
- $this->modules->register(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_wp_enqueued_script_modules_with_dependants_add_import_map() {
+ $this->script_modules->register(
</ins><span class="cx" style="display: block; padding: 0 10px"> 'foo',
</span><span class="cx" style="display: block; padding: 0 10px"> '/foo.js',
</span><span class="cx" style="display: block; padding: 0 10px"> array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -430,10 +424,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 'enqueued-dep',
</span><span class="cx" style="display: block; padding: 0 10px"> )
</span><span class="cx" style="display: block; padding: 0 10px"> );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->modules->register( 'dep', '/dep.js' );
- $this->modules->register( 'enqueued-dep', '/enqueued-dep.js' );
- $this->modules->enqueue( 'foo' );
- $this->modules->enqueue( 'enqueued-dep' ); // Also in the import map.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->script_modules->register( 'dep', '/dep.js' );
+ $this->script_modules->register( 'enqueued-dep', '/enqueued-dep.js' );
+ $this->script_modules->enqueue( 'foo' );
+ $this->script_modules->enqueue( 'enqueued-dep' ); // Also in the import map.
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $import_map = $this->get_import_map();
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -451,7 +445,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::get_versioned_src()
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public function test_get_versioned_src() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $get_versioned_src = new ReflectionMethod( $this->modules, 'get_versioned_src' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $get_versioned_src = new ReflectionMethod( $this->script_modules, 'get_versioned_src' );
</ins><span class="cx" style="display: block; padding: 0 10px"> $get_versioned_src->setAccessible( true );
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $module_with_version = array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -459,7 +453,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 'version' => '1.0',
</span><span class="cx" style="display: block; padding: 0 10px"> );
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $result = $get_versioned_src->invoke( $this->modules, $module_with_version );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $result = $get_versioned_src->invoke( $this->script_modules, $module_with_version );
</ins><span class="cx" style="display: block; padding: 0 10px"> $this->assertEquals( 'http://example.com/module.js?ver=1.0', $result );
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $module_without_version = array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -467,7 +461,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 'version' => null,
</span><span class="cx" style="display: block; padding: 0 10px"> );
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $result = $get_versioned_src->invoke( $this->modules, $module_without_version );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $result = $get_versioned_src->invoke( $this->script_modules, $module_without_version );
</ins><span class="cx" style="display: block; padding: 0 10px"> $this->assertEquals( 'http://example.com/module.js', $result );
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $module_with_wp_version = array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -475,7 +469,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 'version' => false,
</span><span class="cx" style="display: block; padding: 0 10px"> );
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $result = $get_versioned_src->invoke( $this->modules, $module_with_wp_version );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $result = $get_versioned_src->invoke( $this->script_modules, $module_with_wp_version );
</ins><span class="cx" style="display: block; padding: 0 10px"> $this->assertEquals( 'http://example.com/module.js?ver=' . get_bloginfo( 'version' ), $result );
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $module_with_existing_query_string = array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -483,25 +477,25 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 'version' => '1.0',
</span><span class="cx" style="display: block; padding: 0 10px"> );
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $result = $get_versioned_src->invoke( $this->modules, $module_with_existing_query_string );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $result = $get_versioned_src->invoke( $this->script_modules, $module_with_existing_query_string );
</ins><span class="cx" style="display: block; padding: 0 10px"> $this->assertEquals( 'http://example.com/module.js?foo=bar&ver=1.0', $result );
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="cx" style="display: block; padding: 0 10px"> * Tests that the correct version is propagated to the import map, enqueued
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * modules and preloaded modules.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * script modules and preloaded script modules.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::register()
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::enqueue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @covers ::print_enqueued_modules()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @covers ::print_enqueued_script_modules()
</ins><span class="cx" style="display: block; padding: 0 10px"> * @covers ::print_import_map()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @covers ::print_module_preloads()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @covers ::print_script_module_preloads()
</ins><span class="cx" style="display: block; padding: 0 10px"> * @covers ::get_version_query_string()
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public function test_version_is_propagated_correctly() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->modules->register(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->script_modules->register(
</ins><span class="cx" style="display: block; padding: 0 10px"> 'foo',
</span><span class="cx" style="display: block; padding: 0 10px"> '/foo.js',
</span><span class="cx" style="display: block; padding: 0 10px"> array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -509,160 +503,162 @@
</span><span class="cx" style="display: block; padding: 0 10px"> ),
</span><span class="cx" style="display: block; padding: 0 10px"> '1.0'
</span><span class="cx" style="display: block; padding: 0 10px"> );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->modules->register( 'dep', '/dep.js', array(), '2.0' );
- $this->modules->enqueue( 'foo' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->script_modules->register( 'dep', '/dep.js', array(), '2.0' );
+ $this->script_modules->enqueue( 'foo' );
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $enqueued_modules = $this->get_enqueued_modules();
- $this->assertEquals( '/foo.js?ver=1.0', $enqueued_modules['foo'] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $enqueued_script_modules = $this->get_enqueued_script_modules();
+ $this->assertEquals( '/foo.js?ver=1.0', $enqueued_script_modules['foo'] );
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $import_map = $this->get_import_map();
</span><span class="cx" style="display: block; padding: 0 10px"> $this->assertEquals( '/dep.js?ver=2.0', $import_map['dep'] );
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $preloaded_modules = $this->get_preloaded_modules();
- $this->assertEquals( '/dep.js?ver=2.0', $preloaded_modules['dep'] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $preloaded_script_modules = $this->get_preloaded_script_modules();
+ $this->assertEquals( '/dep.js?ver=2.0', $preloaded_script_modules['dep'] );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Tests that it can print the enqueued modules multiple times, and it will
- * only print the modules that have not been printed before.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Tests that it can print the enqueued script modules multiple times, and it
+ * will only print the script modules that have not been printed before.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::register()
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::enqueue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @covers ::print_enqueued_modules()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @covers ::print_enqueued_script_modules()
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function test_print_enqueued_modules_can_be_called_multiple_times() {
- $this->modules->register( 'foo', '/foo.js' );
- $this->modules->register( 'bar', '/bar.js' );
- $this->modules->enqueue( 'foo' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_print_enqueued_script_modules_can_be_called_multiple_times() {
+ $this->script_modules->register( 'foo', '/foo.js' );
+ $this->script_modules->register( 'bar', '/bar.js' );
+ $this->script_modules->enqueue( 'foo' );
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $enqueued_modules = $this->get_enqueued_modules();
- $this->assertCount( 1, $enqueued_modules );
- $this->assertTrue( isset( $enqueued_modules['foo'] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $enqueued_script_modules = $this->get_enqueued_script_modules();
+ $this->assertCount( 1, $enqueued_script_modules );
+ $this->assertTrue( isset( $enqueued_script_modules['foo'] ) );
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->modules->enqueue( 'bar' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->script_modules->enqueue( 'bar' );
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $enqueued_modules = $this->get_enqueued_modules();
- $this->assertCount( 1, $enqueued_modules );
- $this->assertTrue( isset( $enqueued_modules['bar'] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $enqueued_script_modules = $this->get_enqueued_script_modules();
+ $this->assertCount( 1, $enqueued_script_modules );
+ $this->assertTrue( isset( $enqueued_script_modules['bar'] ) );
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $enqueued_modules = $this->get_enqueued_modules();
- $this->assertCount( 0, $enqueued_modules );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $enqueued_script_modules = $this->get_enqueued_script_modules();
+ $this->assertCount( 0, $enqueued_script_modules );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Tests that it can print the preloaded modules multiple times, and it will
- * only print the modules that have not been printed before.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Tests that it can print the preloaded script modules multiple times, and it
+ * will only print the script modules that have not been printed before.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::register()
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::enqueue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @covers ::print_module_preloads()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @covers ::print_script_module_preloads()
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function test_print_preloaded_modules_can_be_called_multiple_times() {
- $this->modules->register( 'foo', '/foo.js', array( 'static-dep-1', 'static-dep-2' ) );
- $this->modules->register( 'bar', '/bar.js', array( 'static-dep-3' ) );
- $this->modules->register( 'static-dep-1', '/static-dep-1.js' );
- $this->modules->register( 'static-dep-3', '/static-dep-3.js' );
- $this->modules->enqueue( 'foo' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_print_preloaded_script_modules_can_be_called_multiple_times() {
+ $this->script_modules->register( 'foo', '/foo.js', array( 'static-dep-1', 'static-dep-2' ) );
+ $this->script_modules->register( 'bar', '/bar.js', array( 'static-dep-3' ) );
+ $this->script_modules->register( 'static-dep-1', '/static-dep-1.js' );
+ $this->script_modules->register( 'static-dep-3', '/static-dep-3.js' );
+ $this->script_modules->enqueue( 'foo' );
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $preloaded_modules = $this->get_preloaded_modules();
- $this->assertCount( 1, $preloaded_modules );
- $this->assertTrue( isset( $preloaded_modules['static-dep-1'] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $preloaded_script_modules = $this->get_preloaded_script_modules();
+ $this->assertCount( 1, $preloaded_script_modules );
+ $this->assertTrue( isset( $preloaded_script_modules['static-dep-1'] ) );
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->modules->register( 'static-dep-2', '/static-dep-2.js' );
- $this->modules->enqueue( 'bar' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->script_modules->register( 'static-dep-2', '/static-dep-2.js' );
+ $this->script_modules->enqueue( 'bar' );
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $preloaded_modules = $this->get_preloaded_modules();
- $this->assertCount( 2, $preloaded_modules );
- $this->assertTrue( isset( $preloaded_modules['static-dep-2'] ) );
- $this->assertTrue( isset( $preloaded_modules['static-dep-3'] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $preloaded_script_modules = $this->get_preloaded_script_modules();
+ $this->assertCount( 2, $preloaded_script_modules );
+ $this->assertTrue( isset( $preloaded_script_modules['static-dep-2'] ) );
+ $this->assertTrue( isset( $preloaded_script_modules['static-dep-3'] ) );
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $preloaded_modules = $this->get_preloaded_modules();
- $this->assertCount( 0, $preloaded_modules );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $preloaded_script_modules = $this->get_preloaded_script_modules();
+ $this->assertCount( 0, $preloaded_script_modules );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Tests that a module is not registered when calling enqueue without a valid
- * src.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Tests that a script module is not registered when calling enqueue without a
+ * valid src.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::enqueue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @covers ::print_enqueued_modules()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @covers ::print_enqueued_script_modules()
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function test_wp_enqueue_module_doesnt_register_without_a_valid_src() {
- $this->modules->enqueue( 'foo' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_wp_enqueue_script_module_doesnt_register_without_a_valid_src() {
+ $this->script_modules->enqueue( 'foo' );
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $enqueued_modules = $this->get_enqueued_modules();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $enqueued_script_modules = $this->get_enqueued_script_modules();
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->assertCount( 0, $enqueued_modules );
- $this->assertFalse( isset( $enqueued_modules['foo'] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->assertCount( 0, $enqueued_script_modules );
+ $this->assertFalse( isset( $enqueued_script_modules['foo'] ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Tests that a module is registered when calling enqueue with a valid src.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Tests that a script module is registered when calling enqueue with a valid
+ * src.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::enqueue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @covers ::print_enqueued_modules()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @covers ::print_enqueued_script_modules()
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function test_wp_enqueue_module_registers_with_valid_src() {
- $this->modules->enqueue( 'foo', '/foo.js' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_wp_enqueue_script_module_registers_with_valid_src() {
+ $this->script_modules->enqueue( 'foo', '/foo.js' );
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $enqueued_modules = $this->get_enqueued_modules();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $enqueued_script_modules = $this->get_enqueued_script_modules();
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->assertCount( 1, $enqueued_modules );
- $this->assertStringStartsWith( '/foo.js', $enqueued_modules['foo'] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->assertCount( 1, $enqueued_script_modules );
+ $this->assertStringStartsWith( '/foo.js', $enqueued_script_modules['foo'] );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Tests that a module is registered when calling enqueue with a valid src the
- * second time.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Tests that a script module is registered when calling enqueue with a valid
+ * src the second time.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::enqueue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @covers ::print_enqueued_modules()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @covers ::print_enqueued_script_modules()
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function test_wp_enqueue_module_registers_with_valid_src_the_second_time() {
- $this->modules->enqueue( 'foo' ); // Not valid src.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_wp_enqueue_script_module_registers_with_valid_src_the_second_time() {
+ $this->script_modules->enqueue( 'foo' ); // Not valid src.
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $enqueued_modules = $this->get_enqueued_modules();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $enqueued_script_modules = $this->get_enqueued_script_modules();
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->assertCount( 0, $enqueued_modules );
- $this->assertFalse( isset( $enqueued_modules['foo'] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->assertCount( 0, $enqueued_script_modules );
+ $this->assertFalse( isset( $enqueued_script_modules['foo'] ) );
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->modules->enqueue( 'foo', '/foo.js' ); // Valid src.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->script_modules->enqueue( 'foo', '/foo.js' ); // Valid src.
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $enqueued_modules = $this->get_enqueued_modules();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $enqueued_script_modules = $this->get_enqueued_script_modules();
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->assertCount( 1, $enqueued_modules );
- $this->assertStringStartsWith( '/foo.js', $enqueued_modules['foo'] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->assertCount( 1, $enqueued_script_modules );
+ $this->assertStringStartsWith( '/foo.js', $enqueued_script_modules['foo'] );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Tests that a module is registered with all the params when calling enqueue.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Tests that a script module is registered with all the params when calling
+ * enqueue.
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @ticket 56313
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::register()
</span><span class="cx" style="display: block; padding: 0 10px"> * @covers ::enqueue()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @covers ::print_enqueued_modules()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @covers ::print_enqueued_script_modules()
</ins><span class="cx" style="display: block; padding: 0 10px"> * @covers ::print_import_map()
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function test_wp_enqueue_module_registers_all_params() {
- $this->modules->enqueue( 'foo', '/foo.js', array( 'dep' ), '1.0' );
- $this->modules->register( 'dep', '/dep.js' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_wp_enqueue_script_module_registers_all_params() {
+ $this->script_modules->enqueue( 'foo', '/foo.js', array( 'dep' ), '1.0' );
+ $this->script_modules->register( 'dep', '/dep.js' );
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $enqueued_modules = $this->get_enqueued_modules();
- $import_map = $this->get_import_map();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $enqueued_script_modules = $this->get_enqueued_script_modules();
+ $import_map = $this->get_import_map();
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->assertCount( 1, $enqueued_modules );
- $this->assertEquals( '/foo.js?ver=1.0', $enqueued_modules['foo'] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->assertCount( 1, $enqueued_script_modules );
+ $this->assertEquals( '/foo.js?ver=1.0', $enqueued_script_modules['foo'] );
</ins><span class="cx" style="display: block; padding: 0 10px"> $this->assertCount( 1, $import_map );
</span><span class="cx" style="display: block; padding: 0 10px"> $this->assertStringStartsWith( '/dep.js', $import_map['dep'] );
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span></span></pre>
</div>
</div>
</body>
</html>