@@ -489,6 +489,31 @@ public function test_get_terms_pagination_headers() {
489
489
$ this ->assertFalse ( stripos ( $ headers ['Link ' ], 'rel="next" ' ) );
490
490
}
491
491
492
+ public function test_get_items_per_page_exceeds_number_of_items () {
493
+ // Start of the index + Uncategorized default term
494
+ for ( $ i = 0 ; $ i < 17 ; $ i ++ ) {
495
+ $ this ->factory ->category ->create ( array (
496
+ 'name ' => "Category {$ i }" ,
497
+ ) );
498
+ }
499
+ $ request = new WP_REST_Request ( 'GET ' , '/wp/v2/categories ' );
500
+ $ request ->set_param ( 'page ' , 1 );
501
+ $ request ->set_param ( 'per_page ' , 100 );
502
+ $ response = $ this ->server ->dispatch ( $ request );
503
+ $ headers = $ response ->get_headers ();
504
+ $ this ->assertEquals ( 18 , $ headers ['X-WP-Total ' ] );
505
+ $ this ->assertEquals ( 1 , $ headers ['X-WP-TotalPages ' ] );
506
+ $ this ->assertCount ( 18 , $ response ->get_data () );
507
+ $ request = new WP_REST_Request ( 'GET ' , '/wp/v2/categories ' );
508
+ $ request ->set_param ( 'page ' , 2 );
509
+ $ request ->set_param ( 'per_page ' , 100 );
510
+ $ response = $ this ->server ->dispatch ( $ request );
511
+ $ headers = $ response ->get_headers ();
512
+ $ this ->assertEquals ( 18 , $ headers ['X-WP-Total ' ] );
513
+ $ this ->assertEquals ( 1 , $ headers ['X-WP-TotalPages ' ] );
514
+ $ this ->assertCount ( 0 , $ response ->get_data () );
515
+ }
516
+
492
517
public function test_get_item () {
493
518
$ request = new WP_REST_Request ( 'GET ' , '/wp/v2/categories/1 ' );
494
519
$ response = $ this ->server ->dispatch ( $ request );
0 commit comments