@@ -116,6 +116,72 @@ public function test_get_items_pagination_headers() {
116116 $ this ->assertFalse ( stripos ( $ headers ['Link ' ], 'rel="next" ' ) );
117117 }
118118
119+ public function test_get_items_per_page () {
120+ wp_set_current_user ( $ this ->user );
121+ for ( $ i = 0 ; $ i < 20 ; $ i ++ ) {
122+ $ this ->factory ->user ->create ( array ( 'display_name ' => "User {$ i }" ) );
123+ }
124+ $ request = new WP_REST_Request ( 'GET ' , '/wp/v2/users ' );
125+ $ response = $ this ->server ->dispatch ( $ request );
126+ $ this ->assertEquals ( 10 , count ( $ response ->get_data () ) );
127+ $ request = new WP_REST_Request ( 'GET ' , '/wp/v2/users ' );
128+ $ request ->set_param ( 'per_page ' , 5 );
129+ $ response = $ this ->server ->dispatch ( $ request );
130+ $ this ->assertEquals ( 5 , count ( $ response ->get_data () ) );
131+ }
132+
133+ public function test_get_items_page () {
134+ wp_set_current_user ( $ this ->user );
135+ for ( $ i = 0 ; $ i < 20 ; $ i ++ ) {
136+ $ this ->factory ->user ->create ( array ( 'display_name ' => "User {$ i }" ) );
137+ }
138+ $ request = new WP_REST_Request ( 'GET ' , '/wp/v2/users ' );
139+ $ request ->set_param ( 'per_page ' , 5 );
140+ $ request ->set_param ( 'page ' , 2 );
141+ $ response = $ this ->server ->dispatch ( $ request );
142+ $ this ->assertEquals ( 5 , count ( $ response ->get_data () ) );
143+ $ prev_link = add_query_arg ( array (
144+ 'per_page ' => 5 ,
145+ 'page ' => 1 ,
146+ ), rest_url ( '/wp/v2/users ' ) );
147+ $ headers = $ response ->get_headers ();
148+ $ this ->assertContains ( '< ' . $ prev_link . '>; rel="prev" ' , $ headers ['Link ' ] );
149+ }
150+
151+ public function test_get_items_orderby () {
152+ wp_set_current_user ( $ this ->user );
153+ $ low_id = $ this ->factory ->user ->create ( array ( 'display_name ' => 'AAAAA ' ) );
154+ $ mid_id = $ this ->factory ->user ->create ( array ( 'display_name ' => 'NNNNN ' ) );
155+ $ high_id = $ this ->factory ->user ->create ( array ( 'display_name ' => 'ZZZZ ' ) );
156+ $ request = new WP_REST_Request ( 'GET ' , '/wp/v2/users ' );
157+ $ request ->set_param ( 'orderby ' , 'name ' );
158+ $ request ->set_param ( 'order ' , 'desc ' );
159+ $ request ->set_param ( 'per_page ' , 1 );
160+ $ response = $ this ->server ->dispatch ( $ request );
161+ $ data = $ response ->get_data ();
162+ $ this ->assertEquals ( $ high_id , $ data [0 ]['id ' ] );
163+ $ request = new WP_REST_Request ( 'GET ' , '/wp/v2/users ' );
164+ $ request ->set_param ( 'orderby ' , 'name ' );
165+ $ request ->set_param ( 'order ' , 'asc ' );
166+ $ request ->set_param ( 'per_page ' , 1 );
167+ $ response = $ this ->server ->dispatch ( $ request );
168+ $ data = $ response ->get_data ();
169+ $ this ->assertEquals ( $ low_id , $ data [0 ]['id ' ] );
170+ }
171+
172+ public function test_get_items_search () {
173+ wp_set_current_user ( $ this ->user );
174+ $ request = new WP_REST_Request ( 'GET ' , '/wp/v2/users ' );
175+ $ request ->set_param ( 'search ' , 'yololololo ' );
176+ $ response = $ this ->server ->dispatch ( $ request );
177+ $ this ->assertEquals ( 0 , count ( $ response ->get_data () ) );
178+ $ yolo_id = $ this ->factory ->user ->create ( array ( 'display_name ' => 'yololololo ' ) );
179+ $ request = new WP_REST_Request ( 'GET ' , '/wp/v2/users ' );
180+ $ request ->set_param ( 'search ' , $ yolo_id ); // searching doesn't support display name
181+ $ response = $ this ->server ->dispatch ( $ request );
182+ $ this ->assertEquals ( 1 , count ( $ response ->get_data () ) );
183+ }
184+
119185 public function test_get_item () {
120186 $ user_id = $ this ->factory ->user ->create ();
121187 wp_set_current_user ( $ this ->user );
0 commit comments