<!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>[60253] trunk/tests/phpunit/tests: Build/Test Tools: Increase shared user fixtures following switch to bcrypt hashing.</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/60253">60253</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/60253","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>johnbillion</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2025-05-26 14:34:12 +0000 (Mon, 26 May 2025)</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'>Build/Test Tools: Increase shared user fixtures following switch to bcrypt hashing.

User creation is somewhat more expensive since switching the default password hashing algorithm to bcrypt in 6.8. This speeds up the tests by making more use of shared user fixtures, thus reducing the number of users that are created during tests.

Props peterwilsoncc.

See <a href="https://core.trac.wordpress.org/ticket/63026">#63026</a></pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunktestsphpunittestsadminincludesPluginphp">trunk/tests/phpunit/tests/admin/includesPlugin.php</a></li>
<li><a href="#trunktestsphpunittestsadminincludesTemplatephp">trunk/tests/phpunit/tests/admin/includesTemplate.php</a></li>
<li><a href="#trunktestsphpunittestsajaxwpAjaxSendAttachmentToEditorphp">trunk/tests/phpunit/tests/ajax/wpAjaxSendAttachmentToEditor.php</a></li>
<li><a href="#trunktestsphpunittestsajaxwpCustomizeNavMenusphp">trunk/tests/phpunit/tests/ajax/wpCustomizeNavMenus.php</a></li>
<li><a href="#trunktestsphpunittestsauthphp">trunk/tests/phpunit/tests/auth.php</a></li>
<li><a href="#trunktestsphpunittestscommentwpHandleCommentSubmissionphp">trunk/tests/phpunit/tests/comment/wpHandleCommentSubmission.php</a></li>
<li><a href="#trunktestsphpunittestscustomizecontrolphp">trunk/tests/phpunit/tests/customize/control.php</a></li>
<li><a href="#trunktestsphpunittestscustomizecustomcsssettingphp">trunk/tests/phpunit/tests/customize/custom-css-setting.php</a></li>
<li><a href="#trunktestsphpunittestscustomizemanagerphp">trunk/tests/phpunit/tests/customize/manager.php</a></li>
<li><a href="#trunktestsphpunittestscustomizenavmenuitemsettingphp">trunk/tests/phpunit/tests/customize/nav-menu-item-setting.php</a></li>
<li><a href="#trunktestsphpunittestscustomizenavmenusettingphp">trunk/tests/phpunit/tests/customize/nav-menu-setting.php</a></li>
<li><a href="#trunktestsphpunittestscustomizenavmenusphp">trunk/tests/phpunit/tests/customize/nav-menus.php</a></li>
<li><a href="#trunktestsphpunittestscustomizepanelphp">trunk/tests/phpunit/tests/customize/panel.php</a></li>
<li><a href="#trunktestsphpunittestscustomizeselectiverefreshajaxphp">trunk/tests/phpunit/tests/customize/selective-refresh-ajax.php</a></li>
<li><a href="#trunktestsphpunittestscustomizesettingphp">trunk/tests/phpunit/tests/customize/setting.php</a></li>
<li><a href="#trunktestsphpunittestscustomizewidgetsphp">trunk/tests/phpunit/tests/customize/widgets.php</a></li>
<li><a href="#trunktestsphpunittestsgeneraltemplatephp">trunk/tests/phpunit/tests/general/template.php</a></li>
<li><a href="#trunktestsphpunittestsl10ngetUserLocalephp">trunk/tests/phpunit/tests/l10n/getUserLocale.php</a></li>
<li><a href="#trunktestsphpunittestsl10nphp">trunk/tests/phpunit/tests/l10n.php</a></li>
<li><a href="#trunktestsphpunittestsmetaphp">trunk/tests/phpunit/tests/meta.php</a></li>
<li><a href="#trunktestsphpunittestsoembedcontrollerphp">trunk/tests/phpunit/tests/oembed/controller.php</a></li>
<li><a href="#trunktestsphpunittestsoembedwpOembedphp">trunk/tests/phpunit/tests/oembed/wpOembed.php</a></li>
<li><a href="#trunktestsphpunittestspostgetPagesphp">trunk/tests/phpunit/tests/post/getPages.php</a></li>
<li><a href="#trunktestsphpunittestspostgetPostsByAuthorSqlphp">trunk/tests/phpunit/tests/post/getPostsByAuthorSql.php</a></li>
<li><a href="#trunktestsphpunittestsqueryconditionalsphp">trunk/tests/phpunit/tests/query/conditionals.php</a></li>
<li><a href="#trunktestsphpunitteststaxonomyphp">trunk/tests/phpunit/tests/taxonomy.php</a></li>
<li><a href="#trunktestsphpunittestsurlphp">trunk/tests/phpunit/tests/url.php</a></li>
<li><a href="#trunktestsphpunittestsuserphp">trunk/tests/phpunit/tests/user.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunktestsphpunittestsadminincludesPluginphp"></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/admin/includesPlugin.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/admin/includesPlugin.php        2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/admin/includesPlugin.php  2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4,7 +4,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * @group admin
</span><span class="cx" style="display: block; padding: 0 10px">  */
</span><span class="cx" style="display: block; padding: 0 10px"> class Tests_Admin_IncludesPlugin extends WP_UnitTestCase {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+       /**
+        * Admin user ID.
+        *
+        * @var int $admin_id
+        */
+       public static $admin_id;
+
</ins><span class="cx" style="display: block; padding: 0 10px">         public static function wpSetUpBeforeClass( $factory ) {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                self::$admin_id = $factory->user->create( array( 'role' => 'administrator' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">                 self::_back_up_mu_plugins();
</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">@@ -37,7 +46,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_menu_page_url() {
</span><span class="cx" style="display: block; padding: 0 10px">                $current_user = get_current_user_id();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$admin_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 update_option( 'siteurl', 'http://example.com' );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Add some pages.
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -81,7 +90,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                global $submenu;
</span><span class="cx" style="display: block; padding: 0 10px">                global $menu;
</span><span class="cx" style="display: block; padding: 0 10px">                $current_user = get_current_user_id();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $admin_user   = self::factory()->user->create( array( 'role' => 'administrator' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $admin_user   = self::$admin_id;
</ins><span class="cx" style="display: block; padding: 0 10px">                 wp_set_current_user( $admin_user );
</span><span class="cx" style="display: block; padding: 0 10px">                set_current_screen( 'dashboard' );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -134,7 +143,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $menu    = array();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $current_user = get_current_user_id();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $admin_user   = self::factory()->user->create( array( 'role' => 'administrator' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $admin_user   = self::$admin_id;
</ins><span class="cx" style="display: block; padding: 0 10px">                 wp_set_current_user( $admin_user );
</span><span class="cx" style="display: block; padding: 0 10px">                set_current_screen( 'dashboard' );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -283,7 +292,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $submenu      = array();
</span><span class="cx" style="display: block; padding: 0 10px">                $menu         = array();
</span><span class="cx" style="display: block; padding: 0 10px">                $current_user = get_current_user_id();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $admin_user   = self::factory()->user->create( array( 'role' => 'administrator' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $admin_user   = self::$admin_id;
</ins><span class="cx" style="display: block; padding: 0 10px">                 wp_set_current_user( $admin_user );
</span><span class="cx" style="display: block; padding: 0 10px">                set_current_screen( 'dashboard' );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -316,7 +325,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $submenu      = array();
</span><span class="cx" style="display: block; padding: 0 10px">                $menu         = array();
</span><span class="cx" style="display: block; padding: 0 10px">                $current_user = get_current_user_id();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $admin_user   = self::factory()->user->create( array( 'role' => 'administrator' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $admin_user   = self::$admin_id;
</ins><span class="cx" style="display: block; padding: 0 10px">                 wp_set_current_user( $admin_user );
</span><span class="cx" style="display: block; padding: 0 10px">                set_current_screen( 'dashboard' );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -344,7 +353,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $submenu      = array();
</span><span class="cx" style="display: block; padding: 0 10px">                $menu         = array();
</span><span class="cx" style="display: block; padding: 0 10px">                $current_user = get_current_user_id();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $admin_user   = self::factory()->user->create( array( 'role' => 'administrator' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $admin_user   = self::$admin_id;
</ins><span class="cx" style="display: block; padding: 0 10px">                 wp_set_current_user( $admin_user );
</span><span class="cx" style="display: block; padding: 0 10px">                set_current_screen( 'dashboard' );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span></span></pre></div>
<a id="trunktestsphpunittestsadminincludesTemplatephp"></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/admin/includesTemplate.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/admin/includesTemplate.php      2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/admin/includesTemplate.php        2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3,7 +3,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * @group admin
</span><span class="cx" style="display: block; padding: 0 10px">  */
</span><span class="cx" style="display: block; padding: 0 10px"> class Tests_Admin_IncludesTemplate extends WP_UnitTestCase {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        /**
+        * Editor user ID.
+        *
+        * @var int $editor_id
+        */
+       public static $editor_id;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
+               self::$editor_id = $factory->user->create( array( 'role' => 'editor' ) );
+       }
+
</ins><span class="cx" style="display: block; padding: 0 10px">         /**
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 51137
</span><span class="cx" style="display: block; padding: 0 10px">         * @dataProvider data_wp_terms_checklist_with_selected_cats
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -64,7 +74,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                wp_set_object_terms( $post->ID, $term['term_id'], 'wptests_tax_1' );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Test that get_inline_data() has `post_category` div containing the assigned term.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'editor' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$editor_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 get_inline_data( $post );
</span><span class="cx" style="display: block; padding: 0 10px">                $this->expectOutputRegex( '/<div class="post_category" id="wptests_tax_1_' . $post->ID . '">' . $term['term_id'] . '<\/div>/' );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -90,7 +100,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                wp_set_object_terms( $post->ID, $term['term_id'], 'wptests_tax_1' );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Test that get_inline_data() has `tags_input` div containing the assigned term.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'editor' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$editor_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 get_inline_data( $post );
</span><span class="cx" style="display: block; padding: 0 10px">                $this->expectOutputRegex( '/<div class="tags_input" id="wptests_tax_1_' . $post->ID . '">Test<\/div>/' );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span></span></pre></div>
<a id="trunktestsphpunittestsajaxwpAjaxSendAttachmentToEditorphp"></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/ajax/wpAjaxSendAttachmentToEditor.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/ajax/wpAjaxSendAttachmentToEditor.php   2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/ajax/wpAjaxSendAttachmentToEditor.php     2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14,6 +14,28 @@
</span><span class="cx" style="display: block; padding: 0 10px"> class Tests_Ajax_wpAjaxSendAttachmentToEditor extends WP_Ajax_UnitTestCase {
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         * Shared user ID for the tests.
+        *
+        * @var int
+        */
+       public static $user_id = 0;
+
+       /**
+        * Set up shared fixtures.
+        *
+        * @param WP_UnitTest_Factory $factory
+        */
+       public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
+               self::$user_id = $factory->user->create(
+                       array(
+                               'role'       => 'administrator',
+                               'user_login' => 'user_36578_administrator',
+                               'user_email' => 'user_36578_administrator@example.com',
+                       )
+               );
+       }
+
+       /**
</ins><span class="cx" style="display: block; padding: 0 10px">          * @ticket 36578
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::get_image_send_to_editor
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -105,13 +127,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_wp_ajax_set_attachment_thumbnail_success() {
</span><span class="cx" style="display: block; padding: 0 10px">                // Become an administrator.
</span><span class="cx" style="display: block; padding: 0 10px">                $post    = $_POST;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $user_id = self::factory()->user->create(
-                       array(
-                               'role'       => 'administrator',
-                               'user_login' => 'user_36578_administrator',
-                               'user_email' => 'user_36578_administrator@example.com',
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $user_id = self::$user_id;
</ins><span class="cx" style="display: block; padding: 0 10px">                 wp_set_current_user( $user_id );
</span><span class="cx" style="display: block; padding: 0 10px">                $_POST = array_merge( $_POST, $post );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -151,13 +167,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_wp_ajax_set_attachment_thumbnail_missing_nonce() {
</span><span class="cx" style="display: block; padding: 0 10px">                // Become an administrator.
</span><span class="cx" style="display: block; padding: 0 10px">                $post    = $_POST;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $user_id = self::factory()->user->create(
-                       array(
-                               'role'       => 'administrator',
-                               'user_login' => 'user_36578_administrator',
-                               'user_email' => 'user_36578_administrator@example.com',
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $user_id = self::$user_id;
</ins><span class="cx" style="display: block; padding: 0 10px">                 wp_set_current_user( $user_id );
</span><span class="cx" style="display: block; padding: 0 10px">                $_POST = array_merge( $_POST, $post );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span></span></pre></div>
<a id="trunktestsphpunittestsajaxwpCustomizeNavMenusphp"></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/ajax/wpCustomizeNavMenus.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/ajax/wpCustomizeNavMenus.php    2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/ajax/wpCustomizeNavMenus.php      2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -38,6 +38,26 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public static $terms;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+       /**
+        * Admin user ID.
+        *
+        * @var int
+        */
+       public static $admin_user_id = 0;
+
+       /**
+        * User IDs keyed by role.
+        *
+        * @var int[]
+        */
+       public static $user_ids = array();
+
+       /**
+        * Set up shared fixtures.
+        *
+        * @param WP_UnitTest_Factory $factory The factory.
+        */
</ins><span class="cx" style="display: block; padding: 0 10px">         public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
</span><span class="cx" style="display: block; padding: 0 10px">                // Make some post objects.
</span><span class="cx" style="display: block; padding: 0 10px">                self::$posts = $factory->post->create_many( 5 );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -45,6 +65,13 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Some terms too.
</span><span class="cx" style="display: block; padding: 0 10px">                self::$terms = $factory->term->create_many( 5 );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               // Create an admin user.
+               self::$admin_user_id = $factory->user->create( array( 'role' => 'administrator' ) );
+
+               foreach ( array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ) as $role ) {
+                       self::$user_ids[ $role ] = $factory->user->create( array( 'role' => $role ) );
+               }
</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">@@ -53,7 +80,7 @@
</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><span class="cx" style="display: block; padding: 0 10px">                require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$admin_user_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 global $wp_customize;
</span><span class="cx" style="display: block; padding: 0 10px">                $this->wp_customize = new WP_Customize_Manager();
</span><span class="cx" style="display: block; padding: 0 10px">                $wp_customize       = $this->wp_customize;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -91,7 +118,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        $this->expectExceptionMessage( '-1' );
</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">-                wp_set_current_user( self::factory()->user->create( array( 'role' => $role ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$user_ids[ $role ] );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $_POST = array(
</span><span class="cx" style="display: block; padding: 0 10px">                        'action'                => 'load-available-menu-items-customizer',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -485,7 +512,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        $this->expectExceptionMessage( '-1' );
</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">-                wp_set_current_user( self::factory()->user->create( array( 'role' => $role ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$user_ids[ $role ] );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $_POST = array(
</span><span class="cx" style="display: block; padding: 0 10px">                        'action'                => 'search-available-menu-items-customizer',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -705,7 +732,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertSame( 'bad_nonce', $response['data'] );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Bad nonce.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'subscriber' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$user_ids['subscriber'] );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $_POST                = wp_slash(
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="cx" style="display: block; padding: 0 10px">                                'customize-menus-nonce' => wp_create_nonce( 'customize-menus' ),
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -718,7 +745,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertSame( 'customize_not_allowed', $response['data'] );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Missing params.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$user_ids['administrator'] );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $_POST                = wp_slash(
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="cx" style="display: block; padding: 0 10px">                                'customize-menus-nonce' => wp_create_nonce( 'customize-menus' ),
</span></span></pre></div>
<a id="trunktestsphpunittestsauthphp"></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/auth.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/auth.php        2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/auth.php  2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1579,12 +1579,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::wp_validate_application_password
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_application_password_authentication() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $user_id = self::factory()->user->create(
-                       array(
-                               'user_login' => 'http_auth_login',
-                               'user_pass'  => 'http_auth_pass', // Shouldn't be allowed for API login.
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $user_id = self::$_user->ID;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Create a new app-only password.
</span><span class="cx" style="display: block; padding: 0 10px">                list( $user_app_password, $item ) = WP_Application_Passwords::create_new_application_password( $user_id, array( 'name' => 'phpunit' ) );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1594,8 +1589,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                add_filter( 'wp_is_application_passwords_available', '__return_true' );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Fake an HTTP Auth request with the regular account password first.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $_SERVER['PHP_AUTH_USER'] = 'http_auth_login';
-               $_SERVER['PHP_AUTH_PW']   = 'http_auth_pass';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $_SERVER['PHP_AUTH_USER'] = self::USER_LOGIN;
+               $_SERVER['PHP_AUTH_PW']   = self::USER_PASS;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertNull(
</span><span class="cx" style="display: block; padding: 0 10px">                        wp_validate_application_password( null ),
</span></span></pre></div>
<a id="trunktestsphpunittestscommentwpHandleCommentSubmissionphp"></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/comment/wpHandleCommentSubmission.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/comment/wpHandleCommentSubmission.php   2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/comment/wpHandleCommentSubmission.php     2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9,6 +9,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        protected static $post;
</span><span class="cx" style="display: block; padding: 0 10px">        protected static $author_id;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        protected static $author_id2;
</ins><span class="cx" style="display: block; padding: 0 10px">         protected static $editor_id;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        protected $preprocess_comment_data = array();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22,6 +23,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><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                self::$author_id2 = $factory->user->create(
+                       array(
+                               'role'     => 'author',
+                               'user_url' => 'http://user.example.org',
+                       )
+               );
+
</ins><span class="cx" style="display: block; padding: 0 10px">                 self::$editor_id = $factory->user->create(
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="cx" style="display: block; padding: 0 10px">                                'role' => 'editor',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -223,11 +231,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_submitting_valid_comment_as_logged_in_user_succeeds() {
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $user = self::factory()->user->create_and_get(
-                       array(
-                               'user_url' => 'http://user.example.org',
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $user = get_user_by( 'id', self::$author_id2 );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                wp_set_current_user( $user->ID );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -314,11 +318,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $error = 'comment_id_not_found';
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $user = self::factory()->user->create_and_get(
-                       array(
-                               'role' => 'author',
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $user = get_user_by( 'id', self::$author_id2 );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                wp_set_current_user( $user->ID );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -343,11 +343,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $error = 'comment_id_not_found';
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $user = self::factory()->user->create_and_get(
-                       array(
-                               'role' => 'author',
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $user = get_user_by( 'id', self::$author_id2 );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                wp_set_current_user( $user->ID );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -834,12 +830,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 36901
</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_comments_flood_user_is_admin() {
-               $user = self::factory()->user->create_and_get(
-                       array(
-                               'role' => 'administrator',
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function test_comments_flood_user_can_moderate_comments() {
+               $user = get_user_by( 'id', self::$editor_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 wp_set_current_user( $user->ID );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $data          = array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -853,8 +845,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $data['comment'] = 'Wow! I am quick!';
</span><span class="cx" style="display: block; padding: 0 10px">                $second_comment  = wp_handle_comment_submission( $data );
</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->assertNotWPError( $second_comment );
-               $this->assertSame( (string) self::$post->ID, $second_comment->comment_post_ID );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertTrue( current_user_can( 'moderate_comments' ), 'Test user should have the moderate_comments capability' );
+               $this->assertNotWPError( $second_comment, 'Second comment should not trigger comment flooding error.' );
+               $this->assertSame( (string) self::$post->ID, $second_comment->comment_post_ID, 'Second comment should be made against initial post.' );
</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></pre></div>
<a id="trunktestsphpunittestscustomizecontrolphp"></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/customize/control.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/customize/control.php   2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/customize/control.php     2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18,11 +18,27 @@
</span><span class="cx" style="display: block; padding: 0 10px">        public $wp_customize;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         * Shared user ID for the tests.
+
+        * @var int
+        */
+       public static $user_id = 0;
+
+       /**
+        * Set up shared fixtures.
+        *
+        * @param WP_UnitTest_Factory $factory Factory.
+        */
+       public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
+               self::$user_id = $factory->user->create( array( 'role' => 'administrator' ) );
+       }
+
+       /**
</ins><span class="cx" style="display: block; padding: 0 10px">          * Set up.
</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">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$user_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
</span><span class="cx" style="display: block; padding: 0 10px">                $GLOBALS['wp_customize'] = new WP_Customize_Manager();
</span><span class="cx" style="display: block; padding: 0 10px">                $this->wp_customize      = $GLOBALS['wp_customize'];
</span></span></pre></div>
<a id="trunktestsphpunittestscustomizecustomcsssettingphp"></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/customize/custom-css-setting.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/customize/custom-css-setting.php        2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/customize/custom-css-setting.php  2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -23,25 +23,41 @@
</span><span class="cx" style="display: block; padding: 0 10px">        public $setting;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         * The user ID to use for the tests.
+        *
+        * @var int
+        */
+       public static $user_id = 0;
+
+       /**
</ins><span class="cx" style="display: block; padding: 0 10px">          * Set up the test case.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @see WP_UnitTestCase_Base::set_up()
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @see WP_UnitTestCase::set_up()
</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 set_up() {
-               parent::set_up();
-               require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
-
-               $user_id = self::factory()->user->create(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
+               // Create a user to use for the tests.
+               self::$user_id = $factory->user->create(
</ins><span class="cx" style="display: block; padding: 0 10px">                         array(
</span><span class="cx" style="display: block; padding: 0 10px">                                'role' => 'administrator',
</span><span class="cx" style="display: block; padding: 0 10px">                        )
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                 if ( is_multisite() ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        grant_super_admin( $user_id );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 grant_super_admin( self::$user_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        }
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( $user_id );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ /**
+        * Set up the test case.
+        *
+        * @see WP_UnitTestCase_Base::set_up()
+        */
+       public function set_up() {
+               parent::set_up();
+               require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                wp_set_current_user( self::$user_id );
+
</ins><span class="cx" style="display: block; padding: 0 10px">                 global $wp_customize;
</span><span class="cx" style="display: block; padding: 0 10px">                $this->wp_customize = new WP_Customize_Manager();
</span><span class="cx" style="display: block; padding: 0 10px">                $wp_customize       = $this->wp_customize;
</span></span></pre></div>
<a id="trunktestsphpunittestscustomizemanagerphp"></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/customize/manager.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/customize/manager.php   2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/customize/manager.php     2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -27,6 +27,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">        protected static $admin_user_id;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         * Second admin user ID.
+        *
+        * @var int
+        */
+       protected static $other_admin_user_id;
+
+       /**
</ins><span class="cx" style="display: block; padding: 0 10px">          * Subscriber user ID.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @var int
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -46,8 +53,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @param WP_UnitTest_Factory $factory Factory.
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                self::$subscriber_user_id = $factory->user->create( array( 'role' => 'subscriber' ) );
-               self::$admin_user_id      = $factory->user->create( array( 'role' => 'administrator' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         self::$subscriber_user_id  = $factory->user->create( array( 'role' => 'subscriber' ) );
+               self::$admin_user_id       = $factory->user->create( array( 'role' => 'administrator' ) );
+               self::$other_admin_user_id = $factory->user->create( array( 'role' => 'administrator' ) );
</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">@@ -153,7 +161,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_constructor_deferred_changeset_uuid() {
</span><span class="cx" style="display: block; padding: 0 10px">                wp_set_current_user( self::$admin_user_id );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $other_admin_user_id = self::factory()->user->create( array( 'role' => 'admin' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $other_admin_user_id = self::$other_admin_user_id;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $data = array(
</span><span class="cx" style="display: block; padding: 0 10px">                        'blogname' => array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1254,7 +1262,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_save_changeset_post_without_kses_corrupting_json() {
</span><span class="cx" style="display: block; padding: 0 10px">                global $wp_customize;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $lesser_admin_user_id = self::factory()->user->create( array( 'role' => 'administrator' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $lesser_admin_user_id = self::$other_admin_user_id;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $uuid         = wp_generate_uuid4();
</span><span class="cx" style="display: block; padding: 0 10px">                $wp_customize = new WP_Customize_Manager(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1499,7 +1507,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                add_theme_support( 'custom-background' );
</span><span class="cx" style="display: block; padding: 0 10px">                wp_set_current_user( self::$admin_user_id );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $other_admin_user_id = self::factory()->user->create( array( 'role' => 'administrator' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $other_admin_user_id = self::$other_admin_user_id;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $uuid         = wp_generate_uuid4();
</span><span class="cx" style="display: block; padding: 0 10px">                $wp_customize = $this->create_test_manager( $uuid );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1714,7 +1722,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                add_theme_support( 'custom-background' );
</span><span class="cx" style="display: block; padding: 0 10px">                wp_set_current_user( self::$admin_user_id );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $other_admin_user_id = self::factory()->user->create( array( 'role' => 'administrator' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $other_admin_user_id = self::$other_admin_user_id;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $uuid         = wp_generate_uuid4();
</span><span class="cx" style="display: block; padding: 0 10px">                $wp_customize = $this->create_test_manager( $uuid );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1877,7 +1885,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $r = $wp_customize->save_changeset_post(
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="cx" style="display: block; padding: 0 10px">                                'autosave' => true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                'user_id'  => self::factory()->user->create( array( 'role' => 'administrator' ) ),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         'user_id'  => self::$other_admin_user_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">                $this->assertSame( 'illegal_autosave_with_non_current_user', $r->get_error_code() );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3009,7 +3017,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @see WP_Customize_Manager::set_return_url()
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_return_url() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'author' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$subscriber_user_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $this->assertSame( home_url( '/' ), $this->manager->get_return_url() );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                wp_set_current_user( self::$admin_user_id );
</span></span></pre></div>
<a id="trunktestsphpunittestscustomizenavmenuitemsettingphp"></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/customize/nav-menu-item-setting.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/customize/nav-menu-item-setting.php     2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/customize/nav-menu-item-setting.php       2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14,6 +14,22 @@
</span><span class="cx" style="display: block; padding: 0 10px">        public $wp_customize;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         * ID of the administrator user.
+        *
+        * @var int
+        */
+       public static $administrator_id;
+
+       /**
+        * Set up the shared fixture.
+        *
+        * @param WP_UnitTest_Factory $factory Factory instance.
+        */
+       public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
+               self::$administrator_id = $factory->user->create( array( 'role' => 'administrator' ) );
+       }
+
+       /**
</ins><span class="cx" style="display: block; padding: 0 10px">          * Set up a test case.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @see WP_UnitTestCase_Base::set_up()
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21,7 +37,7 @@
</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><span class="cx" style="display: block; padding: 0 10px">                require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$administrator_id );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                global $wp_customize;
</span><span class="cx" style="display: block; padding: 0 10px">                $this->wp_customize = new WP_Customize_Manager();
</span></span></pre></div>
<a id="trunktestsphpunittestscustomizenavmenusettingphp"></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/customize/nav-menu-setting.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/customize/nav-menu-setting.php  2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/customize/nav-menu-setting.php    2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15,6 +15,22 @@
</span><span class="cx" style="display: block; padding: 0 10px">        public $wp_customize;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         * ID of the administrator user.
+        *
+        * @var int
+        */
+       public static $administrator_id;
+
+       /**
+        * Set up the shared fixture.
+        *
+        * @param WP_UnitTest_Factory $factory Factory instance.
+        */
+       public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
+               self::$administrator_id = $factory->user->create( array( 'role' => 'administrator' ) );
+       }
+
+       /**
</ins><span class="cx" style="display: block; padding: 0 10px">          * Set up a test case.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @see WP_UnitTestCase_Base::set_up()
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22,7 +38,7 @@
</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><span class="cx" style="display: block; padding: 0 10px">                require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$administrator_id );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                global $wp_customize;
</span><span class="cx" style="display: block; padding: 0 10px">                $this->wp_customize = new WP_Customize_Manager();
</span></span></pre></div>
<a id="trunktestsphpunittestscustomizenavmenusphp"></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/customize/nav-menus.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/customize/nav-menus.php 2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/customize/nav-menus.php   2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15,6 +15,22 @@
</span><span class="cx" style="display: block; padding: 0 10px">        public $wp_customize;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         * ID of the administrator user.
+        *
+        * @var int
+        */
+       public static $administrator_id;
+
+       /**
+        * Set up the shared fixture.
+        *
+        * @param WP_UnitTest_Factory $factory Factory instance.
+        */
+       public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
+               self::$administrator_id = $factory->user->create( array( 'role' => 'administrator' ) );
+       }
+
+       /**
</ins><span class="cx" style="display: block; padding: 0 10px">          * Set up a test case.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @see WP_UnitTestCase_Base::set_up()
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22,7 +38,7 @@
</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><span class="cx" style="display: block; padding: 0 10px">                require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$administrator_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 global $wp_customize;
</span><span class="cx" style="display: block; padding: 0 10px">                $this->wp_customize = new WP_Customize_Manager();
</span><span class="cx" style="display: block; padding: 0 10px">                $wp_customize       = $this->wp_customize;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -854,7 +870,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $menus                 = new WP_Customize_Nav_Menus( $this->wp_customize );
</span><span class="cx" style="display: block; padding: 0 10px">                $contributor_user_id   = self::factory()->user->create( array( 'role' => 'contributor' ) );
</span><span class="cx" style="display: block; padding: 0 10px">                $author_user_id        = self::factory()->user->create( array( 'role' => 'author' ) );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $administrator_user_id = self::factory()->user->create( array( 'role' => 'administrator' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $administrator_user_id = self::$administrator_id;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $contributor_post_id   = self::factory()->post->create(
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span></span></pre></div>
<a id="trunktestsphpunittestscustomizepanelphp"></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/customize/panel.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/customize/panel.php     2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/customize/panel.php       2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8,6 +8,22 @@
</span><span class="cx" style="display: block; padding: 0 10px"> class Tests_WP_Customize_Panel extends WP_UnitTestCase {
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         * ID of the administrator user.
+        *
+        * @var int
+        */
+       public static $administrator_id;
+
+       /**
+        * Set up the shared fixture.
+        *
+        * @param WP_UnitTest_Factory $factory Factory instance.
+        */
+       public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
+               self::$administrator_id = $factory->user->create( array( 'role' => 'administrator' ) );
+       }
+
+       /**
</ins><span class="cx" style="display: block; padding: 0 10px">          * @var WP_Customize_Manager
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        protected $manager;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -131,8 +147,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @see WP_Customize_Panel::check_capabilities()
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_check_capabilities() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $user_id = self::factory()->user->create( array( 'role' => 'administrator' ) );
-               wp_set_current_user( $user_id );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$administrator_id );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $panel = new WP_Customize_Panel( $this->manager, 'foo' );
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertTrue( $panel->check_capabilities() );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -157,7 +172,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @see WP_Customize_Panel::maybe_render()
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_maybe_render() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$administrator_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $panel                        = new WP_Customize_Panel( $this->manager, 'bar' );
</span><span class="cx" style="display: block; padding: 0 10px">                $customize_render_panel_count = did_action( 'customize_render_panel' );
</span><span class="cx" style="display: block; padding: 0 10px">                add_action( 'customize_render_panel', array( $this, 'action_customize_render_panel_test' ) );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -182,7 +197,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @see WP_Customize_Panel::print_template()
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_print_templates_standard() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$administrator_id );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $panel = new WP_Customize_Panel( $this->manager, 'baz' );
</span><span class="cx" style="display: block; padding: 0 10px">                ob_start();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -200,7 +215,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @see WP_Customize_Panel::print_template()
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_print_templates_custom() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$administrator_id );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $panel = new Custom_Panel_Test( $this->manager, 'baz' );
</span><span class="cx" style="display: block; padding: 0 10px">                ob_start();
</span></span></pre></div>
<a id="trunktestsphpunittestscustomizeselectiverefreshajaxphp"></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/customize/selective-refresh-ajax.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/customize/selective-refresh-ajax.php    2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/customize/selective-refresh-ajax.php      2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -29,6 +29,22 @@
</span><span class="cx" style="display: block; padding: 0 10px">        public $selective_refresh;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         * Shared user ID for the tests.
+        *
+        * @var int
+        */
+       public static $user_id = 0;
+
+       /**
+        * Set up shared fixtures.
+        *
+        * @param WP_UnitTest_Factory $factory Factory.
+        */
+       public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
+               self::$user_id = $factory->user->create( array( 'role' => 'administrator' ) );
+       }
+
+       /**
</ins><span class="cx" style="display: block; padding: 0 10px">          * Set up the test fixture.
</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="lines" style="display: block; padding: 0 10px; color: #888">@@ -79,7 +95,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertSame( 'expected_customize_preview', $output['data'] );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Check expected_customize_preview.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$user_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $_REQUEST['nonce'] = wp_create_nonce( 'preview-customize_' . $this->wp_customize->theme()->get_stylesheet() );
</span><span class="cx" style="display: block; padding: 0 10px">                ob_start();
</span><span class="cx" style="display: block; padding: 0 10px">                try {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -121,7 +137,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * Set the current user to be an admin, add the preview nonce, and set the query var.
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        private function setup_valid_render_partials_request_environment() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$user_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $_REQUEST['nonce'] = wp_create_nonce( 'preview-customize_' . $this->wp_customize->theme()->get_stylesheet() );
</span><span class="cx" style="display: block; padding: 0 10px">                $_POST[ WP_Customize_Selective_Refresh::RENDER_QUERY_VAR ] = '1';
</span><span class="cx" style="display: block; padding: 0 10px">                $this->do_customize_boot_actions();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -171,7 +187,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_handle_render_partials_request_for_non_rendering_partial() {
</span><span class="cx" style="display: block; padding: 0 10px">                $this->setup_valid_render_partials_request_environment();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$user_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $this->wp_customize->add_setting( 'home' );
</span><span class="cx" style="display: block; padding: 0 10px">                $this->wp_customize->selective_refresh->add_partial( 'foo', array( 'settings' => array( 'home' ) ) );
</span><span class="cx" style="display: block; padding: 0 10px">                $context_data = array();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -208,7 +224,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_handle_rendering_disallowed_partial() {
</span><span class="cx" style="display: block; padding: 0 10px">                $this->setup_valid_render_partials_request_environment();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$user_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $this->wp_customize->add_setting(
</span><span class="cx" style="display: block; padding: 0 10px">                        'secret_message',
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -244,7 +260,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_handle_rendering_partial_with_missing_settings() {
</span><span class="cx" style="display: block; padding: 0 10px">                $this->setup_valid_render_partials_request_environment();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$user_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $this->wp_customize->selective_refresh->add_partial( 'bar', array( 'settings' => 'bar' ) );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $context_data      = array();
</span></span></pre></div>
<a id="trunktestsphpunittestscustomizesettingphp"></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/customize/setting.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/customize/setting.php   2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/customize/setting.php     2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17,6 +17,22 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public $undefined;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        /**
+        * Shared admin user ID for the tests.
+        *
+        * @var int
+        */
+       public static $admin_id = 0;
+
+       /**
+        * Set up shared fixtures.
+        *
+        * @param WP_UnitTest_Factory $factory Factory.
+        */
+       public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
+               self::$admin_id = $factory->user->create( array( 'role' => 'administrator' ) );
+       }
+
</ins><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><span class="cx" style="display: block; padding: 0 10px">                require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -137,7 +153,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @see WP_Customize_Setting::value()
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_preview_standard_types_non_multidimensional() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$admin_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $_POST['customized'] = wp_slash( wp_json_encode( $this->post_data_overrides ) );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Try non-multidimensional settings.
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -216,7 +232,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @see WP_Customize_Setting::value()
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_preview_standard_types_multidimensional() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$admin_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $_POST['customized'] = wp_slash( wp_json_encode( $this->post_data_overrides ) );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                foreach ( $this->standard_type_configs as $type => $type_options ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -362,7 +378,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @see WP_Customize_Setting::preview()
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_preview_custom_type() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$admin_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $type                = 'custom_type';
</span><span class="cx" style="display: block; padding: 0 10px">                $post_data_overrides = array(
</span><span class="cx" style="display: block; padding: 0 10px">                        "unset_{$type}_with_post_value" => "unset_{$type}_without_post_value\\o/",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -513,7 +529,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertTrue( 0 === did_action( 'customize_save_foo' ) );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Satisfy all requirements for save to happen.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$admin_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $this->assertNotFalse( $setting->save() );
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertTrue( 1 === did_action( 'customize_update_custom' ) );
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertTrue( 1 === did_action( 'customize_save_foo' ) );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -551,7 +567,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 31428
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_is_current_blog_previewed() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$admin_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $type       = 'option';
</span><span class="cx" style="display: block; padding: 0 10px">                $name       = 'blogname';
</span><span class="cx" style="display: block; padding: 0 10px">                $post_value = __FUNCTION__;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -573,7 +589,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @group ms-required
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_previewing_with_switch_to_blog() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$admin_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $type       = 'option';
</span><span class="cx" style="display: block; padding: 0 10px">                $name       = 'blogdescription';
</span><span class="cx" style="display: block; padding: 0 10px">                $post_value = __FUNCTION__;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -596,7 +612,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_option_autoloading() {
</span><span class="cx" style="display: block; padding: 0 10px">                global $wpdb;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$admin_id );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $name    = 'autoloaded1';
</span><span class="cx" style="display: block; padding: 0 10px">                $setting = new WP_Customize_Setting(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -743,7 +759,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 37294
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_multidimensional_value_when_previewed() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$admin_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 WP_Customize_Setting::reset_aggregated_multidimensionals();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $initial_value = 456;
</span></span></pre></div>
<a id="trunktestsphpunittestscustomizewidgetsphp"></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/customize/widgets.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/customize/widgets.php   2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/customize/widgets.php     2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -20,6 +20,22 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        protected $backup_registered_sidebars;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        /**
+        * ID of the administrator user.
+        *
+        * @var int
+        */
+       public static $administrator_id;
+
+       /**
+        * Set up the shared fixture.
+        *
+        * @param WP_UnitTest_Factory $factory Factory instance.
+        */
+       public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
+               self::$administrator_id = $factory->user->create( array( 'role' => 'administrator' ) );
+       }
+
</ins><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><span class="cx" style="display: block; padding: 0 10px">                require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -27,8 +43,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                add_theme_support( 'customize-selective-refresh-widgets' );
</span><span class="cx" style="display: block; padding: 0 10px">                add_action( 'widgets_init', array( $this, 'remove_widgets_block_editor' ) );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $user_id = self::factory()->user->create( array( 'role' => 'administrator' ) );
-               wp_set_current_user( $user_id );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$administrator_id );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                update_option(
</span><span class="cx" style="display: block; padding: 0 10px">                        'widget_search',
</span></span></pre></div>
<a id="trunktestsphpunittestsgeneraltemplatephp"></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/general/template.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/general/template.php    2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/general/template.php      2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -32,7 +32,29 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public static $home_page_id;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        /**
+        * ID of the administrator user.
+        *
+        * @var int
+        */
+       public static $administrator_id;
+
+       /**
+        * ID of the author user.
+        *
+        * @var int
+        */
+       public static $author_id;
+
+       /**
+        * Set up the shared fixtures.
+        *
+        * @param WP_UnitTest_Factory $factory Factory instance.
+        */
</ins><span class="cx" style="display: block; padding: 0 10px">         public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                self::$administrator_id = $factory->user->create( array( 'role' => 'administrator' ) );
+               self::$author_id        = $factory->user->create( array( 'role' => 'author' ) );
+
</ins><span class="cx" style="display: block; padding: 0 10px">                 /*
</span><span class="cx" style="display: block; padding: 0 10px">                 * Declare theme support for custom logo.
</span><span class="cx" style="display: block; padding: 0 10px">                 *
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -212,7 +234,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_customize_preview_wp_site_icon_empty() {
</span><span class="cx" style="display: block; padding: 0 10px">                global $wp_customize;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$administrator_id );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
</span><span class="cx" style="display: block; padding: 0 10px">                $wp_customize = new WP_Customize_Manager();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -230,7 +252,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_customize_preview_wp_site_icon_dirty() {
</span><span class="cx" style="display: block; padding: 0 10px">                global $wp_customize;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$administrator_id );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
</span><span class="cx" style="display: block; padding: 0 10px">                $wp_customize = new WP_Customize_Manager();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -763,16 +785,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::get_the_archive_title
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_get_the_archive_title_is_correct_for_author_queries() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $user_with_posts    = self::factory()->user->create_and_get(
-                       array(
-                               'role' => 'author',
-                       )
-               );
-               $user_with_no_posts = self::factory()->user->create_and_get(
-                       array(
-                               'role' => 'author',
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $user_with_posts    = get_user_by( 'id', self::$administrator_id );
+               $user_with_no_posts = get_user_by( 'id', self::$author_id );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                self::factory()->post->create(
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span></span></pre></div>
<a id="trunktestsphpunittestsl10ngetUserLocalephp"></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/l10n/getUserLocale.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/l10n/getUserLocale.php  2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/l10n/getUserLocale.php    2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9,10 +9,27 @@
</span><span class="cx" style="display: block; padding: 0 10px"> class Tests_L10n_GetUserLocale extends WP_UnitTestCase {
</span><span class="cx" style="display: block; padding: 0 10px">        protected $user_id;
</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 set_up() {
-               parent::set_up();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ /**
+        * ID of the administrator user with de_DE local.
+        *
+        * @var int
+        */
+       public static $administrator_de_de;
</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->user_id = self::factory()->user->create(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ /**
+        * ID of the user with es_ES local.
+        *
+        * @var int
+        */
+       public static $user_es_es;
+
+       /**
+        * Set up the shared fixtures.
+        *
+        * @param WP_UnitTest_Factory $factory Factory instance.
+        */
+       public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
+               self::$administrator_de_de = $factory->user->create(
</ins><span class="cx" style="display: block; padding: 0 10px">                         array(
</span><span class="cx" style="display: block; padding: 0 10px">                                'role'   => 'administrator',
</span><span class="cx" style="display: block; padding: 0 10px">                                'locale' => 'de_DE',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19,24 +36,34 @@
</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">-                wp_set_current_user( $this->user_id );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         self::$user_es_es = self::factory()->user->create(
+                       array(
+                               'locale' => 'es_ES',
+                       )
+               );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        public function set_up() {
+               parent::set_up();
+
+               wp_set_current_user( self::$administrator_de_de );
+       }
+
</ins><span class="cx" style="display: block; padding: 0 10px">         public function test_user_locale_property() {
</span><span class="cx" style="display: block; padding: 0 10px">                set_current_screen( 'dashboard' );
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertSame( 'de_DE', get_user_locale() );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertSame( get_user_by( 'id', $this->user_id )->locale, get_user_locale() );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertSame( get_user_by( 'id', self::$administrator_de_de )->locale, get_user_locale() );
</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">        public function test_update_user_locale() {
</span><span class="cx" style="display: block; padding: 0 10px">                set_current_screen( 'dashboard' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                update_user_meta( $this->user_id, 'locale', 'fr_FR' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         update_user_meta( self::$administrator_de_de, 'locale', 'fr_FR' );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $this->assertSame( 'fr_FR', get_user_locale() );
</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">        public function test_returns_site_locale_if_empty() {
</span><span class="cx" style="display: block; padding: 0 10px">                set_current_screen( 'dashboard' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                update_user_meta( $this->user_id, 'locale', '' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         update_user_meta( self::$administrator_de_de, 'locale', '' );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $this->assertSame( get_locale(), get_user_locale() );
</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">@@ -78,11 +105,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">        public function test_user_id_argument_with_id() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $user_id = self::factory()->user->create(
-                       array(
-                               'locale' => 'es_ES',
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $user_id = self::$user_es_es;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $user_locale1 = get_user_locale( $user_id );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -95,11 +118,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">        public function test_user_id_argument_with_wp_user_object() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $user_id = self::factory()->user->create(
-                       array(
-                               'locale' => 'es_ES',
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $user_id = self::$user_es_es;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $user = get_user_by( 'id', $user_id );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span></span></pre></div>
<a id="trunktestsphpunittestsl10nphp"></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/l10n.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/l10n.php        2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/l10n.php  2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16,6 +16,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">        private $long_text = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.';
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         * Editor user ID.
+        *
+        * @var int $editor_id
+        */
+       public static $editor_id;
+
+       public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
+               self::$editor_id = $factory->user->create( array( 'role' => 'editor' ) );
+       }
+
+       /**
</ins><span class="cx" style="display: block; padding: 0 10px">          * @ticket 35961
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::_n_noop
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -464,7 +475,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                 * and return a string instead of null, which would otherwise cause a PHP 8.1
</span><span class="cx" style="display: block; padding: 0 10px">                 * "passing null to non-nullable" deprecation notice.
</span><span class="cx" style="display: block; padding: 0 10px">                 */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'editor' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$editor_id );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $args = array(
</span><span class="cx" style="display: block; padding: 0 10px">                        'post_content' => $this->long_text,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -503,7 +514,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                 * and return a string instead of null, which would otherwise cause a PHP 8.1
</span><span class="cx" style="display: block; padding: 0 10px">                 * "passing null to non-nullable" deprecation notice.
</span><span class="cx" style="display: block; padding: 0 10px">                 */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'editor' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$editor_id );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $args = array(
</span><span class="cx" style="display: block; padding: 0 10px">                        'post_content' => $this->long_text,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -542,7 +553,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                 * and return a string instead of null, which would otherwise cause a PHP 8.1
</span><span class="cx" style="display: block; padding: 0 10px">                 * "passing null to non-nullable" deprecation notice.
</span><span class="cx" style="display: block; padding: 0 10px">                 */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'editor' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$editor_id );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $args = array(
</span><span class="cx" style="display: block; padding: 0 10px">                        'post_content' => str_repeat( 'あ', 200 ),
</span></span></pre></div>
<a id="trunktestsphpunittestsmetaphp"></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/meta.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/meta.php        2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/meta.php  2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9,16 +9,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="cx" style="display: block; padding: 0 10px">         * @var \WP_User
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        private $author;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ private static $author;
</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 $meta_id;
-       private $delete_meta_id;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ private static $meta_id;
+       private static $delete_meta_id;
</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 set_up() {
-               parent::set_up();
-               $this->author         = new WP_User( self::factory()->user->create( array( 'role' => 'author' ) ) );
-               $this->meta_id        = add_metadata( 'user', $this->author->ID, 'meta_key', 'meta_value' );
-               $this->delete_meta_id = add_metadata( 'user', $this->author->ID, 'delete_meta_key', 'delete_meta_value' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
+               self::$author         = new WP_User( $factory->user->create( array( 'role' => 'author' ) ) );
+               self::$meta_id        = add_metadata( 'user', self::$author->ID, 'meta_key', 'meta_value' );
+               self::$delete_meta_id = add_metadata( 'user', self::$author->ID, 'delete_meta_key', 'delete_meta_value' );
</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">        public function meta_sanitize_cb( $meta_value, $meta_key, $meta_type ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -37,51 +36,51 @@
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_delete_metadata_by_mid() {
</span><span class="cx" style="display: block; padding: 0 10px">                // Let's try and delete a non-existing ID, non existing meta.
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertFalse( delete_metadata_by_mid( 'user', 0 ) );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertFalse( delete_metadata_by_mid( 'non_existing_meta', $this->delete_meta_id ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertFalse( delete_metadata_by_mid( 'non_existing_meta', self::$delete_meta_id ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Now let's delete the real meta data.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertTrue( delete_metadata_by_mid( 'user', $this->delete_meta_id ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertTrue( delete_metadata_by_mid( 'user', self::$delete_meta_id ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // And make sure it's been deleted.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertFalse( get_metadata_by_mid( 'user', $this->delete_meta_id ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertFalse( get_metadata_by_mid( 'user', self::$delete_meta_id ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Make sure the caches are cleared.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertFalse( (bool) get_user_meta( $this->author->ID, 'delete_meta_key' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertFalse( (bool) get_user_meta( self::$author->ID, 'delete_meta_key' ) );
</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">        public function test_update_metadata_by_mid() {
</span><span class="cx" style="display: block; padding: 0 10px">                // Setup.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $meta = get_metadata_by_mid( 'user', $this->meta_id );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $meta = get_metadata_by_mid( 'user', self::$meta_id );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Update the meta value.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertTrue( update_metadata_by_mid( 'user', $this->meta_id, 'meta_new_value' ) );
-               $meta = get_metadata_by_mid( 'user', $this->meta_id );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertTrue( update_metadata_by_mid( 'user', self::$meta_id, 'meta_new_value' ) );
+               $meta = get_metadata_by_mid( 'user', self::$meta_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $this->assertSame( 'meta_new_value', $meta->meta_value );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Update the meta value.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertTrue( update_metadata_by_mid( 'user', $this->meta_id, 'meta_new_value', 'meta_new_key' ) );
-               $meta = get_metadata_by_mid( 'user', $this->meta_id );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertTrue( update_metadata_by_mid( 'user', self::$meta_id, 'meta_new_value', 'meta_new_key' ) );
+               $meta = get_metadata_by_mid( 'user', self::$meta_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $this->assertSame( 'meta_new_key', $meta->meta_key );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Update the key and value.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertTrue( update_metadata_by_mid( 'user', $this->meta_id, 'meta_value', 'meta_key' ) );
-               $meta = get_metadata_by_mid( 'user', $this->meta_id );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertTrue( update_metadata_by_mid( 'user', self::$meta_id, 'meta_value', 'meta_key' ) );
+               $meta = get_metadata_by_mid( 'user', self::$meta_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $this->assertSame( 'meta_key', $meta->meta_key );
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertSame( 'meta_value', $meta->meta_value );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Update the value that has to be serialized.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertTrue( update_metadata_by_mid( 'user', $this->meta_id, array( 'first', 'second' ) ) );
-               $meta = get_metadata_by_mid( 'user', $this->meta_id );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertTrue( update_metadata_by_mid( 'user', self::$meta_id, array( 'first', 'second' ) ) );
+               $meta = get_metadata_by_mid( 'user', self::$meta_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $this->assertSame( array( 'first', 'second' ), $meta->meta_value );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Let's try some invalid meta data.
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertFalse( update_metadata_by_mid( 'user', 0, 'meta_value' ) );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertFalse( update_metadata_by_mid( 'user', $this->meta_id, 'meta_value', array( 'invalid', 'key' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertFalse( update_metadata_by_mid( 'user', self::$meta_id, 'meta_value', array( 'invalid', 'key' ) ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Let's see if caches get cleared after updates.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $meta  = get_metadata_by_mid( 'user', $this->meta_id );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $meta  = get_metadata_by_mid( 'user', self::$meta_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $first = get_user_meta( $meta->user_id, $meta->meta_key );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertTrue( update_metadata_by_mid( 'user', $this->meta_id, 'other_meta_value' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertTrue( update_metadata_by_mid( 'user', self::$meta_id, 'other_meta_value' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $second = get_user_meta( $meta->user_id, $meta->meta_key );
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertFalse( $first === $second );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -115,8 +114,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">        public function test_metadata_exists() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertFalse( metadata_exists( 'user', $this->author->ID, 'foobarbaz' ) );
-               $this->assertTrue( metadata_exists( 'user', $this->author->ID, 'meta_key' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertFalse( metadata_exists( 'user', self::$author->ID, 'foobarbaz' ) );
+               $this->assertTrue( metadata_exists( 'user', self::$author->ID, 'meta_key' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $this->assertFalse( metadata_exists( 'user', 1234567890, 'foobarbaz' ) );
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertFalse( metadata_exists( 'user', 1234567890, 'meta_key' ) );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -127,7 +126,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_metadata_exists_with_filter() {
</span><span class="cx" style="display: block; padding: 0 10px">                // Let's see if it returns the correct value when adding a filter.
</span><span class="cx" style="display: block; padding: 0 10px">                add_filter( 'get_user_metadata', '__return_zero' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertFalse( metadata_exists( 'user', $this->author->ID, 'meta_key' ) ); // Existing meta key.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertFalse( metadata_exists( 'user', self::$author->ID, 'meta_key' ) ); // Existing meta key.
</ins><span class="cx" style="display: block; padding: 0 10px">                 $this->assertFalse( metadata_exists( 'user', 1234567890, 'meta_key' ) );
</span><span class="cx" style="display: block; padding: 0 10px">                remove_filter( 'get_user_metadata', '__return_zero' );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -150,7 +149,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertCount( 1, $u );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // User found is not locally defined author (it's the admin).
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertNotEquals( $this->author->user_login, $u[0]->user_login );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertNotEquals( self::$author->user_login, $u[0]->user_login );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Test EXISTS and NOT EXISTS together, no users should be found.
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertCount(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -185,7 +184,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">-                delete_metadata( 'user', $this->author->ID, 'meta_key' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         delete_metadata( 'user', self::$author->ID, 'meta_key' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertCount(
</span><span class="cx" style="display: block; padding: 0 10px">                        2,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -208,28 +207,28 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $expected  = 'Testsingleslash';
</span><span class="cx" style="display: block; padding: 0 10px">                $value2    = 'Test\\\\doubleslash';
</span><span class="cx" style="display: block; padding: 0 10px">                $expected2 = 'Test\\doubleslash';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertFalse( metadata_exists( 'user', $this->author->ID, $key ) );
-               $this->assertFalse( delete_metadata( 'user', $this->author->ID, $key ) );
-               $this->assertSame( '', get_metadata( 'user', $this->author->ID, $key, true ) );
-               $this->assertIsInt( add_metadata( 'user', $this->author->ID, $key, $value ) );
-               $this->assertSame( $expected, get_metadata( 'user', $this->author->ID, $key, true ) );
-               $this->assertTrue( delete_metadata( 'user', $this->author->ID, $key ) );
-               $this->assertSame( '', get_metadata( 'user', $this->author->ID, $key, true ) );
-               $this->assertIsInt( update_metadata( 'user', $this->author->ID, $key, $value ) );
-               $this->assertSame( $expected, get_metadata( 'user', $this->author->ID, $key, true ) );
-               $this->assertTrue( update_metadata( 'user', $this->author->ID, $key, 'blah' ) );
-               $this->assertSame( 'blah', get_metadata( 'user', $this->author->ID, $key, true ) );
-               $this->assertTrue( delete_metadata( 'user', $this->author->ID, $key ) );
-               $this->assertSame( '', get_metadata( 'user', $this->author->ID, $key, true ) );
-               $this->assertFalse( metadata_exists( 'user', $this->author->ID, $key ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertFalse( metadata_exists( 'user', self::$author->ID, $key ) );
+               $this->assertFalse( delete_metadata( 'user', self::$author->ID, $key ) );
+               $this->assertSame( '', get_metadata( 'user', self::$author->ID, $key, true ) );
+               $this->assertIsInt( add_metadata( 'user', self::$author->ID, $key, $value ) );
+               $this->assertSame( $expected, get_metadata( 'user', self::$author->ID, $key, true ) );
+               $this->assertTrue( delete_metadata( 'user', self::$author->ID, $key ) );
+               $this->assertSame( '', get_metadata( 'user', self::$author->ID, $key, true ) );
+               $this->assertIsInt( update_metadata( 'user', self::$author->ID, $key, $value ) );
+               $this->assertSame( $expected, get_metadata( 'user', self::$author->ID, $key, true ) );
+               $this->assertTrue( update_metadata( 'user', self::$author->ID, $key, 'blah' ) );
+               $this->assertSame( 'blah', get_metadata( 'user', self::$author->ID, $key, true ) );
+               $this->assertTrue( delete_metadata( 'user', self::$author->ID, $key ) );
+               $this->assertSame( '', get_metadata( 'user', self::$author->ID, $key, true ) );
+               $this->assertFalse( metadata_exists( 'user', self::$author->ID, $key ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Test overslashing.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->assertIsInt( add_metadata( 'user', $this->author->ID, $key, $value2 ) );
-               $this->assertSame( $expected2, get_metadata( 'user', $this->author->ID, $key, true ) );
-               $this->assertTrue( delete_metadata( 'user', $this->author->ID, $key ) );
-               $this->assertSame( '', get_metadata( 'user', $this->author->ID, $key, true ) );
-               $this->assertIsInt( update_metadata( 'user', $this->author->ID, $key, $value2 ) );
-               $this->assertSame( $expected2, get_metadata( 'user', $this->author->ID, $key, true ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->assertIsInt( add_metadata( 'user', self::$author->ID, $key, $value2 ) );
+               $this->assertSame( $expected2, get_metadata( 'user', self::$author->ID, $key, true ) );
+               $this->assertTrue( delete_metadata( 'user', self::$author->ID, $key ) );
+               $this->assertSame( '', get_metadata( 'user', self::$author->ID, $key, true ) );
+               $this->assertIsInt( update_metadata( 'user', self::$author->ID, $key, $value2 ) );
+               $this->assertSame( $expected2, get_metadata( 'user', self::$author->ID, $key, 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="lines" style="display: block; padding: 0 10px; color: #888">@@ -346,7 +345,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 37746
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_negative_meta_id() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $negative_mid = $this->meta_id * -1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $negative_mid = self::$meta_id * -1;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertLessThan( 0, $negative_mid );
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertFalse( get_metadata_by_mid( 'user', $negative_mid ) );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -358,7 +357,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 37746
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_floating_meta_id() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $floating_mid = $this->meta_id + 0.1337;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $floating_mid = self::$meta_id + 0.1337;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertTrue( floor( $floating_mid ) !== $floating_mid );
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertFalse( get_metadata_by_mid( 'user', $floating_mid ) );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -370,7 +369,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 37746
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_string_point_zero_meta_id() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $meta_id = add_metadata( 'user', $this->author->ID, 'meta_key', 'meta_value_2' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $meta_id = add_metadata( 'user', self::$author->ID, 'meta_key', 'meta_value_2' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $string_mid = "{$meta_id}.0";
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -387,8 +386,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_get_metadata_with_empty_key_array_value() {
</span><span class="cx" style="display: block; padding: 0 10px">                $data  = array( 1, 2 );
</span><span class="cx" style="display: block; padding: 0 10px">                $value = serialize( $data );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                add_metadata( 'user', $this->author->ID, 'foo', $data );
-               $found = get_metadata( 'user', $this->author->ID );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         add_metadata( 'user', self::$author->ID, 'foo', $data );
+               $found = get_metadata( 'user', self::$author->ID );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertSame( array( $value ), $found['foo'] );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -400,8 +399,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $data      = new stdClass();
</span><span class="cx" style="display: block; padding: 0 10px">                $data->foo = 'bar';
</span><span class="cx" style="display: block; padding: 0 10px">                $value     = serialize( $data );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                add_metadata( 'user', $this->author->ID, 'foo', $data );
-               $found = get_metadata( 'user', $this->author->ID );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         add_metadata( 'user', self::$author->ID, 'foo', $data );
+               $found = get_metadata( 'user', self::$author->ID );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertSame( array( $value ), $found['foo'] );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -415,8 +414,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        array( 3, 4 ),
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><span class="cx" style="display: block; padding: 0 10px">                $value = serialize( $data );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                add_metadata( 'user', $this->author->ID, 'foo', $data );
-               $found = get_metadata( 'user', $this->author->ID );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         add_metadata( 'user', self::$author->ID, 'foo', $data );
+               $found = get_metadata( 'user', self::$author->ID );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertSame( array( $value ), $found['foo'] );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span></span></pre></div>
<a id="trunktestsphpunittestsoembedcontrollerphp"></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/oembed/controller.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/oembed/controller.php   2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/oembed/controller.php     2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -304,11 +304,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">        public function test_request_json() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $user = self::factory()->user->create_and_get(
-                       array(
-                               'display_name' => 'John Doe',
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $user = get_user_by( 'id', self::$subscriber );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $post = self::factory()->post->create_and_get(
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="cx" style="display: block; padding: 0 10px">                                'post_author' => $user->ID,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -391,11 +387,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">        public function test_request_xml() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $user = self::factory()->user->create_and_get(
-                       array(
-                               'display_name' => 'John Doe',
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $user = get_user_by( 'id', self::$subscriber );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $post = self::factory()->post->create_and_get(
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="cx" style="display: block; padding: 0 10px">                                'post_author' => $user->ID,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -461,11 +453,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">        public function test_rest_pre_serve_request() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $user = self::factory()->user->create_and_get(
-                       array(
-                               'display_name' => 'John Doe',
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $user = get_user_by( 'id', self::$subscriber );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $post = self::factory()->post->create_and_get(
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="cx" style="display: block; padding: 0 10px">                                'post_author' => $user->ID,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -677,11 +665,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_proxy_with_internal_url() {
</span><span class="cx" style="display: block; padding: 0 10px">                wp_set_current_user( self::$editor );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $user = self::factory()->user->create_and_get(
-                       array(
-                               'display_name' => 'John Doe',
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $user = get_user_by( 'id', self::$subscriber );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $post = self::factory()->post->create_and_get(
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="cx" style="display: block; padding: 0 10px">                                'post_author' => $user->ID,
</span></span></pre></div>
<a id="trunktestsphpunittestsoembedwpOembedphp"></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/oembed/wpOembed.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/oembed/wpOembed.php     2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/oembed/wpOembed.php       2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11,6 +11,22 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        public $pre_oembed_result_filtered = false;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        /**
+        * ID of the user.
+        *
+        * @var int
+        */
+       public static $user_id;
+
+       /**
+        * Set up the shared fixture.
+        *
+        * @param WP_UnitTest_Factory $factory Factory instance.
+        */
+       public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
+               self::$user_id = $factory->user->create();
+       }
+
</ins><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><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -96,7 +112,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @group ms-required
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_wp_filter_pre_oembed_result_multisite_sub_samesub() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $user_id = self::factory()->user->create();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $user_id = self::$user_id;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $blog_id = self::factory()->blog->create(
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -125,7 +141,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @group ms-required
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_wp_filter_pre_oembed_result_multisite_sub_othersub() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $user_id = self::factory()->user->create();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $user_id = self::$user_id;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $blog_id = self::factory()->blog->create(
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -164,7 +180,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_wp_filter_pre_oembed_result_multisite_sub_main() {
</span><span class="cx" style="display: block; padding: 0 10px">                $post_id   = self::factory()->post->create();
</span><span class="cx" style="display: block; padding: 0 10px">                $permalink = get_permalink( $post_id );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $user_id   = self::factory()->user->create();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $user_id   = self::$user_id;
</ins><span class="cx" style="display: block; padding: 0 10px">                 $blog_id   = self::factory()->blog->create(
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="cx" style="display: block; padding: 0 10px">                                'user_id' => $user_id,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -189,7 +205,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @group ms-required
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_wp_filter_pre_oembed_result_multisite_preserves_switched_state() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $user_id = self::factory()->user->create();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $user_id = self::$user_id;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $blog_id = self::factory()->blog->create( array( 'user_id' => $user_id ) );
</span><span class="cx" style="display: block; padding: 0 10px">                switch_to_blog( $blog_id );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -220,7 +236,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_wp_filter_pre_oembed_result_multisite_restores_state_if_no_post_is_found() {
</span><span class="cx" style="display: block; padding: 0 10px">                $current_blog_id = get_current_blog_id();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $user_id = self::factory()->user->create();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $user_id = self::$user_id;
</ins><span class="cx" style="display: block; padding: 0 10px">                 $blog_id = self::factory()->blog->create(
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="cx" style="display: block; padding: 0 10px">                                'user_id' => $user_id,
</span></span></pre></div>
<a id="trunktestsphpunittestspostgetPagesphp"></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/post/getPages.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/post/getPages.php       2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/post/getPages.php 2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6,7 +6,43 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * @covers ::get_pages
</span><span class="cx" style="display: block; padding: 0 10px">  */
</span><span class="cx" style="display: block; padding: 0 10px"> class Tests_Post_GetPages extends WP_UnitTestCase {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">         /**
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         * ID of the first author.
+        *
+        * @var int
+        */
+       public static $author_id_1;
+
+       /**
+        * ID of the second author.
+        *
+        * @var int
+        */
+       public static $author_id_2;
+
+       /**
+        * Set up the shared fixture.
+        *
+        * @param WP_UnitTest_Factory $factory Factory instance.
+        */
+       public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
+               self::$author_id_1 = $factory->user->create(
+                       array(
+                               'user_login' => 'author1',
+                               'role'       => 'author',
+                       )
+               );
+
+               self::$author_id_2 = $factory->user->create(
+                       array(
+                               'user_login' => 'author2',
+                               'role'       => 'author',
+                       )
+               );
+       }
+
+       /**
</ins><span class="cx" style="display: block; padding: 0 10px">          * @ticket 23167
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_get_pages_cache() {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -963,12 +999,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 12821
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_get_pages_author() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $author_1 = self::factory()->user->create(
-                       array(
-                               'user_login' => 'author1',
-                               'role'       => 'author',
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $author_1 = self::$author_id_1;
</ins><span class="cx" style="display: block; padding: 0 10px">                 $posts    = self::factory()->post->create_many(
</span><span class="cx" style="display: block; padding: 0 10px">                        2,
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -989,12 +1020,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 12821
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_get_pages_multiple_authors() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $author_1 = self::factory()->user->create(
-                       array(
-                               'user_login' => 'author1',
-                               'role'       => 'author',
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $author_1 = self::$author_id_1;
</ins><span class="cx" style="display: block; padding: 0 10px">                 $post_1   = self::factory()->post->create(
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="cx" style="display: block; padding: 0 10px">                                'post_title'  => 'Page 1',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1004,12 +1030,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">-                $author_2 = self::factory()->user->create(
-                       array(
-                               'user_login' => 'author2',
-                               'role'       => 'author',
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $author_2 = self::$author_id_2;
</ins><span class="cx" style="display: block; padding: 0 10px">                 $post_2   = self::factory()->post->create(
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="cx" style="display: block; padding: 0 10px">                                'post_title'  => 'Page 2',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1031,12 +1052,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 12821
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_get_pages_multiple_authors_by_user_login() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $author_1 = self::factory()->user->create(
-                       array(
-                               'user_login' => 'author1',
-                               'role'       => 'author',
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $author_1 = self::$author_id_1;
</ins><span class="cx" style="display: block; padding: 0 10px">                 $post_1   = self::factory()->post->create(
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="cx" style="display: block; padding: 0 10px">                                'post_title'  => 'Page 1',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1046,12 +1062,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">-                $author_2 = self::factory()->user->create(
-                       array(
-                               'user_login' => 'author2',
-                               'role'       => 'author',
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $author_2 = self::$author_id_2;
</ins><span class="cx" style="display: block; padding: 0 10px">                 $post_2   = self::factory()->post->create(
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="cx" style="display: block; padding: 0 10px">                                'post_title'  => 'Page 2',
</span></span></pre></div>
<a id="trunktestsphpunittestspostgetPostsByAuthorSqlphp"></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/post/getPostsByAuthorSql.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/post/getPostsByAuthorSql.php    2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/post/getPostsByAuthorSql.php      2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,6 +5,30 @@
</span><span class="cx" style="display: block; padding: 0 10px">  */
</span><span class="cx" style="display: block; padding: 0 10px"> class Tests_Post_GetPostsByAuthorSql extends WP_UnitTestCase {
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        /**
+        * ID of the first user.
+        *
+        * @var int
+        */
+       public static $user_id_1;
+
+       /**
+        * ID of the second user.
+        *
+        * @var int
+        */
+       public static $user_id_2;
+
+       /**
+        * Set up the shared fixture.
+        *
+        * @param WP_UnitTest_Factory $factory Factory instance.
+        */
+       public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
+               self::$user_id_1 = $factory->user->create();
+               self::$user_id_2 = $factory->user->create();
+       }
+
</ins><span class="cx" style="display: block; padding: 0 10px">         public function test_post_type_post() {
</span><span class="cx" style="display: block; padding: 0 10px">                $maybe_string = get_posts_by_author_sql( 'post' );
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertStringContainsString( "post_type = 'post'", $maybe_string );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -59,7 +83,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_public_only_true_should_not_allow_any_private_posts_for_loggedin_user() {
</span><span class="cx" style="display: block; padding: 0 10px">                $current_user = get_current_user_id();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $u            = self::factory()->user->create();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $u            = self::$user_id_1;
</ins><span class="cx" style="display: block; padding: 0 10px">                 wp_set_current_user( $u );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $maybe_string = get_posts_by_author_sql( 'post', true, $u, true );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -70,7 +94,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_public_only_should_default_to_false() {
</span><span class="cx" style="display: block; padding: 0 10px">                $current_user = get_current_user_id();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $u            = self::factory()->user->create();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $u            = self::$user_id_1;
</ins><span class="cx" style="display: block; padding: 0 10px">                 wp_set_current_user( $u );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertSame( get_posts_by_author_sql( 'post', true, $u, false ), get_posts_by_author_sql( 'post', true, $u ) );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -80,7 +104,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_public_only_false_should_allow_current_user_access_to_own_private_posts_when_current_user_matches_post_author() {
</span><span class="cx" style="display: block; padding: 0 10px">                $current_user = get_current_user_id();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $u            = self::factory()->user->create();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $u            = self::$user_id_1;
</ins><span class="cx" style="display: block; padding: 0 10px">                 wp_set_current_user( $u );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $maybe_string = get_posts_by_author_sql( 'post', true, $u, false );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -91,8 +115,8 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_public_only_false_should_not_allow_access_to_private_posts_if_current_user_is_not_post_author() {
</span><span class="cx" style="display: block; padding: 0 10px">                $current_user = get_current_user_id();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $u1           = self::factory()->user->create();
-               $u2           = self::factory()->user->create();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $u1           = self::$user_id_1;
+               $u2           = self::$user_id_2;
</ins><span class="cx" style="display: block; padding: 0 10px">                 wp_set_current_user( $u1 );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $maybe_string = get_posts_by_author_sql( 'post', true, $u2, false );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -103,7 +127,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_public_only_false_should_allow_current_user_access_to_own_private_posts_when_post_author_is_not_provided() {
</span><span class="cx" style="display: block; padding: 0 10px">                $current_user = get_current_user_id();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $u            = self::factory()->user->create();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $u            = self::$user_id_1;
</ins><span class="cx" style="display: block; padding: 0 10px">                 wp_set_current_user( $u );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $maybe_string = get_posts_by_author_sql( 'post', true, $u, false );
</span></span></pre></div>
<a id="trunktestsphpunittestsqueryconditionalsphp"></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/query/conditionals.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/query/conditionals.php  2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/query/conditionals.php    2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14,6 +14,22 @@
</span><span class="cx" style="display: block; padding: 0 10px">        protected $page_ids;
</span><span class="cx" style="display: block; padding: 0 10px">        protected $post_ids;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        /**
+        * ID of the user-a.
+        *
+        * @var int
+        */
+       public static $user_a_id;
+
+       /**
+        * Set up the shared fixture.
+        *
+        * @param WP_UnitTest_Factory $factory Factory instance.
+        */
+       public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
+               self::$user_a_id = $factory->user->create( array( 'user_login' => 'user-a' ) );
+       }
+
</ins><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><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -588,7 +604,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">        // 'author/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?author_name=$matches[1]&feed=$matches[2]',
</span><span class="cx" style="display: block; padding: 0 10px">        // 'author/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?author_name=$matches[1]&feed=$matches[2]',
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_author_feed() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                self::factory()->user->create( array( 'user_login' => 'user-a' ) );
</del><span class="cx" style="display: block; padding: 0 10px">                 // Check the long form.
</span><span class="cx" style="display: block; padding: 0 10px">                $types = array( 'feed', 'rdf', 'rss', 'rss2', 'atom' );
</span><span class="cx" style="display: block; padding: 0 10px">                foreach ( $types as $type ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -607,7 +622,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        // 'author/([^/]+)/page/?([0-9]{1,})/?$' => 'index.php?author_name=$matches[1]&paged=$matches[2]',
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_author_paged() {
</span><span class="cx" style="display: block; padding: 0 10px">                update_option( 'posts_per_page', 2 );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $user_id = self::factory()->user->create( array( 'user_login' => 'user-a' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $user_id = self::$user_a_id;
</ins><span class="cx" style="display: block; padding: 0 10px">                 self::factory()->post->create_many( 3, array( 'post_author' => $user_id ) );
</span><span class="cx" style="display: block; padding: 0 10px">                $this->go_to( '/author/user-a/page/2/' );
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertQueryTrue( 'is_archive', 'is_author', 'is_paged' );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -615,7 +630,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        // 'author/([^/]+)/?$' => 'index.php?author_name=$matches[1]',
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_author() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $user_id = self::factory()->user->create( array( 'user_login' => 'user-a' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $user_id = self::$user_a_id;
</ins><span class="cx" style="display: block; padding: 0 10px">                 self::factory()->post->create( array( 'post_author' => $user_id ) );
</span><span class="cx" style="display: block; padding: 0 10px">                $this->go_to( '/author/user-a/' );
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertQueryTrue( 'is_archive', 'is_author' );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -622,7 +637,6 @@
</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">        public function test_author_with_no_posts() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $user_id = self::factory()->user->create( array( 'user_login' => 'user-a' ) );
</del><span class="cx" style="display: block; padding: 0 10px">                 $this->go_to( '/author/user-a/' );
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertQueryTrue( 'is_archive', 'is_author' );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1122,7 +1136,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 24674
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_is_author_with_nicename_that_begins_with_a_number_that_clashes_with_another_author_id() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $u1 = self::factory()->user->create();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $u1 = self::$user_a_id;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $u2_name = $u1 . '_user';
</span><span class="cx" style="display: block; padding: 0 10px">                $u2      = self::factory()->user->create(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1279,7 +1293,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                global $wpdb;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // We need a non-post that shares an ID with a post assigned a template.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $user_id = self::factory()->user->create();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $user_id = self::$user_a_id;
</ins><span class="cx" style="display: block; padding: 0 10px">                 if ( ! get_post( $user_id ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        $post_id = self::factory()->post->create( array( 'post_type' => 'post' ) );
</span><span class="cx" style="display: block; padding: 0 10px">                        $wpdb->update( $wpdb->posts, array( 'ID' => $user_id ), array( 'ID' => $post_id ), array( '%d' ) );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1352,12 +1366,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 35902
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_is_author_should_not_match_numeric_id_to_nickname_beginning_with_id() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $u1 = self::factory()->user->create(
-                       array(
-                               'nickname'      => 'Foo',
-                               'user_nicename' => 'foo',
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $u1 = self::$user_a_id;
</ins><span class="cx" style="display: block; padding: 0 10px">                 $u2 = self::factory()->user->create(
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="cx" style="display: block; padding: 0 10px">                                'nickname'      => "$u1 Foo",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1375,12 +1384,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 35902
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_is_author_should_not_match_numeric_id_to_user_nicename_beginning_with_id() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $u1 = self::factory()->user->create(
-                       array(
-                               'nickname'      => 'Foo',
-                               'user_nicename' => 'foo',
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $u1 = self::$user_a_id;
</ins><span class="cx" style="display: block; padding: 0 10px">                 $u2 = self::factory()->user->create(
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="cx" style="display: block; padding: 0 10px">                                'nickname'      => 'Foo',
</span></span></pre></div>
<a id="trunktestsphpunitteststaxonomyphp"></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/taxonomy.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/taxonomy.php    2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/taxonomy.php      2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4,6 +4,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * @group taxonomy
</span><span class="cx" style="display: block; padding: 0 10px">  */
</span><span class="cx" style="display: block; padding: 0 10px"> class Tests_Taxonomy extends WP_UnitTestCase {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+       /**
+        * Editor user ID.
+        *
+        * @var int $editor_id
+        */
+       public static $editor_id;
+
+       public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
+               self::$editor_id = $factory->user->create( array( 'role' => 'editor' ) );
+       }
+
</ins><span class="cx" style="display: block; padding: 0 10px">         public function test_get_post_taxonomies() {
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertSame( array( 'category', 'post_tag', 'post_format' ), get_object_taxonomies( 'post' ) );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1010,7 +1022,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">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'editor' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$editor_id );
</ins><span class="cx" style="display: block; padding: 0 10px">                 $updated_post_id = edit_post(
</span><span class="cx" style="display: block; padding: 0 10px">                        array(
</span><span class="cx" style="display: block; padding: 0 10px">                                'post_ID'   => $post->ID,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1036,7 +1048,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_default_term_for_custom_taxonomy() {
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_set_current_user( self::factory()->user->create( array( 'role' => 'editor' ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         wp_set_current_user( self::$editor_id );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $tax = 'custom-tax';
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span></span></pre></div>
<a id="trunktestsphpunittestsurlphp"></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/url.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/url.php 2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/url.php   2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7,6 +7,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">  */
</span><span class="cx" style="display: block; padding: 0 10px"> class Tests_URL extends WP_UnitTestCase {
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        /**
+        * Author user ID.
+        *
+        * @var int $author_id
+        */
+       public static $author_id;
+
+       public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
+               self::$author_id = $factory->user->create( array( 'role' => 'author' ) );
+       }
+
</ins><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><span class="cx" style="display: block; padding: 0 10px">                $GLOBALS['pagenow'] = '';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -386,7 +397,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::get_adjacent_post
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_get_adjacent_post_should_return_private_posts_belonging_to_the_current_user() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $u       = self::factory()->user->create( array( 'role' => 'author' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $u       = self::$author_id;
</ins><span class="cx" style="display: block; padding: 0 10px">                 $old_uid = get_current_user_id();
</span><span class="cx" style="display: block; padding: 0 10px">                wp_set_current_user( $u );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -425,7 +436,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::get_adjacent_post
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_get_adjacent_post_should_return_private_posts_belonging_to_other_users_if_the_current_user_can_read_private_posts() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $u1      = self::factory()->user->create( array( 'role' => 'author' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $u1      = self::$author_id;
</ins><span class="cx" style="display: block; padding: 0 10px">                 $u2      = self::factory()->user->create( array( 'role' => 'administrator' ) );
</span><span class="cx" style="display: block; padding: 0 10px">                $old_uid = get_current_user_id();
</span><span class="cx" style="display: block; padding: 0 10px">                wp_set_current_user( $u2 );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -465,7 +476,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @covers ::get_adjacent_post
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_get_adjacent_post_should_not_return_private_posts_belonging_to_other_users_if_the_current_user_cannot_read_private_posts() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $u1      = self::factory()->user->create( array( 'role' => 'author' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $u1      = self::$author_id;
</ins><span class="cx" style="display: block; padding: 0 10px">                 $u2      = self::factory()->user->create( array( 'role' => 'author' ) );
</span><span class="cx" style="display: block; padding: 0 10px">                $old_uid = get_current_user_id();
</span><span class="cx" style="display: block; padding: 0 10px">                wp_set_current_user( $u2 );
</span></span></pre></div>
<a id="trunktestsphpunittestsuserphp"></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/user.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/user.php        2025-05-26 13:19:19 UTC (rev 60252)
+++ trunk/tests/phpunit/tests/user.php  2025-05-26 14:34:12 UTC (rev 60253)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1083,7 +1083,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 35750
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function test_wp_update_user_should_delete_userslugs_cache() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $u    = self::factory()->user->create();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $u    = self::$sub_id;
</ins><span class="cx" style="display: block; padding: 0 10px">                 $user = get_userdata( $u );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                wp_update_user(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1939,11 +1939,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $_GET     = array();
</span><span class="cx" style="display: block; padding: 0 10px">                $_REQUEST = array();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $administrator = self::factory()->user->create(
-                       array(
-                               'role' => 'administrator',
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $administrator = self::$admin_id;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                wp_set_current_user( $administrator );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1957,11 +1953,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertSame( array( 'administrator' ), get_userdata( $administrator )->roles );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Promote an editor to an administrator.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $editor = self::factory()->user->create(
-                       array(
-                               'role' => 'editor',
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $editor = self::$editor_id;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $_POST['role']     = 'administrator';
</span><span class="cx" style="display: block; padding: 0 10px">                $_POST['email']    = 'administrator@administrator.test';
</span></span></pre>
</div>
</div>

</body>
</html>