Code Duplication    Length = 60-61 lines in 2 locations

tests/test-rest-tags-controller.php 1 location

@@ 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' );

tests/test-rest-users-controller.php 1 location

@@ 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 );