WordPress.org

Make WordPress Core


Ignore:
Timestamp:
11/05/2019 08:41:12 PM (2 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.