diff --git a/src/wp-includes/rest-api/class-wp-rest-request.php b/src/wp-includes/rest-api/class-wp-rest-request.php
index 4dd0dc2..74a81c9 100644
|
a
|
b
|
class WP_REST_Request implements ArrayAccess { |
| 364 | 364 | $this->parse_body_params(); |
| 365 | 365 | } |
| 366 | 366 | |
| 367 | | $accepts_body_data = array( 'POST', 'PUT', 'PATCH' ); |
| | 367 | $accepts_body_data = array( 'POST', 'PUT', 'PATCH', 'DELETE' ); |
| 368 | 368 | if ( in_array( $this->method, $accepts_body_data ) ) { |
| 369 | 369 | $order[] = 'POST'; |
| 370 | 370 | } |
diff --git a/tests/phpunit/tests/rest-api/rest-request.php b/tests/phpunit/tests/rest-api/rest-request.php
index 7953f65..caf6071 100644
|
a
|
b
|
class Tests_REST_Request extends WP_UnitTestCase { |
| 203 | 203 | $this->assertEmpty( $this->request->get_param( 'has_json_params' ) ); |
| 204 | 204 | } |
| 205 | 205 | |
| | 206 | public function non_post_http_methods_with_request_body_provider() { |
| | 207 | return array( |
| | 208 | array( 'PUT' ), |
| | 209 | array( 'PATCH' ), |
| | 210 | array( 'DELETE' ), |
| | 211 | ); |
| | 212 | } |
| | 213 | |
| 206 | 214 | /** |
| 207 | | * PUT requests don't get $_POST automatically parsed, so ensure that |
| 208 | | * WP_REST_Request does it for us. |
| | 215 | * Tests that methods supporting request bodies have access to the |
| | 216 | * request's body. For POST this is straightforward via `$_POST`; for |
| | 217 | * other methods `WP_REST_Request` needs to parse the body for us. |
| | 218 | * |
| | 219 | * @dataProvider non_post_http_methods_with_request_body_provider |
| 209 | 220 | */ |
| 210 | | public function test_parameters_for_put() { |
| | 221 | public function test_non_post_body_parameters( $request_method ) { |
| 211 | 222 | $data = array( |
| 212 | | 'foo' => 'bar', |
| | 223 | 'foo' => 'bar', |
| 213 | 224 | 'alot' => array( |
| 214 | 225 | 'of' => 'parameters', |
| 215 | 226 | ), |
| … |
… |
class Tests_REST_Request extends WP_UnitTestCase { |
| 219 | 230 | 'stuff', |
| 220 | 231 | ), |
| 221 | 232 | ); |
| 222 | | |
| 223 | | $this->request->set_method( 'PUT' ); |
| | 233 | $this->request->set_method( $request_method ); |
| 224 | 234 | $this->request->set_body_params( array() ); |
| 225 | 235 | $this->request->set_body( http_build_query( $data ) ); |
| 226 | | |
| 227 | 236 | foreach ( $data as $key => $expected_value ) { |
| 228 | | $this->assertEquals( $expected_value, $this->request->get_param( $key ) ); |
| | 237 | $this->assertEquals( |
| | 238 | $expected_value, |
| | 239 | $this->request->get_param( $key ), |
| | 240 | "Body parameters for $request_method" |
| | 241 | ); |
| 229 | 242 | } |
| 230 | 243 | } |
| 231 | 244 | |