Make WordPress Core


Ignore:
Timestamp:
11/05/2019 08:41:12 PM (7 years ago)
Author:
SergeyBiryukov
Message:

REST API: Speed up pagination unit tests by creating less fixtures and reusing them where possible.

Includes minor documentation and code layout fixes for better readability.

See #30017, #48145.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/rest-api/rest-users-controller.php

    r46586 r46657  
    1616        protected static $draft_editor;
    1717        protected static $subscriber;
    18         protected static $authors = array();
    19         protected static $posts   = array();
     18
     19        protected static $authors     = array();
     20        protected static $posts       = array();
     21        protected static $user_ids    = array();
     22        protected static $total_users = 30;
     23        protected static $per_page    = 50;
     24
    2025        protected static $site;
    2126
     
    101106                        update_site_option( 'site_admins', array( 'superadmin' ) );
    102107                }
     108
     109                // Set up users for pagination tests.
     110                for ( $i = 0; $i < self::$total_users - 10; $i++ ) {
     111                        self::$user_ids[] = $factory->user->create(
     112                                array(
     113                                        'role'         => 'contributor',
     114                                        'display_name' => "User {$i}",
     115                                )
     116                        );
     117                }
    103118        }
    104119
     
    111126                        wp_delete_post( $post, true );
    112127                }
     128
    113129                foreach ( self::$authors as $author ) {
    114130                        self::delete_user( $author );
    115131                }
     132
    116133                _unregister_post_type( 'r_true_p_true' );
    117134                _unregister_post_type( 'r_true_p_false' );
     
    121138                if ( is_multisite() ) {
    122139                        wpmu_delete_blog( self::$site, true );
     140                }
     141
     142                // Remove users for pagination tests.
     143                foreach ( self::$user_ids as $user_id ) {
     144                        self::delete_user( $user_id );
    123145                }
    124146        }
     
    213235
    214236        public function test_get_items_with_edit_context_without_permission() {
    215                 //test with a user not logged in
     237                // Test with a user not logged in.
    216238                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
    217239                $request->set_param( 'context', 'edit' );
     
    220242                $this->assertEquals( 401, $response->get_status() );
    221243
    222                 //test with a user logged in but without sufficient capabilities; capability in question: 'list_users'
     244                // Test with a user logged in but without sufficient capabilities;
     245                // capability in question: 'list_users'.
    223246                wp_set_current_user( self::$editor );
     247
    224248                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
    225249                $request->set_param( 'context', 'edit' );
     
    281305
    282306        public function test_get_items_pagination_headers() {
    283                 wp_set_current_user( self::$user );
    284                 for ( $i = 0; $i < 44; $i++ ) {
    285                         $this->factory->user->create(
    286                                 array(
    287                                         'name' => "User {$i}",
    288                                 )
    289                         );
    290                 }
     307                $total_users = self::$total_users;
     308                $total_pages = (int) ceil( $total_users / 10 );
     309
     310                wp_set_current_user( self::$user );
     311
     312                // Start of the index.
    291313                $request  = new WP_REST_Request( 'GET', '/wp/v2/users' );
    292314                $response = rest_get_server()->dispatch( $request );
    293315                $headers  = $response->get_headers();
    294                 $this->assertEquals( 54, $headers['X-WP-Total'] );
    295                 $this->assertEquals( 6, $headers['X-WP-TotalPages'] );
     316                $this->assertEquals( $total_users, $headers['X-WP-Total'] );
     317                $this->assertEquals( $total_pages, $headers['X-WP-TotalPages'] );
    296318                $next_link = add_query_arg(
    297319                        array(
     
    302324                $this->assertFalse( stripos( $headers['Link'], 'rel="prev"' ) );
    303325                $this->assertContains( '<' . $next_link . '>; rel="next"', $headers['Link'] );
    304                 // 3rd page
    305                 $this->factory->user->create(
    306                         array(
    307                                 'name' => 'User 51',
    308                         )
    309                 );
     326
     327                // 3rd page.
     328                $this->factory->user->create();
     329                $total_users++;
     330                $total_pages++;
    310331                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
    311332                $request->set_param( 'page', 3 );
    312333                $response = rest_get_server()->dispatch( $request );
    313334                $headers  = $response->get_headers();
    314                 $this->assertEquals( 55, $headers['X-WP-Total'] );
    315                 $this->assertEquals( 6, $headers['X-WP-TotalPages'] );
     335                $this->assertEquals( $total_users, $headers['X-WP-Total'] );
     336                $this->assertEquals( $total_pages, $headers['X-WP-TotalPages'] );
    316337                $prev_link = add_query_arg(
    317338                        array(
     
    328349                );
    329350                $this->assertContains( '<' . $next_link . '>; rel="next"', $headers['Link'] );
    330                 // Last page
    331                 $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
    332                 $request->set_param( 'page', 6 );
     351
     352                // Last page.
     353                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
     354                $request->set_param( 'page', $total_pages );
    333355                $response = rest_get_server()->dispatch( $request );
    334356                $headers  = $response->get_headers();
    335                 $this->assertEquals( 55, $headers['X-WP-Total'] );
    336                 $this->assertEquals( 6, $headers['X-WP-TotalPages'] );
     357                $this->assertEquals( $total_users, $headers['X-WP-Total'] );
     358                $this->assertEquals( $total_pages, $headers['X-WP-TotalPages'] );
    337359                $prev_link = add_query_arg(
    338360                        array(
    339                                 'page' => 5,
     361                                'page' => $total_pages - 1,
    340362                        ),
    341363                        rest_url( 'wp/v2/users' )
     
    343365                $this->assertContains( '<' . $prev_link . '>; rel="prev"', $headers['Link'] );
    344366                $this->assertFalse( stripos( $headers['Link'], 'rel="next"' ) );
    345                 // Out of bounds
    346                 $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
    347                 $request->set_param( 'page', 8 );
     367
     368                // Out of bounds.
     369                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
     370                $request->set_param( 'page', 100 );
    348371                $response = rest_get_server()->dispatch( $request );
    349372                $headers  = $response->get_headers();
    350                 $this->assertEquals( 55, $headers['X-WP-Total'] );
    351                 $this->assertEquals( 6, $headers['X-WP-TotalPages'] );
     373                $this->assertEquals( $total_users, $headers['X-WP-Total'] );
     374                $this->assertEquals( $total_pages, $headers['X-WP-TotalPages'] );
    352375                $prev_link = add_query_arg(
    353376                        array(
    354                                 'page' => 6,
     377                                'page' => $total_pages,
    355378                        ),
    356379                        rest_url( 'wp/v2/users' )
     
    362385        public function test_get_items_per_page() {
    363386                wp_set_current_user( self::$user );
    364                 for ( $i = 0; $i < 20; $i++ ) {
    365                         $this->factory->user->create( array( 'display_name' => "User {$i}" ) );
    366                 }
     387
    367388                $request  = new WP_REST_Request( 'GET', '/wp/v2/users' );
    368389                $response = rest_get_server()->dispatch( $request );
    369390                $this->assertEquals( 10, count( $response->get_data() ) );
     391
    370392                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
    371393                $request->set_param( 'per_page', 5 );
     
    376398        public function test_get_items_page() {
    377399                wp_set_current_user( self::$user );
    378                 for ( $i = 0; $i < 20; $i++ ) {
    379                         $this->factory->user->create( array( 'display_name' => "User {$i}" ) );
    380                 }
     400
    381401                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
    382402                $request->set_param( 'per_page', 5 );
     
    397417        public function test_get_items_orderby_name() {
    398418                wp_set_current_user( self::$user );
     419
    399420                $low_id  = $this->factory->user->create( array( 'display_name' => 'AAAAA' ) );
    400421                $mid_id  = $this->factory->user->create( array( 'display_name' => 'NNNNN' ) );
    401422                $high_id = $this->factory->user->create( array( 'display_name' => 'ZZZZ' ) );
     423
    402424                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
    403425                $request->set_param( 'orderby', 'name' );
     
    407429                $data     = $response->get_data();
    408430                $this->assertEquals( $high_id, $data[0]['id'] );
     431
    409432                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
    410433                $request->set_param( 'orderby', 'name' );
     
    429452                $response = rest_get_server()->dispatch( $request );
    430453                $data     = $response->get_data();
    431 
    432454                $this->assertEquals( $high_id, $data[0]['id'] );
    433455
     
    455477                $response = rest_get_server()->dispatch( $request );
    456478                $data     = $response->get_data();
    457 
    458479                $this->assertEquals( $high_id, $data[0]['id'] );
    459480
     
    543564        public function test_get_items_offset() {
    544565                wp_set_current_user( self::$user );
    545                 // 9 users created in wpSetUpBeforeClass(), plus default user.
    546                 $this->factory->user->create();
    547                 $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
     566
     567                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
     568                $request->set_param( 'per_page', self::$per_page );
    548569                $request->set_param( 'offset', 1 );
    549570                $response = rest_get_server()->dispatch( $request );
    550                 $this->assertCount( 10, $response->get_data() );
    551                 // 'offset' works with 'per_page'
     571                $this->assertCount( self::$total_users - 1, $response->get_data() );
     572
     573                // 'offset' works with 'per_page'.
    552574                $request->set_param( 'per_page', 2 );
    553575                $response = rest_get_server()->dispatch( $request );
    554576                $this->assertCount( 2, $response->get_data() );
    555                 // 'offset' takes priority over 'page'
     577
     578                // 'offset' takes priority over 'page'.
    556579                $request->set_param( 'page', 3 );
    557580                $response = rest_get_server()->dispatch( $request );
    558581                $this->assertCount( 2, $response->get_data() );
    559                 // 'offset' invalid value should error
     582
     583                // Invalid 'offset' should error.
    560584                $request->set_param( 'offset', 'moreplease' );
    561585                $response = rest_get_server()->dispatch( $request );
     
    565589        public function test_get_items_include_query() {
    566590                wp_set_current_user( self::$user );
    567                 $id1     = $this->factory->user->create();
    568                 $id2     = $this->factory->user->create();
    569                 $id3     = $this->factory->user->create();
    570                 $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
    571                 // Orderby=>asc
    572                 $request->set_param( 'include', array( $id3, $id1 ) );
     591
     592                $id1 = $this->factory->user->create();
     593                $id2 = $this->factory->user->create();
     594
     595                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
     596
     597                // 'orderby' => 'asc'.
     598                $request->set_param( 'include', array( $id2, $id1 ) );
    573599                $response = rest_get_server()->dispatch( $request );
    574600                $data     = $response->get_data();
    575601                $this->assertEquals( 2, count( $data ) );
    576602                $this->assertEquals( $id1, $data[0]['id'] );
    577                 // Orderby=>include
     603
     604                // 'orderby' => 'include'.
    578605                $request->set_param( 'orderby', 'include' );
    579606                $response = rest_get_server()->dispatch( $request );
    580607                $data     = $response->get_data();
    581608                $this->assertEquals( 2, count( $data ) );
    582                 $this->assertEquals( $id3, $data[0]['id'] );
    583                 // Invalid include should fail
     609                $this->assertEquals( $id2, $data[0]['id'] );
     610
     611                // Invalid 'include' should error.
    584612                $request->set_param( 'include', 'invalid' );
    585613                $response = rest_get_server()->dispatch( $request );
    586614                $this->assertErrorResponse( 'rest_invalid_param', $response, 400 );
    587                 // No privileges
    588                 $request->set_param( 'include', array( $id3, $id1 ) );
     615
     616                // No privileges.
     617                $request->set_param( 'include', array( $id2, $id1 ) );
    589618                wp_set_current_user( 0 );
    590619                $response = rest_get_server()->dispatch( $request );
     
    596625        public function test_get_items_exclude_query() {
    597626                wp_set_current_user( self::$user );
    598                 $id1     = $this->factory->user->create();
    599                 $id2     = $this->factory->user->create();
    600                 $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
    601                 $request->set_param( 'per_page', 20 ); // there are >10 users at this point
    602                 $response = rest_get_server()->dispatch( $request );
    603                 $data     = $response->get_data();
    604                 $this->assertTrue( in_array( $id1, wp_list_pluck( $data, 'id' ), true ) );
    605                 $this->assertTrue( in_array( $id2, wp_list_pluck( $data, 'id' ), true ) );
     627
     628                $id1 = $this->factory->user->create();
     629                $id2 = $this->factory->user->create();
     630
     631                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
     632                $request->set_param( 'per_page', self::$per_page ); // There are >10 users at this point.
     633                $response = rest_get_server()->dispatch( $request );
     634                $data     = $response->get_data();
     635                $ids      = wp_list_pluck( $data, 'id' );
     636                $this->assertTrue( in_array( $id1, $ids, true ) );
     637                $this->assertTrue( in_array( $id2, $ids, true ) );
     638
    606639                $request->set_param( 'exclude', array( $id2 ) );
    607640                $response = rest_get_server()->dispatch( $request );
    608641                $data     = $response->get_data();
    609                 $this->assertTrue( in_array( $id1, wp_list_pluck( $data, 'id' ), true ) );
    610                 $this->assertFalse( in_array( $id2, wp_list_pluck( $data, 'id' ), true ) );
    611                 // Invalid exlude value should error.
     642                $ids      = wp_list_pluck( $data, 'id' );
     643                $this->assertTrue( in_array( $id1, $ids, true ) );
     644                $this->assertFalse( in_array( $id2, $ids, true ) );
     645
     646                // Invalid 'exclude' should error.
    612647                $request->set_param( 'exclude', 'none-of-those-please' );
    613648                $response = rest_get_server()->dispatch( $request );
     
    617652        public function test_get_items_search() {
    618653                wp_set_current_user( self::$user );
     654
    619655                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
    620656                $request->set_param( 'search', 'yololololo' );
    621657                $response = rest_get_server()->dispatch( $request );
    622658                $this->assertEquals( 0, count( $response->get_data() ) );
     659
    623660                $yolo_id = $this->factory->user->create( array( 'display_name' => 'yololololo' ) );
     661
    624662                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
    625663                $request->set_param( 'search', 'yololololo' );
     
    633671                        )
    634672                );
     673
    635674                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
    636675                $request->set_param( 'search', 'ada' );
     
    643682        public function test_get_items_slug_query() {
    644683                wp_set_current_user( self::$user );
     684
    645685                $this->factory->user->create(
    646686                        array(
     
    649689                        )
    650690                );
    651                 $id2     = $this->factory->user->create(
     691                $id2 = $this->factory->user->create(
    652692                        array(
    653693                                'display_name' => 'Moo',
     
    655695                        )
    656696                );
     697
    657698                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
    658699                $request->set_param( 'slug', 'foo' );
     
    665706        public function test_get_items_slug_array_query() {
    666707                wp_set_current_user( self::$user );
     708
    667709                $id1 = $this->factory->user->create(
    668710                        array(
     
    689731                        )
    690732                );
     733
    691734                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
    692735                $request->set_param(
     
    709752        public function test_get_items_slug_csv_query() {
    710753                wp_set_current_user( self::$user );
     754
    711755                $id1 = $this->factory->user->create(
    712756                        array(
     
    733777                        )
    734778                );
     779
    735780                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
    736781                $request->set_param( 'slug', 'taco,burrito , enchilada' );
     
    747792        public function test_get_items_roles() {
    748793                wp_set_current_user( self::$user );
    749                 $tango   = $this->factory->user->create(
     794
     795                $tango = $this->factory->user->create(
    750796                        array(
    751797                                'display_name' => 'tango',
     
    753799                        )
    754800                );
    755                 $yolo    = $this->factory->user->create(
     801                $yolo  = $this->factory->user->create(
    756802                        array(
    757803                                'display_name' => 'yolo',
     
    759805                        )
    760806                );
     807
    761808                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
    762809                $request->set_param( 'roles', 'author,subscriber' );
     
    766813                $this->assertEquals( $tango, $data[1]['id'] );
    767814                $this->assertEquals( $yolo, $data[2]['id'] );
     815
    768816                $request->set_param( 'roles', 'author' );
    769817                $response = rest_get_server()->dispatch( $request );
     
    771819                $this->assertEquals( 1, count( $data ) );
    772820                $this->assertEquals( $yolo, $data[0]['id'] );
     821
    773822                wp_set_current_user( 0 );
     823
    774824                $request->set_param( 'roles', 'author' );
    775825                $response = rest_get_server()->dispatch( $request );
    776826                $this->assertErrorResponse( 'rest_user_cannot_view', $response, 401 );
     827
    777828                wp_set_current_user( self::$editor );
     829
    778830                $request->set_param( 'roles', 'author' );
    779831                $response = rest_get_server()->dispatch( $request );
     
    783835        public function test_get_items_invalid_roles() {
    784836                wp_set_current_user( self::$user );
    785                 $lolz    = $this->factory->user->create(
     837
     838                $lolz = $this->factory->user->create(
    786839                        array(
    787840                                'display_name' => 'lolz',
     
    789842                        )
    790843                );
     844
    791845                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
    792846                $request->set_param( 'roles', 'ilovesteak,author' );
     
    795849                $this->assertEquals( 1, count( $data ) );
    796850                $this->assertEquals( $lolz, $data[0]['id'] );
     851
    797852                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
    798853                $request->set_param( 'roles', 'steakisgood' );
     
    805860        public function test_get_items_who_author_query() {
    806861                wp_set_current_user( self::$superadmin );
     862
    807863                // First request should include subscriber in the set.
    808864                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
     
    811867                $this->assertEquals( 200, $response->get_status() );
    812868                $this->assertCount( 1, $response->get_data() );
     869
    813870                // Second request should exclude subscriber.
    814871                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
     
    822879        public function test_get_items_who_invalid_query() {
    823880                wp_set_current_user( self::$user );
     881
    824882                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
    825883                $request->set_param( 'who', 'editor' );
     
    834892        public function test_get_items_who_unauthorized_query() {
    835893                wp_set_current_user( self::$subscriber );
     894
    836895                $request = new WP_REST_Request( 'GET', '/wp/v2/users' );
    837896                $request->set_param( 'who', 'authors' );
     
    842901        public function test_get_item() {
    843902                $user_id = $this->factory->user->create();
    844                 wp_set_current_user( self::$user );
    845 
    846                 $request = new WP_REST_Request( 'GET', sprintf( '/wp/v2/users/%d', $user_id ) );
    847 
     903
     904                wp_set_current_user( self::$user );
     905
     906                $request  = new WP_REST_Request( 'GET', sprintf( '/wp/v2/users/%d', $user_id ) );
    848907                $response = rest_get_server()->dispatch( $request );
    849908                $this->check_get_user_response( $response, 'embed' );
     
    852911        public function test_prepare_item() {
    853912                wp_set_current_user( self::$user );
     913
    854914                $request = new WP_REST_Request;
    855915                $request->set_param( 'context', 'edit' );
     
    861921        public function test_prepare_item_limit_fields() {
    862922                wp_set_current_user( self::$user );
     923
    863924                $request = new WP_REST_Request;
    864925                $request->set_param( 'context', 'edit' );
     
    878939                wp_set_current_user( self::$user );
    879940
    880                 $request = new WP_REST_Request( 'GET', sprintf( '/wp/v2/users/%d', self::$editor ) );
    881 
     941                $request  = new WP_REST_Request( 'GET', sprintf( '/wp/v2/users/%d', self::$editor ) );
    882942                $response = rest_get_server()->dispatch( $request );
    883943
     
    906966        public function test_get_user_empty_capabilities() {
    907967                wp_set_current_user( self::$user );
     968
    908969                $this->allow_user_to_manage_multisite();
    909970
     
    914975                        )
    915976                );
     977
    916978                delete_user_option( $lolz, 'capabilities' );
    917979                delete_user_option( $lolz, 'user_level' );
     980
    918981                $request = new WP_REST_Request( 'GET', '/wp/v2/users/' . $lolz );
    919982                $request->set_param( 'context', 'edit' );
     
    932995        public function test_cannot_get_item_without_permission() {
    933996                wp_set_current_user( self::$editor );
     997
    934998                $request  = new WP_REST_Request( 'GET', sprintf( '/wp/v2/users/%d', self::$user ) );
    935999                $response = rest_get_server()->dispatch( $request );
     
    9451009        public function test_can_get_item_author_of_rest_true_public_true_authenticated() {
    9461010                wp_set_current_user( self::$editor );
     1011
    9471012                $request  = new WP_REST_Request( 'GET', sprintf( '/wp/v2/users/%d', self::$authors['r_true_p_true'] ) );
    9481013                $response = rest_get_server()->dispatch( $request );
     
    9641029        public function test_cannot_get_item_author_of_rest_false_public_true_without_permission() {
    9651030                wp_set_current_user( self::$editor );
     1031
    9661032                $request  = new WP_REST_Request( 'GET', sprintf( '/wp/v2/users/%d', self::$authors['r_false_p_true'] ) );
    9671033                $response = rest_get_server()->dispatch( $request );
     
    9931059                        )
    9941060                );
    995                 $this->post_id   = $this->factory->post->create(
     1061
     1062                $this->post_id = $this->factory->post->create(
    9961063                        array(
    9971064                                'post_author' => $this->author_id,
    9981065                        )
    9991066                );
     1067
    10001068                wp_set_current_user( 0 );
     1069
    10011070                $request  = new WP_REST_Request( 'GET', sprintf( '/wp/v2/users/%d', $this->author_id ) );
    10021071                $response = rest_get_server()->dispatch( $request );
     
    10101079                        )
    10111080                );
     1081
    10121082                wp_set_current_user( 0 );
     1083
    10131084                $request  = new WP_REST_Request( 'GET', sprintf( '/wp/v2/users/%d', $this->author_id ) );
    10141085                $response = rest_get_server()->dispatch( $request );
    10151086                $this->assertEquals( 401, $response->get_status() );
     1087
    10161088                $this->post_id = $this->factory->post->create(
    10171089                        array(
     
    10201092                        )
    10211093                );
    1022                 $response      = rest_get_server()->dispatch( $request );
     1094
     1095                $response = rest_get_server()->dispatch( $request );
    10231096                $this->check_get_user_response( $response, 'embed' );
    10241097        }
     
    10261099        public function test_get_user_with_edit_context() {
    10271100                $user_id = $this->factory->user->create();
     1101
    10281102                $this->allow_user_to_manage_multisite();
    10291103
    10301104                $request = new WP_REST_Request( 'GET', sprintf( '/wp/v2/users/%d', $user_id ) );
    10311105                $request->set_param( 'context', 'edit' );
    1032 
    10331106                $response = rest_get_server()->dispatch( $request );
    10341107                $this->check_get_user_response( $response, 'edit' );
     
    10411114                        )
    10421115                );
    1043                 $this->post_id   = $this->factory->post->create(
     1116
     1117                $this->post_id = $this->factory->post->create(
    10441118                        array(
    10451119                                'post_author' => $this->author_id,
    10461120                        )
    10471121                );
     1122
    10481123                wp_set_current_user( 0 );
     1124
    10491125                $request = new WP_REST_Request( 'GET', sprintf( '/wp/v2/users/%d', $this->author_id ) );
    10501126                $request->set_param( 'context', 'edit' );
     
    10561132                wp_set_current_user( self::$user );
    10571133
    1058                 $request = new WP_REST_Request( 'GET', '/wp/v2/users/me' );
    1059 
     1134                $request  = new WP_REST_Request( 'GET', '/wp/v2/users/me' );
    10601135                $response = rest_get_server()->dispatch( $request );
    10611136                $this->assertEquals( 200, $response->get_status() );
     
    10711146        public function test_get_current_user_without_permission() {
    10721147                wp_set_current_user( 0 );
     1148
    10731149                $request  = new WP_REST_Request( 'GET', '/wp/v2/users/me' );
    10741150                $response = rest_get_server()->dispatch( $request );
    1075 
    10761151                $this->assertErrorResponse( 'rest_not_logged_in', $response, 401 );
    10771152        }
     
    10791154        public function test_create_item() {
    10801155                $this->allow_user_to_manage_multisite();
     1156
    10811157                wp_set_current_user( self::$user );
    10821158
     
    10961172                $request->add_header( 'content-type', 'application/x-www-form-urlencoded' );
    10971173                $request->set_body_params( $params );
    1098 
    1099                 $response = rest_get_server()->dispatch( $request );
    1100                 $data     = $response->get_data();
     1174                $response = rest_get_server()->dispatch( $request );
     1175
     1176                $data = $response->get_data();
    11011177                $this->assertEquals( 'http://example.com', $data['url'] );
    11021178                $this->assertEquals( array( 'editor' ), $data['roles'] );
     
    11061182        public function test_create_item_invalid_username() {
    11071183                $this->allow_user_to_manage_multisite();
     1184
    11081185                wp_set_current_user( self::$user );
    11091186
     
    11281205                $request->add_header( 'content-type', 'application/x-www-form-urlencoded' );
    11291206                $request->set_body_params( $params );
    1130 
    11311207                $response = rest_get_server()->dispatch( $request );
    11321208                $this->assertErrorResponse( 'rest_invalid_param', $response, 400 );
    11331209
    11341210                $data = $response->get_data();
     1211
    11351212                if ( is_multisite() ) {
    11361213                        $this->assertInternalType( 'array', $data['additional_errors'] );
     
    11531230        public function test_create_item_illegal_username() {
    11541231                $this->allow_user_to_manage_multisite();
     1232
    11551233                wp_set_current_user( self::$user );
    11561234
     
    11721250                $request->add_header( 'content-type', 'application/x-www-form-urlencoded' );
    11731251                $request->set_body_params( $params );
    1174 
    11751252                $response = rest_get_server()->dispatch( $request );
    11761253
     
    13201397        public function test_json_create_user() {
    13211398                $this->allow_user_to_manage_multisite();
     1399
    13221400                wp_set_current_user( self::$user );
    13231401
     
    13311409                $request->add_header( 'content-type', 'application/json' );
    13321410                $request->set_body( wp_json_encode( $params ) );
    1333 
    1334                 $response = rest_get_server()->dispatch( $request );
     1411                $response = rest_get_server()->dispatch( $request );
     1412
    13351413                $this->check_add_edit_user_response( $response );
    13361414        }
     
    13551433        public function test_create_user_invalid_id() {
    13561434                $this->allow_user_to_manage_multisite();
     1435
    13571436                wp_set_current_user( self::$user );
    13581437
     
    13741453        public function test_create_user_invalid_email() {
    13751454                $this->allow_user_to_manage_multisite();
     1455
    13761456                wp_set_current_user( self::$user );
    13771457
     
    13921472        public function test_create_user_invalid_role() {
    13931473                $this->allow_user_to_manage_multisite();
     1474
    13941475                wp_set_current_user( self::$user );
    13951476
     
    14201501                        )
    14211502                );
    1422                 $this->allow_user_to_manage_multisite();
     1503
     1504                $this->allow_user_to_manage_multisite();
     1505
    14231506                wp_set_current_user( self::$user );
    14241507
     
    14351518                $request->add_header( 'content-type', 'application/x-www-form-urlencoded' );
    14361519                $request->set_body_params( $_POST );
    1437 
    1438                 $response = rest_get_server()->dispatch( $request );
     1520                $response = rest_get_server()->dispatch( $request );
     1521
    14391522                $this->check_add_edit_user_response( $response, true );
    14401523
     
    14561539        public function test_update_item_no_change() {
    14571540                $this->allow_user_to_manage_multisite();
    1458                 wp_set_current_user( self::$user );
     1541
     1542                wp_set_current_user( self::$user );
     1543
    14591544                $user = get_userdata( self::$editor );
    14601545
     
    14841569                        )
    14851570                );
    1486                 $this->allow_user_to_manage_multisite();
     1571
     1572                $this->allow_user_to_manage_multisite();
     1573
    14871574                wp_set_current_user( self::$user );
    14881575
     
    15401627                        )
    15411628                );
    1542                 $this->allow_user_to_manage_multisite();
     1629
     1630                $this->allow_user_to_manage_multisite();
     1631
    15431632                wp_set_current_user( self::$user );
    15441633
     
    15571646                        )
    15581647                );
    1559                 $this->allow_user_to_manage_multisite();
     1648
     1649                $this->allow_user_to_manage_multisite();
     1650
    15601651                wp_set_current_user( self::$user );
    15611652
     
    15801671                        )
    15811672                );
    1582                 $this->allow_user_to_manage_multisite();
     1673
     1674                $this->allow_user_to_manage_multisite();
     1675
    15831676                wp_set_current_user( self::$user );
    15841677
     
    16071700                        )
    16081701                );
    1609                 $this->allow_user_to_manage_multisite();
     1702
     1703                $this->allow_user_to_manage_multisite();
     1704
    16101705                wp_set_current_user( self::$user );
    16111706
     
    16301725                        )
    16311726                );
    1632                 $this->allow_user_to_manage_multisite();
     1727
     1728                $this->allow_user_to_manage_multisite();
     1729
    16331730                wp_set_current_user( self::$user );
    16341731
     
    16501747                        )
    16511748                );
    1652                 $this->allow_user_to_manage_multisite();
     1749
     1750                $this->allow_user_to_manage_multisite();
     1751
    16531752                wp_set_current_user( self::$user );
    16541753
     
    16871786
    16881787                wp_set_current_user( self::$user );
     1788
    16891789                $this->allow_user_to_manage_multisite();
    16901790
     
    17071807
    17081808                wp_set_current_user( self::$user );
     1809
    17091810                $this->allow_user_to_manage_multisite();
    17101811
     
    18101911        public function test_update_user_role_invalid_role() {
    18111912                wp_set_current_user( self::$user );
     1913
    18121914                $this->allow_user_to_manage_multisite();
    18131915
     
    18591961        public function test_update_user_invalid_id() {
    18601962                $this->allow_user_to_manage_multisite();
     1963
    18611964                wp_set_current_user( self::$user );
    18621965
    18631966                $params = array(
    1864                         'id'       => '156',
     1967                        'id'       => '0',
    18651968                        'username' => 'lisasimpson',
    18661969                        'password' => 'DavidHasselhoff',
     
    18871990
    18881991                wp_set_current_user( self::$editor );
     1992
    18891993                $request = new WP_REST_Request( 'PUT', sprintf( '/wp/v2/users/%d', $user_id ) );
    18901994                $request->set_param( 'roles', array( 'editor' ) );
     
    19042008
    19052009                wp_set_current_user( self::$user );
     2010
    19062011                $request = new WP_REST_Request( 'PUT', sprintf( '/wp/v2/users/%d', $user_id ) );
    19072012                $request->set_param( 'roles', array( 'editor' ) );
     
    19242029
    19252030                wp_set_current_user( self::$user );
     2031
    19262032                $request = new WP_REST_Request( 'PUT', sprintf( '/wp/v2/users/%d', $user_id ) );
    19272033                $request->set_param( 'roles', array( 'editor' ) );
     
    19462052        public function test_update_item_invalid_password() {
    19472053                $this->allow_user_to_manage_multisite();
     2054
    19482055                wp_set_current_user( self::$user );
    19492056
    19502057                $request = new WP_REST_Request( 'PUT', sprintf( '/wp/v2/users/%d', self::$editor ) );
    1951 
    19522058                $request->set_param( 'password', 'no\\backslashes\\allowed' );
    19532059                $response = rest_get_server()->dispatch( $request );
     
    20352141        public function test_user_roundtrip_as_editor() {
    20362142                wp_set_current_user( self::$editor );
     2143
    20372144                $this->assertEquals( ! is_multisite(), current_user_can( 'unfiltered_html' ) );
    20382145                $this->verify_user_roundtrip(
     
    20612168        public function test_user_roundtrip_as_editor_html() {
    20622169                wp_set_current_user( self::$editor );
     2170
    20632171                if ( is_multisite() ) {
    20642172                        $this->assertFalse( current_user_can( 'unfiltered_html' ) );
     
    21122220        public function test_user_roundtrip_as_superadmin() {
    21132221                wp_set_current_user( self::$superadmin );
     2222
    21142223                $this->assertTrue( current_user_can( 'unfiltered_html' ) );
    21152224                $valid_username = is_multisite() ? 'noinvalidcharshere' : 'no-invalid-chars-here';
     
    21402249        public function test_user_roundtrip_as_superadmin_html() {
    21412250                wp_set_current_user( self::$superadmin );
     2251
    21422252                $this->assertTrue( current_user_can( 'unfiltered_html' ) );
    21432253                $valid_username = is_multisite() ? 'noinvalidcharshere' : 'no-invalid-chars-here';
     
    21702280
    21712281                $this->allow_user_to_manage_multisite();
    2172                 wp_set_current_user( self::$user );
    2173 
    2174                 $userdata = get_userdata( $user_id ); // cache for later
     2282
     2283                wp_set_current_user( self::$user );
     2284
     2285                $userdata = get_userdata( $user_id ); // Cache for later.
    21752286                $request  = new WP_REST_Request( 'DELETE', sprintf( '/wp/v2/users/%d', $user_id ) );
    21762287                $request->set_param( 'force', true );
     
    21942305
    21952306                $this->allow_user_to_manage_multisite();
    2196                 wp_set_current_user( self::$user );
    2197 
    2198                 $userdata = get_userdata( $user_id ); // cache for later
     2307
     2308                wp_set_current_user( self::$user );
     2309
     2310                $userdata = get_userdata( $user_id ); // Cache for later.
    21992311
    22002312                $request = new WP_REST_Request( 'DELETE', sprintf( '/wp/v2/users/%d', $user_id ) );
     
    22142326                $this->assertErrorResponse( 'rest_trash_not_supported', $response, 501 );
    22152327
    2216                 // Ensure the user still exists
     2328                // Ensure the user still exists.
    22172329                $user = get_user_by( 'id', $user_id );
    22182330                $this->assertNotEmpty( $user );
     
    22852397
    22862398                $this->allow_user_to_manage_multisite();
     2399
    22872400                wp_set_current_user( self::$editor );
    22882401
     
    23042417        public function test_delete_user_invalid_id() {
    23052418                $this->allow_user_to_manage_multisite();
     2419
    23062420                wp_set_current_user( self::$user );
    23072421
     
    23172431                $this->allow_user_to_manage_multisite();
    23182432
    2319                 // Test with a new user, to avoid any complications
     2433                // Test with a new user, to avoid any complications.
    23202434                $user_id     = $this->factory->user->create();
    23212435                $reassign_id = $this->factory->user->create();
     
    23262440                );
    23272441
    2328                 // Sanity check to ensure the factory created the post correctly
     2442                // Sanity check to ensure the factory created the post correctly.
    23292443                $post = get_post( $test_post );
    23302444                $this->assertEquals( $user_id, $post->post_author );
    23312445
    2332                 // Delete our test user, and reassign to the new author
    2333                 wp_set_current_user( self::$user );
     2446                wp_set_current_user( self::$user );
     2447
     2448                // Delete our test user, and reassign to the new author.
    23342449                $request          = new WP_REST_Request( 'DELETE', sprintf( '/wp/v2/users/%d', $user_id ) );
    23352450                $request['force'] = true;
     
    23542469
    23552470                $this->allow_user_to_manage_multisite();
     2471
    23562472                wp_set_current_user( self::$user );
    23572473
     
    23742490
    23752491                $this->allow_user_to_manage_multisite();
     2492
    23762493                wp_set_current_user( self::$user );
    23772494
     
    23882505
    23892506                $this->allow_user_to_manage_multisite();
     2507
    23902508                wp_set_current_user( self::$user );
    23912509
     
    24152533
    24162534                $this->allow_user_to_manage_multisite();
     2535
    24172536                wp_set_current_user( self::$user );
    24182537
     
    24422561
    24432562                $this->allow_user_to_manage_multisite();
     2563
    24442564                wp_set_current_user( self::$user );
    24452565
     
    24692589
    24702590                $this->allow_user_to_manage_multisite();
     2591
    24712592                wp_set_current_user( self::$user );
    24722593
     
    25572678                );
    25582679
    2559                 $request = new WP_REST_Request( 'OPTIONS', '/wp/v2/users' );
    2560 
     2680                $request  = new WP_REST_Request( 'OPTIONS', '/wp/v2/users' );
    25612681                $response = rest_get_server()->dispatch( $request );
    25622682                $data     = $response->get_data();
     
    25662686
    25672687                wp_set_current_user( 1 );
     2688
    25682689                if ( is_multisite() ) {
    25692690                        $current_user = wp_get_current_user( 1 );
     
    25712692                }
    25722693
    2573                 $request = new WP_REST_Request( 'GET', '/wp/v2/users/1' );
    2574 
     2694                $request  = new WP_REST_Request( 'GET', '/wp/v2/users/1' );
    25752695                $response = rest_get_server()->dispatch( $request );
    25762696                $this->assertArrayHasKey( 'my_custom_int', $response->data );
     
    25822702                        )
    25832703                );
    2584 
    25852704                $response = rest_get_server()->dispatch( $request );
    25862705                $this->assertEquals( 123, get_user_meta( 1, 'my_custom_int', true ) );
     
    25952714                        )
    25962715                );
    2597 
    2598                 $response = rest_get_server()->dispatch( $request );
    2599 
     2716                $response = rest_get_server()->dispatch( $request );
    26002717                $this->assertEquals( 123, $response->data['my_custom_int'] );
    26012718
     
    26232740
    26242741                wp_set_current_user( 1 );
     2742
    26252743                if ( is_multisite() ) {
    26262744                        $current_user = wp_get_current_user( 1 );
     
    26352753                        )
    26362754                );
    2637 
    26382755                $response = rest_get_server()->dispatch( $request );
    26392756
     
    26582775
    26592776                wp_set_current_user( self::$user );
    2660                 $request = new WP_REST_Request( 'GET', sprintf( '/wp/v2/users/%d', $user_id ) );
    2661 
     2777
     2778                $request  = new WP_REST_Request( 'GET', sprintf( '/wp/v2/users/%d', $user_id ) );
    26622779                $response = rest_get_server()->dispatch( $request );
    26632780                $this->assertErrorResponse( 'rest_user_invalid_id', $response, 404 );
     
    26782795
    26792796                wp_set_current_user( self::$superadmin );
    2680                 $request = new WP_REST_Request( 'GET', sprintf( '/wp/v2/users/%d', $user_id ) );
    2681 
     2797
     2798                $request  = new WP_REST_Request( 'GET', sprintf( '/wp/v2/users/%d', $user_id ) );
    26822799                $response = rest_get_server()->dispatch( $request );
    26832800                $this->assertErrorResponse( 'rest_user_invalid_id', $response, 404 );
     
    26982815
    26992816                wp_set_current_user( self::$user );
     2817
    27002818                $request = new WP_REST_Request( 'PUT', sprintf( '/wp/v2/users/%d', $user_id ) );
    27012819                $request->add_header( 'content-type', 'application/x-www-form-urlencoded' );
    27022820                $request->set_body_params( array( 'first_name' => 'New Name' ) );
    2703 
    27042821                $response = rest_get_server()->dispatch( $request );
    27052822                $this->assertErrorResponse( 'rest_user_invalid_id', $response, 404 );
     
    27202837
    27212838                wp_set_current_user( self::$superadmin );
     2839
    27222840                $request = new WP_REST_Request( 'PUT', sprintf( '/wp/v2/users/%d', $user_id ) );
    27232841                $request->add_header( 'content-type', 'application/x-www-form-urlencoded' );
    27242842                $request->set_body_params( array( 'first_name' => 'New Name' ) );
    2725 
    27262843                $response = rest_get_server()->dispatch( $request );
    27272844                $this->assertErrorResponse( 'rest_user_invalid_id', $response, 404 );
     
    27422859
    27432860                wp_set_current_user( self::$user );
     2861
    27442862                $request = new WP_REST_Request( 'DELETE', sprintf( '/wp/v2/users/%d', $user_id ) );
    27452863                $request->set_param( 'force', true );
    27462864                $request->set_param( 'reassign', false );
    2747 
    27482865                $response = rest_get_server()->dispatch( $request );
    27492866                $this->assertErrorResponse( 'rest_user_invalid_id', $response, 404 );
     
    27642881
    27652882                wp_set_current_user( self::$superadmin );
     2883
    27662884                $request = new WP_REST_Request( 'DELETE', sprintf( '/wp/v2/users/%d', $user_id ) );
    27672885                $request->set_param( 'force', true );
    27682886                $request->set_param( 'reassign', false );
    2769 
    27702887                $response = rest_get_server()->dispatch( $request );
    27712888                $this->assertErrorResponse( 'rest_user_invalid_id', $response, 404 );
Note: See TracChangeset for help on using the changeset viewer.