public function test_validate_schema_type_boolean() { $this->assertTrue(rest_validate_request_arg(true, $this->request, 'someboolean')); $this->assertTrue(rest_validate_request_arg(false, $this->request, 'someboolean')); $this->assertTrue(rest_validate_request_arg('true', $this->request, 'someboolean')); $this->assertTrue(rest_validate_request_arg('TRUE', $this->request, 'someboolean')); $this->assertTrue(rest_validate_request_arg('false', $this->request, 'someboolean')); $this->assertTrue(rest_validate_request_arg('False', $this->request, 'someboolean')); $this->assertTrue(rest_validate_request_arg('1', $this->request, 'someboolean')); $this->assertTrue(rest_validate_request_arg('0', $this->request, 'someboolean')); $this->assertTrue(rest_validate_request_arg(1, $this->request, 'someboolean')); $this->assertTrue(rest_validate_request_arg(0, $this->request, 'someboolean')); // Check sanitize testing. $this->assertEquals(false, rest_sanitize_request_arg('false', $this->request, 'someboolean')); $this->assertEquals(false, rest_sanitize_request_arg('0', $this->request, 'someboolean')); $this->assertEquals(false, rest_sanitize_request_arg(0, $this->request, 'someboolean')); $this->assertEquals(false, rest_sanitize_request_arg('FALSE', $this->request, 'someboolean')); $this->assertEquals(true, rest_sanitize_request_arg('true', $this->request, 'someboolean')); $this->assertEquals(true, rest_sanitize_request_arg('1', $this->request, 'someboolean')); $this->assertEquals(true, rest_sanitize_request_arg(1, $this->request, 'someboolean')); $this->assertEquals(true, rest_sanitize_request_arg('TRUE', $this->request, 'someboolean')); $this->assertErrorResponse('rest_invalid_param', rest_validate_request_arg('123', $this->request, 'someboolean')); }
/** * Parse a request argument based on details registered to the route. * * Runs a validation check and sanitizes the value, primarily to be used via * the `sanitize_callback` arguments in the endpoint args registration. * * @param mixed $value * @param WP_REST_Request $request * @param string $param * @return mixed */ function rest_parse_request_arg($value, $request, $param) { $is_valid = rest_validate_request_arg($value, $request, $param); if (is_wp_error($is_valid)) { return $is_valid; } $value = rest_sanitize_request_arg($value, $request, $param); return $value; }