@@ 342-401 (lines=60) @@ | ||
339 | $this->assertErrorResponse( 'rest_no_route', $response, 404 ); |
|
340 | } |
|
341 | ||
342 | public function test_get_terms_pagination_headers() { |
|
343 | // Start of the index |
|
344 | for ( $i = 0; $i < 50; $i++ ) { |
|
345 | $this->factory->tag->create( array( |
|
346 | 'name' => "Tag {$i}", |
|
347 | ) ); |
|
348 | } |
|
349 | $request = new WP_REST_Request( 'GET', '/wp/v2/tags' ); |
|
350 | $response = $this->server->dispatch( $request ); |
|
351 | $headers = $response->get_headers(); |
|
352 | $this->assertEquals( 50, $headers['X-WP-Total'] ); |
|
353 | $this->assertEquals( 5, $headers['X-WP-TotalPages'] ); |
|
354 | $next_link = add_query_arg( array( |
|
355 | 'page' => 2, |
|
356 | ), rest_url( 'wp/v2/tags' ) ); |
|
357 | $this->assertFalse( stripos( $headers['Link'], 'rel="prev"' ) ); |
|
358 | $this->assertContains( '<' . $next_link . '>; rel="next"', $headers['Link'] ); |
|
359 | // 3rd page |
|
360 | $this->factory->tag->create( array( |
|
361 | 'name' => 'Tag 51', |
|
362 | ) ); |
|
363 | $request = new WP_REST_Request( 'GET', '/wp/v2/tags' ); |
|
364 | $request->set_param( 'page', 3 ); |
|
365 | $response = $this->server->dispatch( $request ); |
|
366 | $headers = $response->get_headers(); |
|
367 | $this->assertEquals( 51, $headers['X-WP-Total'] ); |
|
368 | $this->assertEquals( 6, $headers['X-WP-TotalPages'] ); |
|
369 | $prev_link = add_query_arg( array( |
|
370 | 'page' => 2, |
|
371 | ), rest_url( 'wp/v2/tags' ) ); |
|
372 | $this->assertContains( '<' . $prev_link . '>; rel="prev"', $headers['Link'] ); |
|
373 | $next_link = add_query_arg( array( |
|
374 | 'page' => 4, |
|
375 | ), rest_url( 'wp/v2/tags' ) ); |
|
376 | $this->assertContains( '<' . $next_link . '>; rel="next"', $headers['Link'] ); |
|
377 | // Last page |
|
378 | $request = new WP_REST_Request( 'GET', '/wp/v2/tags' ); |
|
379 | $request->set_param( 'page', 6 ); |
|
380 | $response = $this->server->dispatch( $request ); |
|
381 | $headers = $response->get_headers(); |
|
382 | $this->assertEquals( 51, $headers['X-WP-Total'] ); |
|
383 | $this->assertEquals( 6, $headers['X-WP-TotalPages'] ); |
|
384 | $prev_link = add_query_arg( array( |
|
385 | 'page' => 5, |
|
386 | ), rest_url( 'wp/v2/tags' ) ); |
|
387 | $this->assertContains( '<' . $prev_link . '>; rel="prev"', $headers['Link'] ); |
|
388 | $this->assertFalse( stripos( $headers['Link'], 'rel="next"' ) ); |
|
389 | // Out of bounds |
|
390 | $request = new WP_REST_Request( 'GET', '/wp/v2/tags' ); |
|
391 | $request->set_param( 'page', 8 ); |
|
392 | $response = $this->server->dispatch( $request ); |
|
393 | $headers = $response->get_headers(); |
|
394 | $this->assertEquals( 51, $headers['X-WP-Total'] ); |
|
395 | $this->assertEquals( 6, $headers['X-WP-TotalPages'] ); |
|
396 | $prev_link = add_query_arg( array( |
|
397 | 'page' => 6, |
|
398 | ), rest_url( 'wp/v2/tags' ) ); |
|
399 | $this->assertContains( '<' . $prev_link . '>; rel="prev"', $headers['Link'] ); |
|
400 | $this->assertFalse( stripos( $headers['Link'], 'rel="next"' ) ); |
|
401 | } |
|
402 | ||
403 | public function test_get_items_invalid_context() { |
|
404 | $request = new WP_REST_Request( 'GET', '/wp/v2/tags' ); |
@@ 147-207 (lines=61) @@ | ||
144 | /** |
|
145 | * @group test |
|
146 | */ |
|
147 | public function test_get_items_pagination_headers() { |
|
148 | wp_set_current_user( $this->user ); |
|
149 | // Start of the index, including the three existing users |
|
150 | for ( $i = 0; $i < 47; $i++ ) { |
|
151 | $this->factory->user->create( array( |
|
152 | 'name' => "User {$i}", |
|
153 | ) ); |
|
154 | } |
|
155 | $request = new WP_REST_Request( 'GET', '/wp/v2/users' ); |
|
156 | $response = $this->server->dispatch( $request ); |
|
157 | $headers = $response->get_headers(); |
|
158 | $this->assertEquals( 50, $headers['X-WP-Total'] ); |
|
159 | $this->assertEquals( 5, $headers['X-WP-TotalPages'] ); |
|
160 | $next_link = add_query_arg( array( |
|
161 | 'page' => 2, |
|
162 | ), rest_url( 'wp/v2/users' ) ); |
|
163 | $this->assertFalse( stripos( $headers['Link'], 'rel="prev"' ) ); |
|
164 | $this->assertContains( '<' . $next_link . '>; rel="next"', $headers['Link'] ); |
|
165 | // 3rd page |
|
166 | $this->factory->user->create( array( |
|
167 | 'name' => 'User 51', |
|
168 | ) ); |
|
169 | $request = new WP_REST_Request( 'GET', '/wp/v2/users' ); |
|
170 | $request->set_param( 'page', 3 ); |
|
171 | $response = $this->server->dispatch( $request ); |
|
172 | $headers = $response->get_headers(); |
|
173 | $this->assertEquals( 51, $headers['X-WP-Total'] ); |
|
174 | $this->assertEquals( 6, $headers['X-WP-TotalPages'] ); |
|
175 | $prev_link = add_query_arg( array( |
|
176 | 'page' => 2, |
|
177 | ), rest_url( 'wp/v2/users' ) ); |
|
178 | $this->assertContains( '<' . $prev_link . '>; rel="prev"', $headers['Link'] ); |
|
179 | $next_link = add_query_arg( array( |
|
180 | 'page' => 4, |
|
181 | ), rest_url( 'wp/v2/users' ) ); |
|
182 | $this->assertContains( '<' . $next_link . '>; rel="next"', $headers['Link'] ); |
|
183 | // Last page |
|
184 | $request = new WP_REST_Request( 'GET', '/wp/v2/users' ); |
|
185 | $request->set_param( 'page', 6 ); |
|
186 | $response = $this->server->dispatch( $request ); |
|
187 | $headers = $response->get_headers(); |
|
188 | $this->assertEquals( 51, $headers['X-WP-Total'] ); |
|
189 | $this->assertEquals( 6, $headers['X-WP-TotalPages'] ); |
|
190 | $prev_link = add_query_arg( array( |
|
191 | 'page' => 5, |
|
192 | ), rest_url( 'wp/v2/users' ) ); |
|
193 | $this->assertContains( '<' . $prev_link . '>; rel="prev"', $headers['Link'] ); |
|
194 | $this->assertFalse( stripos( $headers['Link'], 'rel="next"' ) ); |
|
195 | // Out of bounds |
|
196 | $request = new WP_REST_Request( 'GET', '/wp/v2/users' ); |
|
197 | $request->set_param( 'page', 8 ); |
|
198 | $response = $this->server->dispatch( $request ); |
|
199 | $headers = $response->get_headers(); |
|
200 | $this->assertEquals( 51, $headers['X-WP-Total'] ); |
|
201 | $this->assertEquals( 6, $headers['X-WP-TotalPages'] ); |
|
202 | $prev_link = add_query_arg( array( |
|
203 | 'page' => 6, |
|
204 | ), rest_url( 'wp/v2/users' ) ); |
|
205 | $this->assertContains( '<' . $prev_link . '>; rel="prev"', $headers['Link'] ); |
|
206 | $this->assertFalse( stripos( $headers['Link'], 'rel="next"' ) ); |
|
207 | } |
|
208 | ||
209 | public function test_get_items_per_page() { |
|
210 | wp_set_current_user( $this->user ); |