Make WordPress Core


Ignore:
Timestamp:
10/17/2015 09:14:28 PM (9 years ago)
Author:
wonderboymusic
Message:

Unit Tests: better fixtures for Tests_User.

See #30017, #33968.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/user.php

    r35245 r35247  
    66 */
    77class Tests_User extends WP_UnitTestCase {
    8     protected static $test_id;
     8    protected static $admin_id;
     9    protected static $editor_id;
    910    protected static $author_id;
     11    protected static $contrib_id;
     12    protected static $sub_id;
     13
     14    protected static $user_ids = array();
     15
    1016    protected static $_author;
    1117    protected $author;
     
    1319
    1420    public static function wpSetUpBeforeClass( $factory ) {
    15         self::$test_id = $factory->user->create( array(
     21        self::$user_ids[] = self::$contrib_id = $factory->user->create( array(
    1622            'user_login' => 'user1',
    1723            'user_nicename' => 'userone',
     
    2127            'display_name' => 'John Doe',
    2228            'user_email' => 'blackburn@battlefield3.com',
    23             'user_url' => 'http://tacos.com'
    24         ) );
    25         self::$author_id = $factory->user->create( array( 'role' => 'author' ) );
     29            'user_url' => 'http://tacos.com',
     30            'role' => 'contributor'
     31        ) );
     32
     33        self::$user_ids[] = self::$author_id = $factory->user->create( array(
     34            'user_login' => 'author_login',
     35            'user_email' => 'author@email.com',
     36            'role' => 'author'
     37        ) );
     38
     39        self::$user_ids[] = self::$admin_id = $factory->user->create( array( 'role' => 'administrator' ) );
     40        self::$user_ids[] = self::$editor_id = $factory->user->create( array(
     41            'role' => 'editor',
     42            'user_email' => 'test@test.com',
     43        ) );
     44        self::$user_ids[] = self::$sub_id = $factory->user->create( array( 'role' => 'subscriber' ) );
     45
    2646        self::$_author = get_user_by( 'ID', self::$author_id );
    2747    }
    2848
    2949    public static function wpTearDownAfterClass() {
    30         $ids = array( self::$test_id, self::$author_id );
    31         foreach ( $ids as $id ) {
     50        foreach ( self::$user_ids as $id ) {
    3251            self::delete_user( $id );
    3352        }
     
    4261    function test_get_users_of_blog() {
    4362        // add one of each user role
    44         $nusers = array();
    45         foreach ( array('administrator', 'editor', 'author', 'contributor', 'subscriber' ) as $role ) {
    46             $id = self::factory()->user->create( array( 'role' => $role ) );
    47             $nusers[ $id ] = $id;
    48         }
     63        $nusers = array(
     64            self::$contrib_id,
     65            self::$author_id,
     66            self::$admin_id,
     67            self::$editor_id,
     68            self::$sub_id,
     69        );
    4970
    5071        $user_list = get_users();
     
    5475        foreach ( $user_list as $user ) {
    5576            // only include the users we just created - there might be some others that existed previously
    56             if ( isset( $nusers[$user->ID] ) ) {
    57                 $found[ $user->ID] = $user->ID;
     77            if ( in_array( $user->ID, $nusers ) ) {
     78                $found[] = $user->ID;
    5879            }
    5980        }
    6081
    6182        // make sure every user we created was returned
    62         $this->assertEquals($nusers, $found);
     83        $this->assertEqualSets( $nusers, $found );
    6384    }
    6485
     
    237258    function test_user_level_property_back_compat() {
    238259        $roles = array(
    239             'administrator' => 10,
    240             'editor' => 7,
    241             'author' => 2,
    242             'contributor' => 1,
    243             'subscriber' => 0,
    244         );
    245 
    246         foreach ( $roles as $role => $level ) {
    247             $user_id = self::factory()->user->create( array( 'role' => $role ) );
     260            self::$admin_id => 10,
     261            self::$editor_id => 7,
     262            self::$author_id => 2,
     263            self::$contrib_id => 1,
     264            self::$sub_id => 0,
     265        );
     266
     267        foreach ( $roles as $user_id => $level ) {
    248268            $user = new WP_User( $user_id );
    249269
     
    293313
    294314    function test_get() {
    295         $user_id = self::factory()->user->create( array(
    296             'role' => 'author',
    297             'user_login' => 'test_wp_user_get',
    298             'user_pass' => 'password',
    299             'user_email' => 'test@test.com',
    300         ) );
    301 
    302         $user = new WP_User( $user_id );
    303         $this->assertEquals( 'test_wp_user_get', $user->get( 'user_login' ) );
    304         $this->assertEquals( 'test@test.com', $user->get( 'user_email' ) );
     315        $user = new WP_User( self::$author_id );
     316        $this->assertEquals( 'author_login', $user->get( 'user_login' ) );
     317        $this->assertEquals( 'author@email.com', $user->get( 'user_email' ) );
    305318        $this->assertEquals( 0, $user->get( 'use_ssl' ) );
    306319        $this->assertEquals( '', $user->get( 'field_that_does_not_exist' ) );
    307320
    308         update_user_meta( $user_id, 'dashed-key', 'abcdefg' );
     321        update_user_meta( self::$author_id, 'dashed-key', 'abcdefg' );
    309322        $this->assertEquals( 'abcdefg', $user->get( 'dashed-key' ) );
    310323    }
    311324
    312325    function test_has_prop() {
    313         $user_id = self::factory()->user->create( array(
    314             'role' => 'author',
    315             'user_login' => 'test_wp_user_has_prop',
    316             'user_pass' => 'password',
    317             'user_email' => 'test2@test.com',
    318         ) );
    319 
    320         $user = new WP_User( $user_id );
     326        $user = new WP_User( self::$author_id );
    321327        $this->assertTrue( $user->has_prop( 'user_email') );
    322328        $this->assertTrue( $user->has_prop( 'use_ssl' ) );
    323329        $this->assertFalse( $user->has_prop( 'field_that_does_not_exist' ) );
    324330
    325         update_user_meta( $user_id, 'dashed-key', 'abcdefg' );
     331        update_user_meta( self::$author_id, 'dashed-key', 'abcdefg' );
    326332        $this->assertTrue( $user->has_prop( 'dashed-key' ) );
    327333    }
    328334
    329335    function test_update_user() {
    330         $user_id = self::factory()->user->create( array(
    331             'role' => 'author',
    332             'user_login' => 'test_wp_update_user',
    333             'user_pass' => 'password',
    334             'user_email' => 'test3@test.com',
    335         ) );
    336         $user = new WP_User( $user_id );
    337 
    338         update_user_meta( $user_id, 'description', 'about me' );
     336        $user = new WP_User( self::$author_id );
     337
     338        update_user_meta( self::$author_id, 'description', 'about me' );
    339339        $this->assertEquals( 'about me', $user->get( 'description' ) );
    340340
    341         $user_data = array( 'ID' => $user_id, 'display_name' => 'test user' );
     341        $user_data = array( 'ID' => self::$author_id, 'display_name' => 'test user' );
    342342        wp_update_user( $user_data );
    343343
    344         $user = new WP_User( $user_id );
     344        $user = new WP_User( self::$author_id );
    345345        $this->assertEquals( 'test user', $user->get( 'display_name' ) );
    346346
     
    349349
    350350        // Pass as stdClass
    351         $user_data = array( 'ID' => $user_id, 'display_name' => 'a test user' );
     351        $user_data = array( 'ID' => self::$author_id, 'display_name' => 'a test user' );
    352352        wp_update_user( (object) $user_data );
    353353
    354         $user = new WP_User( $user_id );
     354        $user = new WP_User( self::$author_id );
    355355        $this->assertEquals( 'a test user', $user->get( 'display_name' ) );
    356356
    357         // Pass as WP_User
    358         $user = new WP_User( $user_id );
    359357        $user->display_name = 'some test user';
    360358        wp_update_user( $user );
    361359
    362         $user = new WP_User( $user_id );
    363360        $this->assertEquals( 'some test user', $user->get( 'display_name' ) );
    364361
    365362        // Test update of fields in _get_additional_user_keys()
    366363        $user_data = array(
    367             'ID' => $user_id, 'use_ssl' => 1, 'show_admin_bar_front' => 1,
     364            'ID' => self::$author_id, 'use_ssl' => 1, 'show_admin_bar_front' => 1,
    368365            'rich_editing' => 1, 'first_name' => 'first', 'last_name' => 'last',
    369366            'nickname' => 'nick', 'comment_shortcuts' => 'true', 'admin_color' => 'classic',
     
    372369        wp_update_user( $user_data );
    373370
    374         $user = new WP_User( $user_id );
     371        $user = new WP_User( self::$author_id );
    375372        foreach ( $user_data as $key => $value ) {
    376373            $this->assertEquals( $value, $user->get( $key ), $key );
     
    384381        global $userdata, $wpdb;
    385382
    386         $user_id = self::factory()->user->create( array( 'role' => 'subscriber' ) );
    387         wp_set_current_user( $user_id );
     383        wp_set_current_user( self::$sub_id );
    388384
    389385        $this->assertNotEmpty( $userdata );
    390386        $this->assertInstanceOf( 'WP_User', $userdata );
    391         $this->assertEquals( $userdata->ID, $user_id );
     387        $this->assertEquals( $userdata->ID, self::$sub_id );
    392388        $prefix = $wpdb->get_blog_prefix();
    393389        $cap_key = $prefix . 'capabilities';
     
    498494     */
    499495    function test_count_many_users_posts() {
    500         $user_id_a = self::factory()->user->create( array( 'role' => 'author' ) );
    501496        $user_id_b = self::factory()->user->create( array( 'role' => 'author' ) );
    502         $post_id_a = self::factory()->post->create( array( 'post_author' => $user_id_a ) );
     497        $post_id_a = self::factory()->post->create( array( 'post_author' => self::$author_id ) );
    503498        $post_id_b = self::factory()->post->create( array( 'post_author' => $user_id_b ) );
    504499        $post_id_c = self::factory()->post->create( array( 'post_author' => $user_id_b, 'post_status' => 'private' ) );
    505500
    506         wp_set_current_user( $user_id_a );
    507         $counts = count_many_users_posts( array( $user_id_a, $user_id_b), 'post', false );
    508         $this->assertEquals( 1, $counts[$user_id_a] );
     501        wp_set_current_user( self::$author_id );
     502        $counts = count_many_users_posts( array( self::$author_id, $user_id_b ), 'post', false );
     503        $this->assertEquals( 1, $counts[self::$author_id] );
    509504        $this->assertEquals( 1, $counts[$user_id_b] );
    510505
    511         $counts = count_many_users_posts( array( $user_id_a, $user_id_b), 'post', true );
    512         $this->assertEquals( 1, $counts[$user_id_a] );
     506        $counts = count_many_users_posts( array( self::$author_id, $user_id_b ), 'post', true );
     507        $this->assertEquals( 1, $counts[self::$author_id] );
    513508        $this->assertEquals( 1, $counts[$user_id_b] );
    514509
    515510        wp_set_current_user( $user_id_b );
    516         $counts = count_many_users_posts( array( $user_id_a, $user_id_b), 'post', false );
    517         $this->assertEquals( 1, $counts[$user_id_a] );
     511        $counts = count_many_users_posts( array( self::$author_id, $user_id_b ), 'post', false );
     512        $this->assertEquals( 1, $counts[self::$author_id] );
    518513        $this->assertEquals( 2, $counts[$user_id_b] );
    519514
    520         $counts = count_many_users_posts( array( $user_id_a, $user_id_b), 'post', true );
    521         $this->assertEquals( 1, $counts[$user_id_a] );
     515        $counts = count_many_users_posts( array( self::$author_id, $user_id_b ), 'post', true );
     516        $this->assertEquals( 1, $counts[self::$author_id] );
    522517        $this->assertEquals( 1, $counts[$user_id_b] );
    523518    }
     
    860855        $users = get_users( array( 'search' => 'user1', 'fields' => 'ID' ) );
    861856
    862         $this->assertTrue( in_array( self::$test_id, $users ) );
     857        $this->assertTrue( in_array( self::$contrib_id, $users ) );
    863858    }
    864859
     
    866861        $users = get_users( array( 'search' => '*tacos*', 'fields' => 'ID' ) );
    867862
    868         $this->assertTrue( in_array( self::$test_id, $users ) );
     863        $this->assertTrue( in_array( self::$contrib_id, $users ) );
    869864    }
    870865
     
    872867        $users = get_users( array( 'search' => '*battle*', 'fields' => 'ID' ) );
    873868
    874         $this->assertTrue( in_array( self::$test_id, $users ) );
     869        $this->assertTrue( in_array( self::$contrib_id, $users ) );
    875870    }
    876871
     
    878873        $users = get_users( array( 'search' => '*one*', 'fields' => 'ID' ) );
    879874
    880         $this->assertTrue( in_array( self::$test_id, $users ) );
     875        $this->assertTrue( in_array( self::$contrib_id, $users ) );
    881876    }
    882877
     
    884879        $users = get_users( array( 'search' => '*Doe*', 'fields' => 'ID' ) );
    885880
    886         $this->assertTrue( in_array( self::$test_id, $users ) );
     881        $this->assertTrue( in_array( self::$contrib_id, $users ) );
    887882    }
    888883
     
    891886     */
    892887    function test_email_case() {
    893         // Create a test user with a lower-case email address.
    894         $user_id = self::factory()->user->create( array(
    895             'user_email' => 'test@test.com',
    896         ) );
    897 
    898888        // Alter the case of the email address (which stays the same).
    899889        $userdata = array(
    900             'ID' => $user_id,
     890            'ID' => self::$editor_id,
    901891            'user_email' => 'test@TEST.com',
    902892        );
    903893        $update = wp_update_user( $userdata );
    904894
    905         $this->assertEquals( $user_id, $update );
     895        $this->assertEquals( self::$editor_id, $update );
    906896    }
    907897
     
    910900     */
    911901    function test_email_change() {
    912         // Create a test user.
    913         $user_id = self::factory()->user->create( array(
    914             'user_email' => 'test@test.com',
    915         ) );
    916 
    917902        // Change the email address.
    918903        $userdata = array(
    919             'ID' => $user_id,
     904            'ID' => self::$editor_id,
    920905            'user_email' => 'test2@test.com',
    921906        );
     
    923908
    924909        // Was this successful?
    925         $this->assertEquals( $user_id, $update );
     910        $this->assertEquals( self::$editor_id, $update );
    926911
    927912        // Verify that the email address has been updated.
    928         $user = get_userdata( $user_id );
     913        $user = get_userdata( self::$editor_id );
    929914        $this->assertEquals( $user->user_email, 'test2@test.com' );
    930915    }
     
    942927        $was_user_email_sent = false;
    943928
    944         wp_new_user_notification( self::$test_id, null, $notify );
     929        wp_new_user_notification( self::$contrib_id, null, $notify );
    945930
    946931        /*
     
    999984     */
    1000985    function test_wp_new_user_notification_old_signature_throws_deprecated_warning() {
    1001         $user = self::factory()->user->create( array(
    1002             'role'       => 'author',
    1003             'user_login' => 'test_wp_new_user_notification',
    1004             'user_pass'  => 'password',
    1005             'user_email' => 'test@test.com',
    1006         ) );
    1007 
    1008         wp_new_user_notification( $user, 'this_is_deprecated' );
     986        wp_new_user_notification( self::$author_id, 'this_is_deprecated' );
    1009987    }
    1010988
Note: See TracChangeset for help on using the changeset viewer.