Make WordPress Core


Ignore:
Timestamp:
02/21/2018 04:24:30 PM (8 years ago)
Author:
SergeyBiryukov
Message:

Tests: Replace use of $this->server with rest_get_server() for better memory recycling.

Props danielbachhuber.
Fixes #41641.

File:
1 edited

Legend:

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

    r42354 r42724  
    3434
    3535        public function test_register_routes() {
    36                 $routes = $this->server->get_routes();
     36                $routes = rest_get_server()->get_routes();
    3737                $this->assertArrayHasKey( '/wp/v2/categories', $routes );
    3838                $this->assertArrayHasKey( '/wp/v2/categories/(?P<id>[\d]+)', $routes );
     
    4242                // Collection
    4343                $request  = new WP_REST_Request( 'OPTIONS', '/wp/v2/categories' );
    44                 $response = $this->server->dispatch( $request );
     44                $response = rest_get_server()->dispatch( $request );
    4545                $data     = $response->get_data();
    4646                $this->assertEquals( 'view', $data['endpoints'][0]['args']['context']['default'] );
     
    4949                $category1 = $this->factory->category->create( array( 'name' => 'Season 5' ) );
    5050                $request   = new WP_REST_Request( 'OPTIONS', '/wp/v2/categories/' . $category1 );
    51                 $response  = $this->server->dispatch( $request );
     51                $response  = rest_get_server()->dispatch( $request );
    5252                $data      = $response->get_data();
    5353                $this->assertEquals( 'view', $data['endpoints'][0]['args']['context']['default'] );
     
    5757        public function test_registered_query_params() {
    5858                $request  = new WP_REST_Request( 'OPTIONS', '/wp/v2/categories' );
    59                 $response = $this->server->dispatch( $request );
     59                $response = rest_get_server()->dispatch( $request );
    6060                $data     = $response->get_data();
    6161                $keys     = array_keys( $data['endpoints'][0]['args'] );
     
    8181        public function test_get_items() {
    8282                $request  = new WP_REST_Request( 'GET', '/wp/v2/categories' );
    83                 $response = $this->server->dispatch( $request );
     83                $response = rest_get_server()->dispatch( $request );
    8484                $this->check_get_taxonomy_terms_response( $response );
    8585        }
     
    8989                $request = new WP_REST_Request( 'GET', '/wp/v2/categories' );
    9090                $request->set_param( 'context', 'edit' );
    91                 $response = $this->server->dispatch( $request );
     91                $response = rest_get_server()->dispatch( $request );
    9292                $this->assertErrorResponse( 'rest_forbidden_context', $response, 401 );
    9393        }
     
    100100                $request = new WP_REST_Request( 'GET', '/wp/v2/categories' );
    101101                $request->set_param( 'hide_empty', true );
    102                 $response = $this->server->dispatch( $request );
     102                $response = rest_get_server()->dispatch( $request );
    103103                $data     = $response->get_data();
    104104                $this->assertEquals( 2, count( $data ) );
     
    108108                // Confirm the empty category "Uncategorized" category appears.
    109109                $request->set_param( 'hide_empty', 'false' );
    110                 $response = $this->server->dispatch( $request );
     110                $response = rest_get_server()->dispatch( $request );
    111111                $data     = $response->get_data();
    112112                $this->assertEquals( 3, count( $data ) );
     
    130130                $request = new WP_REST_Request( 'GET', '/wp/v2/categories' );
    131131                $request->set_param( 'parent', 0 );
    132                 $response = $this->server->dispatch( $request );
     132                $response = rest_get_server()->dispatch( $request );
    133133
    134134                $this->assertEquals( 200, $response->get_status() );
     
    160160                $request = new WP_REST_Request( 'GET', '/wp/v2/categories' );
    161161                $request->set_param( 'parent', '0' );
    162                 $response = $this->server->dispatch( $request );
     162                $response = rest_get_server()->dispatch( $request );
    163163
    164164                $this->assertEquals( 200, $response->get_status() );
     
    178178                $request = new WP_REST_Request( 'GET', '/wp/v2/categories' );
    179179                $request->set_param( 'parent', $parent1 );
    180                 $response = $this->server->dispatch( $request );
     180                $response = rest_get_server()->dispatch( $request );
    181181
    182182                $this->assertEquals( 200, $response->get_status() );
     
    189189                $request = new WP_REST_Request( 'GET', '/wp/v2/categories' );
    190190                $request->set_param( 'page', 0 );
    191                 $response = $this->server->dispatch( $request );
     191                $response = rest_get_server()->dispatch( $request );
    192192                $this->assertErrorResponse( 'rest_invalid_param', $response, 400 );
    193193                $data        = $response->get_data();
     
    203203                // Orderby=>asc
    204204                $request->set_param( 'include', array( $id3, $id1 ) );
    205                 $response = $this->server->dispatch( $request );
     205                $response = rest_get_server()->dispatch( $request );
    206206                $data     = $response->get_data();
    207207                $this->assertEquals( 2, count( $data ) );
     
    209209                // Orderby=>include
    210210                $request->set_param( 'orderby', 'include' );
    211                 $response = $this->server->dispatch( $request );
     211                $response = rest_get_server()->dispatch( $request );
    212212                $data     = $response->get_data();
    213213                $this->assertEquals( 2, count( $data ) );
     
    219219                $id2      = $this->factory->category->create();
    220220                $request  = new WP_REST_Request( 'GET', '/wp/v2/categories' );
    221                 $response = $this->server->dispatch( $request );
     221                $response = rest_get_server()->dispatch( $request );
    222222                $data     = $response->get_data();
    223223                $this->assertTrue( in_array( $id1, wp_list_pluck( $data, 'id' ), true ) );
    224224                $this->assertTrue( in_array( $id2, wp_list_pluck( $data, 'id' ), true ) );
    225225                $request->set_param( 'exclude', array( $id2 ) );
    226                 $response = $this->server->dispatch( $request );
     226                $response = rest_get_server()->dispatch( $request );
    227227                $data     = $response->get_data();
    228228                $this->assertTrue( in_array( $id1, wp_list_pluck( $data, 'id' ), true ) );
     
    243243                $request->set_param( 'order', 'desc' );
    244244                $request->set_param( 'per_page', 1 );
    245                 $response = $this->server->dispatch( $request );
     245                $response = rest_get_server()->dispatch( $request );
    246246                $this->assertEquals( 200, $response->get_status() );
    247247                $data = $response->get_data();
     
    252252                $request->set_param( 'order', 'asc' );
    253253                $request->set_param( 'per_page', 2 );
    254                 $response = $this->server->dispatch( $request );
     254                $response = rest_get_server()->dispatch( $request );
    255255                $this->assertEquals( 200, $response->get_status() );
    256256                $data = $response->get_data();
     
    265265                // defaults to orderby=name, order=asc
    266266                $request  = new WP_REST_Request( 'GET', '/wp/v2/categories' );
    267                 $response = $this->server->dispatch( $request );
     267                $response = rest_get_server()->dispatch( $request );
    268268                $this->assertEquals( 200, $response->get_status() );
    269269                $data = $response->get_data();
     
    275275                $request = new WP_REST_Request( 'GET', '/wp/v2/categories' );
    276276                $request->set_param( 'orderby', 'id' );
    277                 $response = $this->server->dispatch( $request );
     277                $response = rest_get_server()->dispatch( $request );
    278278                $this->assertEquals( 200, $response->get_status() );
    279279                $data = $response->get_data();
     
    286286                $request->set_param( 'orderby', 'id' );
    287287                $request->set_param( 'order', 'desc' );
    288                 $response = $this->server->dispatch( $request );
     288                $response = rest_get_server()->dispatch( $request );
    289289                $data     = $response->get_data();
    290290                $this->assertEquals( 200, $response->get_status() );
     
    302302                $request->set_param( 'orderby', 'include_slugs' );
    303303                $request->set_param( 'slug', array( 'taco', 'burrito', 'chalupa' ) );
    304                 $response = $this->server->dispatch( $request );
     304                $response = rest_get_server()->dispatch( $request );
    305305                $data     = $response->get_data();
    306306                $this->assertEquals( 200, $response->get_status() );
     
    340340                $request = new WP_REST_Request( 'GET', '/wp/v2/categories' );
    341341                $request->set_param( 'post', $post_id );
    342                 $response = $this->server->dispatch( $request );
     342                $response = rest_get_server()->dispatch( $request );
    343343                $this->assertEquals( 200, $response->get_status() );
    344344
     
    358358                $request->set_param( 'post', $post_id );
    359359                $request->set_param( 'orderby', 'description' );
    360                 $response = $this->server->dispatch( $request );
     360                $response = rest_get_server()->dispatch( $request );
    361361                $this->assertEquals( 200, $response->get_status() );
    362362
     
    368368                // Flip the order
    369369                $request->set_param( 'order', 'desc' );
    370                 $response = $this->server->dispatch( $request );
     370                $response = rest_get_server()->dispatch( $request );
    371371                $this->assertEquals( 200, $response->get_status() );
    372372
     
    383383                $request->set_param( 'post', $post_id );
    384384                $request->set_param( 'orderby', 'id' );
    385                 $response = $this->server->dispatch( $request );
     385                $response = rest_get_server()->dispatch( $request );
    386386                $this->assertEquals( 200, $response->get_status() );
    387387
     
    419419                $request = new WP_REST_Request( 'GET', '/wp/v2/batman' );
    420420                $request->set_param( 'post', $post_id );
    421                 $response = $this->server->dispatch( $request );
     421                $response = rest_get_server()->dispatch( $request );
    422422                $this->assertEquals( 200, $response->get_status() );
    423423
     
    436436                $request = new WP_REST_Request( 'GET', '/wp/v2/categories' );
    437437                $request->set_param( 'search', 'App' );
    438                 $response = $this->server->dispatch( $request );
     438                $response = rest_get_server()->dispatch( $request );
    439439                $this->assertEquals( 200, $response->get_status() );
    440440                $data = $response->get_data();
     
    443443                $request = new WP_REST_Request( 'GET', '/wp/v2/categories' );
    444444                $request->set_param( 'search', 'Garbage' );
    445                 $response = $this->server->dispatch( $request );
     445                $response = rest_get_server()->dispatch( $request );
    446446                $this->assertEquals( 200, $response->get_status() );
    447447                $data = $response->get_data();
     
    454454                $request = new WP_REST_Request( 'GET', '/wp/v2/categories' );
    455455                $request->set_param( 'slug', 'apple' );
    456                 $response = $this->server->dispatch( $request );
     456                $response = rest_get_server()->dispatch( $request );
    457457                $this->assertEquals( 200, $response->get_status() );
    458458                $data = $response->get_data();
     
    471471                $request = new WP_REST_Request( 'GET', '/wp/v2/categories' );
    472472                $request->set_param( 'parent', $category1 );
    473                 $response = $this->server->dispatch( $request );
     473                $response = rest_get_server()->dispatch( $request );
    474474                $data     = $response->get_data();
    475475                $this->assertEquals( 1, count( $data ) );
     
    487487                $request = new WP_REST_Request( 'GET', '/wp/v2/categories' );
    488488                $request->set_param( 'parent', 'invalid-parent' );
    489                 $response = $this->server->dispatch( $request );
     489                $response = rest_get_server()->dispatch( $request );
    490490                $this->assertErrorResponse( 'rest_invalid_param', $response, 400 );
    491491        }
     
    507507
    508508                $request  = new WP_REST_Request( 'GET', '/wp/v2/terms/robin' );
    509                 $response = $this->server->dispatch( $request );
     509                $response = rest_get_server()->dispatch( $request );
    510510                $this->assertErrorResponse( 'rest_no_route', $response, 404 );
    511511        }
     
    513513        public function test_get_terms_invalid_taxonomy() {
    514514                $request  = new WP_REST_Request( 'GET', '/wp/v2/invalid-taxonomy' );
    515                 $response = $this->server->dispatch( $request );
     515                $response = rest_get_server()->dispatch( $request );
    516516                $this->assertErrorResponse( 'rest_no_route', $response, 404 );
    517517        }
     
    527527                }
    528528                $request  = new WP_REST_Request( 'GET', '/wp/v2/categories' );
    529                 $response = $this->server->dispatch( $request );
     529                $response = rest_get_server()->dispatch( $request );
    530530                $headers  = $response->get_headers();
    531531                $this->assertEquals( 50, $headers['X-WP-Total'] );
     
    547547                $request = new WP_REST_Request( 'GET', '/wp/v2/categories' );
    548548                $request->set_param( 'page', 3 );
    549                 $response = $this->server->dispatch( $request );
     549                $response = rest_get_server()->dispatch( $request );
    550550                $headers  = $response->get_headers();
    551551                $this->assertEquals( 51, $headers['X-WP-Total'] );
     
    567567                $request = new WP_REST_Request( 'GET', '/wp/v2/categories' );
    568568                $request->set_param( 'page', 6 );
    569                 $response = $this->server->dispatch( $request );
     569                $response = rest_get_server()->dispatch( $request );
    570570                $headers  = $response->get_headers();
    571571                $this->assertEquals( 51, $headers['X-WP-Total'] );
     
    582582                $request = new WP_REST_Request( 'GET', '/wp/v2/categories' );
    583583                $request->set_param( 'page', 8 );
    584                 $response = $this->server->dispatch( $request );
     584                $response = rest_get_server()->dispatch( $request );
    585585                $headers  = $response->get_headers();
    586586                $this->assertEquals( 51, $headers['X-WP-Total'] );
     
    608608                $request->set_param( 'page', 1 );
    609609                $request->set_param( 'per_page', 100 );
    610                 $response = $this->server->dispatch( $request );
     610                $response = rest_get_server()->dispatch( $request );
    611611                $headers  = $response->get_headers();
    612612                $this->assertEquals( 18, $headers['X-WP-Total'] );
     
    616616                $request->set_param( 'page', 2 );
    617617                $request->set_param( 'per_page', 100 );
    618                 $response = $this->server->dispatch( $request );
     618                $response = rest_get_server()->dispatch( $request );
    619619                $headers  = $response->get_headers();
    620620                $this->assertEquals( 18, $headers['X-WP-Total'] );
     
    625625        public function test_get_item() {
    626626                $request  = new WP_REST_Request( 'GET', '/wp/v2/categories/1' );
    627                 $response = $this->server->dispatch( $request );
     627                $response = rest_get_server()->dispatch( $request );
    628628                $this->check_get_taxonomy_term_response( $response );
    629629        }
     
    631631        public function test_get_term_invalid_taxonomy() {
    632632                $request  = new WP_REST_Request( 'GET', '/wp/v2/invalid-taxonomy/1' );
    633                 $response = $this->server->dispatch( $request );
     633                $response = rest_get_server()->dispatch( $request );
    634634                $this->assertErrorResponse( 'rest_no_route', $response, 404 );
    635635        }
     
    637637        public function test_get_term_invalid_term() {
    638638                $request  = new WP_REST_Request( 'GET', '/wp/v2/categories/' . REST_TESTS_IMPOSSIBLY_HIGH_NUMBER );
    639                 $response = $this->server->dispatch( $request );
     639                $response = rest_get_server()->dispatch( $request );
    640640                $this->assertErrorResponse( 'rest_term_invalid', $response, 404 );
    641641        }
     
    645645                $request = new WP_REST_Request( 'GET', '/wp/v2/categories/1' );
    646646                $request->set_param( 'context', 'edit' );
    647                 $response = $this->server->dispatch( $request );
     647                $response = rest_get_server()->dispatch( $request );
    648648                $this->assertErrorResponse( 'rest_forbidden_context', $response, 401 );
    649649        }
     
    659659
    660660                $request  = new WP_REST_Request( 'GET', '/wp/v2/terms/robin/' . $term1 );
    661                 $response = $this->server->dispatch( $request );
     661                $response = rest_get_server()->dispatch( $request );
    662662                $this->assertErrorResponse( 'rest_no_route', $response, 404 );
    663663        }
     
    672672                );
    673673                $request  = new WP_REST_Request( 'GET', '/wp/v2/categories/' . $term1 );
    674                 $response = $this->server->dispatch( $request );
     674                $response = rest_get_server()->dispatch( $request );
    675675                $this->assertErrorResponse( 'rest_term_invalid', $response, 404 );
    676676        }
     
    682682                $request->set_param( 'description', 'This term is so awesome.' );
    683683                $request->set_param( 'slug', 'so-awesome' );
    684                 $response = $this->server->dispatch( $request );
     684                $response = rest_get_server()->dispatch( $request );
    685685                $this->assertEquals( 201, $response->get_status() );
    686686                $headers = $response->get_headers();
     
    702702                $request->set_param( 'name', 'Existing' );
    703703
    704                 $response = $this->server->dispatch( $request );
     704                $response = rest_get_server()->dispatch( $request );
    705705                $this->assertEquals( 400, $response->get_status() );
    706706                $data = $response->get_data();
     
    715715                $request = new WP_REST_Request( 'POST', '/wp/v2/invalid-taxonomy' );
    716716                $request->set_param( 'name', 'Invalid Taxonomy' );
    717                 $response = $this->server->dispatch( $request );
     717                $response = rest_get_server()->dispatch( $request );
    718718                $this->assertErrorResponse( 'rest_no_route', $response, 404 );
    719719        }
     
    723723                $request = new WP_REST_Request( 'POST', '/wp/v2/categories' );
    724724                $request->set_param( 'name', 'Incorrect permissions' );
    725                 $response = $this->server->dispatch( $request );
     725                $response = rest_get_server()->dispatch( $request );
    726726                $this->assertErrorResponse( 'rest_cannot_create', $response, 403 );
    727727        }
     
    730730                wp_set_current_user( self::$administrator );
    731731                $request  = new WP_REST_Request( 'POST', '/wp/v2/categories' );
    732                 $response = $this->server->dispatch( $request );
     732                $response = rest_get_server()->dispatch( $request );
    733733                $this->assertErrorResponse( 'rest_missing_callback_param', $response, 400 );
    734734        }
     
    740740                $request->set_param( 'name', 'My Awesome Term' );
    741741                $request->set_param( 'parent', $parent['term_id'] );
    742                 $response = $this->server->dispatch( $request );
     742                $response = rest_get_server()->dispatch( $request );
    743743                $this->assertEquals( 201, $response->get_status() );
    744744                $data = $response->get_data();
     
    753753                $request->set_param( 'name', 'My Awesome Term' );
    754754                $request->set_param( 'parent', REST_TESTS_IMPOSSIBLY_HIGH_NUMBER );
    755                 $response = $this->server->dispatch( $request );
     755                $response = rest_get_server()->dispatch( $request );
    756756                $this->assertErrorResponse( 'rest_term_invalid', $response, 400 );
    757757        }
     
    769769                $request->set_param( 'description', 'New Description' );
    770770                $request->set_param( 'slug', 'new-slug' );
    771                 $response = $this->server->dispatch( $request );
     771                $response = rest_get_server()->dispatch( $request );
    772772                $this->assertEquals( 200, $response->get_status() );
    773773                $data = $response->get_data();
     
    781781                $request = new WP_REST_Request( 'POST', '/wp/v2/invalid-taxonomy/' . REST_TESTS_IMPOSSIBLY_HIGH_NUMBER );
    782782                $request->set_param( 'name', 'Invalid Taxonomy' );
    783                 $response = $this->server->dispatch( $request );
     783                $response = rest_get_server()->dispatch( $request );
    784784                $this->assertErrorResponse( 'rest_no_route', $response, 404 );
    785785        }
     
    789789                $request = new WP_REST_Request( 'POST', '/wp/v2/categories/' . REST_TESTS_IMPOSSIBLY_HIGH_NUMBER );
    790790                $request->set_param( 'name', 'Invalid Term' );
    791                 $response = $this->server->dispatch( $request );
     791                $response = rest_get_server()->dispatch( $request );
    792792                $this->assertErrorResponse( 'rest_term_invalid', $response, 404 );
    793793        }
     
    798798                $request = new WP_REST_Request( 'POST', '/wp/v2/categories/' . $term->term_id );
    799799                $request->set_param( 'name', 'Incorrect permissions' );
    800                 $response = $this->server->dispatch( $request );
     800                $response = rest_get_server()->dispatch( $request );
    801801                $this->assertErrorResponse( 'rest_cannot_update', $response, 403 );
    802802        }
     
    809809                $request = new WP_REST_Request( 'POST', '/wp/v2/categories/' . $term->term_id );
    810810                $request->set_param( 'parent', $parent->term_id );
    811                 $response = $this->server->dispatch( $request );
     811                $response = rest_get_server()->dispatch( $request );
    812812                $this->assertEquals( 200, $response->get_status() );
    813813
     
    822822                $request = new WP_REST_Request( 'POST', '/wp/v2/categories/' . $term->term_id );
    823823                $request->set_param( 'parent', REST_TESTS_IMPOSSIBLY_HIGH_NUMBER );
    824                 $response = $this->server->dispatch( $request );
     824                $response = rest_get_server()->dispatch( $request );
    825825                $this->assertErrorResponse( 'rest_term_invalid', $response, 400 );
    826826        }
     
    831831                $request = new WP_REST_Request( 'DELETE', '/wp/v2/categories/' . $term->term_id );
    832832                $request->set_param( 'force', true );
    833                 $response = $this->server->dispatch( $request );
     833                $response = rest_get_server()->dispatch( $request );
    834834                $this->assertEquals( 200, $response->get_status() );
    835835                $data = $response->get_data();
     
    843843
    844844                $request  = new WP_REST_Request( 'DELETE', '/wp/v2/categories/' . $term->term_id );
    845                 $response = $this->server->dispatch( $request );
     845                $response = rest_get_server()->dispatch( $request );
    846846                $this->assertErrorResponse( 'rest_trash_not_supported', $response, 501 );
    847847
    848848                $request->set_param( 'force', 'false' );
    849                 $response = $this->server->dispatch( $request );
     849                $response = rest_get_server()->dispatch( $request );
    850850                $this->assertErrorResponse( 'rest_trash_not_supported', $response, 501 );
    851851        }
     
    854854                wp_set_current_user( self::$administrator );
    855855                $request  = new WP_REST_Request( 'DELETE', '/wp/v2/invalid-taxonomy/' . REST_TESTS_IMPOSSIBLY_HIGH_NUMBER );
    856                 $response = $this->server->dispatch( $request );
     856                $response = rest_get_server()->dispatch( $request );
    857857                $this->assertErrorResponse( 'rest_no_route', $response, 404 );
    858858        }
     
    861861                wp_set_current_user( self::$administrator );
    862862                $request  = new WP_REST_Request( 'DELETE', '/wp/v2/categories/' . REST_TESTS_IMPOSSIBLY_HIGH_NUMBER );
    863                 $response = $this->server->dispatch( $request );
     863                $response = rest_get_server()->dispatch( $request );
    864864                $this->assertErrorResponse( 'rest_term_invalid', $response, 404 );
    865865        }
     
    869869                $term     = get_term_by( 'id', $this->factory->category->create(), 'category' );
    870870                $request  = new WP_REST_Request( 'DELETE', '/wp/v2/categories/' . $term->term_id );
    871                 $response = $this->server->dispatch( $request );
     871                $response = rest_get_server()->dispatch( $request );
    872872                $this->assertErrorResponse( 'rest_cannot_delete', $response, 403 );
    873873        }
     
    877877
    878878                $request  = new WP_REST_Request( 'GET', '/wp/v2/categories/1' );
    879                 $response = $this->server->dispatch( $request );
     879                $response = rest_get_server()->dispatch( $request );
    880880                $data     = $response->get_data();
    881881
     
    892892
    893893                $request  = new WP_REST_Request( 'GET', '/wp/v2/categories/' . $child );
    894                 $response = $this->server->dispatch( $request );
     894                $response = rest_get_server()->dispatch( $request );
    895895                $data     = $response->get_data();
    896896
     
    905905        public function test_get_item_schema() {
    906906                $request    = new WP_REST_Request( 'OPTIONS', '/wp/v2/categories' );
    907                 $response   = $this->server->dispatch( $request );
     907                $response   = rest_get_server()->dispatch( $request );
    908908                $data       = $response->get_data();
    909909                $properties = $data['schema']['properties'];
     
    939939                $request = new WP_REST_Request( 'OPTIONS', '/wp/v2/categories' );
    940940
    941                 $response = $this->server->dispatch( $request );
     941                $response = rest_get_server()->dispatch( $request );
    942942                $data     = $response->get_data();
    943943                $this->assertArrayHasKey( 'my_custom_int', $data['schema']['properties'] );
     
    947947                $request     = new WP_REST_Request( 'GET', '/wp/v2/categories/' . $category_id );
    948948
    949                 $response = $this->server->dispatch( $request );
     949                $response = rest_get_server()->dispatch( $request );
    950950                $this->assertArrayHasKey( 'my_custom_int', $response->data );
    951951
Note: See TracChangeset for help on using the changeset viewer.