Code Duplication    Length = 60-61 lines in 2 locations

tests/phpunit/tests/rest-api/rest-tags-controller.php 1 location

@@ 422-481 (lines=60) @@
419
        $this->assertErrorResponse('rest_no_route', $response, 404);
420
    }
421
422
    public function test_get_terms_pagination_headers() 
423
    {
424
        // Start of the index
425
        for ( $i = 0; $i < 50; $i++ ) {
426
            $this->factory->tag->create(
427
                array(
428
                'name'   => "Tag {$i}",
429
                ) 
430
            );
431
        }
432
        $request = new WP_REST_Request('GET', '/wp/v2/tags');
433
        $response = $this->server->dispatch($request);
434
        $headers = $response->get_headers();
435
        $this->assertEquals(50, $headers['X-WP-Total']);
436
        $this->assertEquals(5, $headers['X-WP-TotalPages']);
437
        $next_link = add_query_arg(
438
            array(
439
            'page'    => 2,
440
            ), rest_url('wp/v2/tags') 
441
        );
442
        $this->assertFalse(stripos($headers['Link'], 'rel="prev"'));
443
        $this->assertContains('<' . $next_link . '>; rel="next"', $headers['Link']);
444
        // 3rd page
445
        $this->factory->tag->create(
446
            array(
447
            'name'   => 'Tag 51',
448
            ) 
449
        );
450
        $request = new WP_REST_Request('GET', '/wp/v2/tags');
451
        $request->set_param('page', 3);
452
        $response = $this->server->dispatch($request);
453
        $headers = $response->get_headers();
454
        $this->assertEquals(51, $headers['X-WP-Total']);
455
        $this->assertEquals(6, $headers['X-WP-TotalPages']);
456
        $prev_link = add_query_arg(
457
            array(
458
            'page'    => 2,
459
            ), rest_url('wp/v2/tags') 
460
        );
461
        $this->assertContains('<' . $prev_link . '>; rel="prev"', $headers['Link']);
462
        $next_link = add_query_arg(
463
            array(
464
            'page'    => 4,
465
            ), rest_url('wp/v2/tags') 
466
        );
467
        $this->assertContains('<' . $next_link . '>; rel="next"', $headers['Link']);
468
        // Last page
469
        $request = new WP_REST_Request('GET', '/wp/v2/tags');
470
        $request->set_param('page', 6);
471
        $response = $this->server->dispatch($request);
472
        $headers = $response->get_headers();
473
        $this->assertEquals(51, $headers['X-WP-Total']);
474
        $this->assertEquals(6, $headers['X-WP-TotalPages']);
475
        $prev_link = add_query_arg(
476
            array(
477
            'page'    => 5,
478
            ), rest_url('wp/v2/tags') 
479
        );
480
        $this->assertContains('<' . $prev_link . '>; rel="prev"', $headers['Link']);
481
        $this->assertFalse(stripos($headers['Link'], 'rel="next"'));
482
        // Out of bounds
483
        $request = new WP_REST_Request('GET', '/wp/v2/tags');
484
        $request->set_param('page', 8);

tests/phpunit/tests/rest-api/rest-users-controller.php 1 location

@@ 192-252 (lines=61) @@
189
    /**
190
     * @group test
191
     */
192
    public function test_get_items_pagination_headers() 
193
    {
194
        wp_set_current_user(self::$user);
195
        // Start of the index, including the three existing users
196
        for ( $i = 0; $i < 47; $i++ ) {
197
            $this->factory->user->create(
198
                array(
199
                'name'   => "User {$i}",
200
                ) 
201
            );
202
        }
203
        $request = new WP_REST_Request('GET', '/wp/v2/users');
204
        $response = $this->server->dispatch($request);
205
        $headers = $response->get_headers();
206
        $this->assertEquals(51, $headers['X-WP-Total']);
207
        $this->assertEquals(6, $headers['X-WP-TotalPages']);
208
        $next_link = add_query_arg(
209
            array(
210
            'page'    => 2,
211
            ), rest_url('wp/v2/users') 
212
        );
213
        $this->assertFalse(stripos($headers['Link'], 'rel="prev"'));
214
        $this->assertContains('<' . $next_link . '>; rel="next"', $headers['Link']);
215
        // 3rd page
216
        $this->factory->user->create(
217
            array(
218
            'name'   => 'User 51',
219
            ) 
220
        );
221
        $request = new WP_REST_Request('GET', '/wp/v2/users');
222
        $request->set_param('page', 3);
223
        $response = $this->server->dispatch($request);
224
        $headers = $response->get_headers();
225
        $this->assertEquals(52, $headers['X-WP-Total']);
226
        $this->assertEquals(6, $headers['X-WP-TotalPages']);
227
        $prev_link = add_query_arg(
228
            array(
229
            'page'    => 2,
230
            ), rest_url('wp/v2/users') 
231
        );
232
        $this->assertContains('<' . $prev_link . '>; rel="prev"', $headers['Link']);
233
        $next_link = add_query_arg(
234
            array(
235
            'page'    => 4,
236
            ), rest_url('wp/v2/users') 
237
        );
238
        $this->assertContains('<' . $next_link . '>; rel="next"', $headers['Link']);
239
        // Last page
240
        $request = new WP_REST_Request('GET', '/wp/v2/users');
241
        $request->set_param('page', 6);
242
        $response = $this->server->dispatch($request);
243
        $headers = $response->get_headers();
244
        $this->assertEquals(52, $headers['X-WP-Total']);
245
        $this->assertEquals(6, $headers['X-WP-TotalPages']);
246
        $prev_link = add_query_arg(
247
            array(
248
            'page'    => 5,
249
            ), rest_url('wp/v2/users') 
250
        );
251
        $this->assertContains('<' . $prev_link . '>; rel="prev"', $headers['Link']);
252
        $this->assertFalse(stripos($headers['Link'], 'rel="next"'));
253
        // Out of bounds
254
        $request = new WP_REST_Request('GET', '/wp/v2/users');
255
        $request->set_param('page', 8);