Wordpress/tests/phpunit/tests/rest-api/rest-request-validation.php
Gary Pendergast a75d153eee Coding Standards: Upgrade WPCS to 1.0.0
WPCS 1.0.0 includes a bunch of new auto-fixers, which drops the number of coding standards issues across WordPress significantly. Prior to running the auto-fixers, there were 15,312 issues detected. With this commit, we now drop to 4,769 issues.

This change includes three notable additions:
- Multiline function calls must now put each parameter on a new line.
- Auto-formatting files is now part of the `grunt precommit` script. 
- Auto-fixable coding standards issues will now cause Travis failures.

Fixes #44600.



git-svn-id: https://develop.svn.wordpress.org/trunk@43571 602fd350-edb4-49c9-b593-d223f7449a82
2018-08-17 01:50:26 +00:00

209 lines
7.1 KiB
PHP

<?php
/**
* Unit tests covering WP_REST_Request validation functionality.
*
* @package WordPress
* @subpackage REST API
*/
/**
* @group restapi
*/
class WP_Test_REST_Request_Validation extends WP_Test_REST_TestCase {
public function test_validate_within_min_max_range_inclusive() {
$request = new WP_REST_Request(
'GET',
'/wp/v2/foo',
array(
'args' => array(
'minmaxrange' => array(
'type' => 'integer',
'minimum' => 2,
'maximum' => 10,
),
),
)
);
$ret = rest_validate_request_arg( 1, $request, 'minmaxrange' );
$this->assertEquals( 'minmaxrange must be between 2 (inclusive) and 10 (inclusive)', $ret->get_error_message() );
$ret = rest_validate_request_arg( 2, $request, 'minmaxrange' );
$this->assertTrue( $ret );
$ret = rest_validate_request_arg( 10, $request, 'minmaxrange' );
$this->assertTrue( $ret );
$ret = rest_validate_request_arg( 11, $request, 'minmaxrange' );
$this->assertEquals( 'minmaxrange must be between 2 (inclusive) and 10 (inclusive)', $ret->get_error_message() );
}
public function test_validate_within_min_max_range_min_exclusive() {
$request = new WP_REST_Request(
'GET',
'/wp/v2/foo',
array(
'args' => array(
'minmaxrange' => array(
'type' => 'integer',
'minimum' => 2,
'maximum' => 10,
'exclusiveMinimum' => true,
),
),
)
);
$ret = rest_validate_request_arg( 1, $request, 'minmaxrange' );
$this->assertEquals( 'minmaxrange must be between 2 (exclusive) and 10 (inclusive)', $ret->get_error_message() );
$ret = rest_validate_request_arg( 2, $request, 'minmaxrange' );
$this->assertEquals( 'minmaxrange must be between 2 (exclusive) and 10 (inclusive)', $ret->get_error_message() );
$ret = rest_validate_request_arg( 3, $request, 'minmaxrange' );
$this->assertTrue( $ret );
$ret = rest_validate_request_arg( 9, $request, 'minmaxrange' );
$this->assertTrue( $ret );
$ret = rest_validate_request_arg( 10, $request, 'minmaxrange' );
$this->assertTrue( $ret );
$ret = rest_validate_request_arg( 11, $request, 'minmaxrange' );
$this->assertEquals( 'minmaxrange must be between 2 (exclusive) and 10 (inclusive)', $ret->get_error_message() );
}
public function test_validate_within_min_max_range_max_exclusive() {
$request = new WP_REST_Request(
'GET',
'/wp/v2/foo',
array(
'args' => array(
'minmaxrange' => array(
'type' => 'integer',
'minimum' => 2,
'maximum' => 10,
'exclusiveMaximum' => true,
),
),
)
);
$ret = rest_validate_request_arg( 1, $request, 'minmaxrange' );
$this->assertEquals( 'minmaxrange must be between 2 (inclusive) and 10 (exclusive)', $ret->get_error_message() );
$ret = rest_validate_request_arg( 2, $request, 'minmaxrange' );
$this->assertTrue( $ret );
$ret = rest_validate_request_arg( 3, $request, 'minmaxrange' );
$this->assertTrue( $ret );
$ret = rest_validate_request_arg( 9, $request, 'minmaxrange' );
$this->assertTrue( $ret );
$ret = rest_validate_request_arg( 10, $request, 'minmaxrange' );
$this->assertEquals( 'minmaxrange must be between 2 (inclusive) and 10 (exclusive)', $ret->get_error_message() );
$ret = rest_validate_request_arg( 11, $request, 'minmaxrange' );
$this->assertEquals( 'minmaxrange must be between 2 (inclusive) and 10 (exclusive)', $ret->get_error_message() );
}
public function test_validate_within_min_max_range_both_exclusive() {
$request = new WP_REST_Request(
'GET',
'/wp/v2/foo',
array(
'args' => array(
'minmaxrange' => array(
'type' => 'integer',
'minimum' => 2,
'maximum' => 10,
'exclusiveMinimum' => true,
'exclusiveMaximum' => true,
),
),
)
);
$ret = rest_validate_request_arg( 1, $request, 'minmaxrange' );
$this->assertEquals( 'minmaxrange must be between 2 (exclusive) and 10 (exclusive)', $ret->get_error_message() );
$ret = rest_validate_request_arg( 2, $request, 'minmaxrange' );
$this->assertEquals( 'minmaxrange must be between 2 (exclusive) and 10 (exclusive)', $ret->get_error_message() );
$ret = rest_validate_request_arg( 3, $request, 'minmaxrange' );
$this->assertTrue( $ret );
$ret = rest_validate_request_arg( 9, $request, 'minmaxrange' );
$this->assertTrue( $ret );
$ret = rest_validate_request_arg( 10, $request, 'minmaxrange' );
$this->assertEquals( 'minmaxrange must be between 2 (exclusive) and 10 (exclusive)', $ret->get_error_message() );
$ret = rest_validate_request_arg( 11, $request, 'minmaxrange' );
$this->assertEquals( 'minmaxrange must be between 2 (exclusive) and 10 (exclusive)', $ret->get_error_message() );
}
public function test_validate_greater_than_min_inclusive() {
$request = new WP_REST_Request(
'GET',
'/wp/v2/foo',
array(
'args' => array(
'greaterthanmin' => array(
'type' => 'integer',
'minimum' => 2,
),
),
)
);
$ret = rest_validate_request_arg( 1, $request, 'greaterthanmin' );
$this->assertEquals( 'greaterthanmin must be greater than or equal to 2', $ret->get_error_message() );
$ret = rest_validate_request_arg( 2, $request, 'greaterthanmin' );
$this->assertTrue( $ret );
}
public function test_validate_greater_than_min_exclusive() {
$request = new WP_REST_Request(
'GET',
'/wp/v2/foo',
array(
'args' => array(
'greaterthanmin' => array(
'type' => 'integer',
'minimum' => 2,
'exclusiveMinimum' => true,
),
),
)
);
$ret = rest_validate_request_arg( 1, $request, 'greaterthanmin' );
$this->assertEquals( 'greaterthanmin must be greater than 2', $ret->get_error_message() );
$ret = rest_validate_request_arg( 2, $request, 'greaterthanmin' );
$this->assertEquals( 'greaterthanmin must be greater than 2', $ret->get_error_message() );
$ret = rest_validate_request_arg( 3, $request, 'greaterthanmin' );
$this->assertTrue( $ret );
}
public function test_validate_less_than_max_inclusive() {
$request = new WP_REST_Request(
'GET',
'/wp/v2/foo',
array(
'args' => array(
'lessthanmax' => array(
'type' => 'integer',
'maximum' => 10,
),
),
)
);
$ret = rest_validate_request_arg( 11, $request, 'lessthanmax' );
$this->assertEquals( 'lessthanmax must be less than or equal to 10', $ret->get_error_message() );
$ret = rest_validate_request_arg( 10, $request, 'lessthanmax' );
$this->assertTrue( $ret );
}
public function test_validate_less_than_max_exclusive() {
$request = new WP_REST_Request(
'GET',
'/wp/v2/foo',
array(
'args' => array(
'lessthanmax' => array(
'type' => 'integer',
'maximum' => 10,
'exclusiveMaximum' => true,
),
),
)
);
$ret = rest_validate_request_arg( 11, $request, 'lessthanmax' );
$this->assertEquals( 'lessthanmax must be less than 10', $ret->get_error_message() );
$ret = rest_validate_request_arg( 10, $request, 'lessthanmax' );
$this->assertEquals( 'lessthanmax must be less than 10', $ret->get_error_message() );
$ret = rest_validate_request_arg( 9, $request, 'lessthanmax' );
$this->assertTrue( $ret );
}
}