mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-06-28 14:20:15 +00:00
REST API: Add text-field and textarea-field as available schema formats for string sanitization.
Props ocean90, TimothyBlynJacobs. Fixes #49960. git-svn-id: https://develop.svn.wordpress.org/trunk@51908 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -23,35 +23,43 @@ class WP_Test_REST_Controller extends WP_Test_REST_TestCase {
|
||||
'/wp/v2/testroute',
|
||||
array(
|
||||
'args' => array(
|
||||
'someinteger' => array(
|
||||
'someinteger' => array(
|
||||
'type' => 'integer',
|
||||
),
|
||||
'someboolean' => array(
|
||||
'someboolean' => array(
|
||||
'type' => 'boolean',
|
||||
),
|
||||
'somestring' => array(
|
||||
'somestring' => array(
|
||||
'type' => 'string',
|
||||
),
|
||||
'somehex' => array(
|
||||
'somehex' => array(
|
||||
'type' => 'string',
|
||||
'format' => 'hex-color',
|
||||
),
|
||||
'someenum' => array(
|
||||
'someenum' => array(
|
||||
'type' => 'string',
|
||||
'enum' => array( 'a' ),
|
||||
),
|
||||
'somedate' => array(
|
||||
'somedate' => array(
|
||||
'type' => 'string',
|
||||
'format' => 'date-time',
|
||||
),
|
||||
'someemail' => array(
|
||||
'someemail' => array(
|
||||
'type' => 'string',
|
||||
'format' => 'email',
|
||||
),
|
||||
'someuuid' => array(
|
||||
'someuuid' => array(
|
||||
'type' => 'string',
|
||||
'format' => 'uuid',
|
||||
),
|
||||
'sometextfield' => array(
|
||||
'type' => 'string',
|
||||
'format' => 'text-field',
|
||||
),
|
||||
'sometextareafield' => array(
|
||||
'type' => 'string',
|
||||
'format' => 'textarea-field',
|
||||
),
|
||||
),
|
||||
)
|
||||
);
|
||||
@@ -219,6 +227,52 @@ class WP_Test_REST_Controller extends WP_Test_REST_TestCase {
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 49960
|
||||
*/
|
||||
public function test_validate_schema_format_text_field() {
|
||||
$this->assertTrue(
|
||||
rest_validate_request_arg( 'Hello World', $this->request, 'sometextfield' )
|
||||
);
|
||||
|
||||
$this->assertErrorResponse(
|
||||
'rest_invalid_type',
|
||||
rest_validate_request_arg( false, $this->request, 'sometextfield' )
|
||||
);
|
||||
|
||||
$this->assertSame(
|
||||
'Hello World',
|
||||
rest_sanitize_request_arg( 'Hello World', $this->request, 'sometextfield' )
|
||||
);
|
||||
$this->assertSame(
|
||||
'Hello World',
|
||||
rest_sanitize_request_arg( '<p>Hello World</p>', $this->request, 'sometextfield' )
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 49960
|
||||
*/
|
||||
public function test_validate_schema_format_textarea_field() {
|
||||
$this->assertTrue(
|
||||
rest_validate_request_arg( "Hello\nWorld", $this->request, 'sometextareafield' )
|
||||
);
|
||||
|
||||
$this->assertErrorResponse(
|
||||
'rest_invalid_type',
|
||||
rest_validate_request_arg( false, $this->request, 'sometextareafield' )
|
||||
);
|
||||
|
||||
$this->assertSame(
|
||||
"Hello\nWorld",
|
||||
rest_sanitize_request_arg( "Hello\nWorld", $this->request, 'sometextareafield' )
|
||||
);
|
||||
$this->assertSame(
|
||||
"Hello\nWorld",
|
||||
rest_sanitize_request_arg( "<p>Hello\nWorld</p>", $this->request, 'sometextareafield' )
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 50876
|
||||
*/
|
||||
@@ -234,6 +288,8 @@ class WP_Test_REST_Controller extends WP_Test_REST_TestCase {
|
||||
$this->assertArrayHasKey( 'someemail', $args );
|
||||
$this->assertArrayHasKey( 'somehex', $args );
|
||||
$this->assertArrayHasKey( 'someuuid', $args );
|
||||
$this->assertArrayHasKey( 'sometextfield', $args );
|
||||
$this->assertArrayHasKey( 'sometextareafield', $args );
|
||||
$this->assertArrayHasKey( 'someenum', $args );
|
||||
$this->assertArrayHasKey( 'someargoptions', $args );
|
||||
$this->assertArrayHasKey( 'somedefault', $args );
|
||||
@@ -323,6 +379,8 @@ class WP_Test_REST_Controller extends WP_Test_REST_TestCase {
|
||||
'someemail',
|
||||
'somehex',
|
||||
'someuuid',
|
||||
'sometextfield',
|
||||
'sometextareafield',
|
||||
'someenum',
|
||||
'someargoptions',
|
||||
'somedefault',
|
||||
@@ -356,6 +414,8 @@ class WP_Test_REST_Controller extends WP_Test_REST_TestCase {
|
||||
'someemail',
|
||||
'somehex',
|
||||
'someuuid',
|
||||
'sometextfield',
|
||||
'sometextareafield',
|
||||
'someenum',
|
||||
'someargoptions',
|
||||
'somedefault',
|
||||
|
||||
Reference in New Issue
Block a user