@@ -38,13 +38,40 @@ class Tests_Ajax_wpCustomizeNavMenus extends WP_Ajax_UnitTestCase {
3838 */
3939 public static $ terms ;
4040
41+
42+ /**
43+ * Admin user ID.
44+ *
45+ * @var int
46+ */
47+ public static $ admin_user_id = 0 ;
48+
49+ /**
50+ * User IDs keyed by role.
51+ *
52+ * @var int[]
53+ */
54+ public static $ user_ids = array ();
55+
56+ /**
57+ * Set up shared fixtures.
58+ *
59+ * @param WP_UnitTest_Factory $factory The factory.
60+ */
4161 public static function wpSetUpBeforeClass ( WP_UnitTest_Factory $ factory ) {
4262 // Make some post objects.
4363 self ::$ posts = $ factory ->post ->create_many ( 5 );
4464 self ::$ pages = $ factory ->post ->create_many ( 5 , array ( 'post_type ' => 'page ' ) );
4565
4666 // Some terms too.
4767 self ::$ terms = $ factory ->term ->create_many ( 5 );
68+
69+ // Create an admin user.
70+ self ::$ admin_user_id = $ factory ->user ->create ( array ( 'role ' => 'administrator ' ) );
71+
72+ foreach ( array ( 'administrator ' , 'editor ' , 'author ' , 'contributor ' , 'subscriber ' ) as $ role ) {
73+ self ::$ user_ids [ $ role ] = $ factory ->user ->create ( array ( 'role ' => $ role ) );
74+ }
4875 }
4976
5077 /**
@@ -53,7 +80,7 @@ public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
5380 public function set_up () {
5481 parent ::set_up ();
5582 require_once ABSPATH . WPINC . '/class-wp-customize-manager.php ' ;
56- wp_set_current_user ( self ::factory ()-> user -> create ( array ( ' role ' => ' administrator ' ) ) );
83+ wp_set_current_user ( self ::$ admin_user_id );
5784 global $ wp_customize ;
5885 $ this ->wp_customize = new WP_Customize_Manager ();
5986 $ wp_customize = $ this ->wp_customize ;
@@ -91,7 +118,7 @@ public function test_ajax_load_available_items_cap_check( $role, $expected_resul
91118 $ this ->expectExceptionMessage ( '-1 ' );
92119 }
93120
94- wp_set_current_user ( self ::factory ()-> user -> create ( array ( ' role ' => $ role ) ) );
121+ wp_set_current_user ( self ::$ user_ids [ $ role ] );
95122
96123 $ _POST = array (
97124 'action ' => 'load-available-menu-items-customizer ' ,
@@ -485,7 +512,7 @@ public function test_ajax_search_available_items_caps_check( $role, $expected_re
485512 $ this ->expectExceptionMessage ( '-1 ' );
486513 }
487514
488- wp_set_current_user ( self ::factory ()-> user -> create ( array ( ' role ' => $ role ) ) );
515+ wp_set_current_user ( self ::$ user_ids [ $ role ] );
489516
490517 $ _POST = array (
491518 'action ' => 'search-available-menu-items-customizer ' ,
@@ -705,7 +732,7 @@ public function test_ajax_insert_auto_draft_failures() {
705732 $ this ->assertSame ( 'bad_nonce ' , $ response ['data ' ] );
706733
707734 // Bad nonce.
708- wp_set_current_user ( self ::factory ()-> user -> create ( array ( ' role ' => ' subscriber ' ) ) );
735+ wp_set_current_user ( self ::$ user_ids [ ' subscriber '] );
709736 $ _POST = wp_slash (
710737 array (
711738 'customize-menus-nonce ' => wp_create_nonce ( 'customize-menus ' ),
@@ -718,7 +745,7 @@ public function test_ajax_insert_auto_draft_failures() {
718745 $ this ->assertSame ( 'customize_not_allowed ' , $ response ['data ' ] );
719746
720747 // Missing params.
721- wp_set_current_user ( self ::factory ()-> user -> create ( array ( ' role ' => ' administrator ' ) ) );
748+ wp_set_current_user ( self ::$ user_ids [ ' administrator '] );
722749 $ _POST = wp_slash (
723750 array (
724751 'customize-menus-nonce ' => wp_create_nonce ( 'customize-menus ' ),
0 commit comments