WordPress.org

Make WordPress Core

Ticket #38962: 38962.3.diff

File 38962.3.diff, 4.0 KB (added by rachelbaker, 2 years ago)

Uses assertErrorResponse() helper in the tests

  • src/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php

     
    701701         * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
    702702         */
    703703        public function delete_item( $request ) {
     704                // We don't support delete requests in multisite.
     705                if ( is_multisite() ) {
     706                        return new WP_Error( 'rest_cannot_delete', __( 'The user cannot be deleted.' ), array( 'status' => 501 ) );
     707                }
     708
    704709                $id       = (int) $request['id'];
    705710                $reassign = false === $request['reassign'] ? null : absint( $request['reassign'] );
    706711                $force    = isset( $request['force'] ) ? (bool) $request['force'] : false;
  • tests/phpunit/tests/rest-api/rest-users-controller.php

     
    16431643                $request->set_param( 'reassign', false );
    16441644                $response = $this->server->dispatch( $request );
    16451645
     1646                // Not implemented in multisite.
     1647                if ( is_multisite() ) {
     1648                        $this->assertErrorResponse( 'rest_cannot_delete', $response, 501 );
     1649                        return;
     1650                }
     1651
    16461652                $this->assertEquals( 200, $response->get_status() );
    16471653                $data = $response->get_data();
    16481654                $this->assertTrue( $data['deleted'] );
     
    16601666                $request = new WP_REST_Request( 'DELETE', sprintf( '/wp/v2/users/%d', $user_id ) );
    16611667                $request->set_param( 'reassign', false );
    16621668                $response = $this->server->dispatch( $request );
     1669
     1670                // Not implemented in multisite.
     1671                if ( is_multisite() ) {
     1672                        $this->assertErrorResponse( 'rest_cannot_delete', $response, 501 );
     1673                        return;
     1674                }
     1675
    16631676                $this->assertErrorResponse( 'rest_trash_not_supported', $response, 501 );
    16641677
    16651678                $request->set_param( 'force', 'false' );
     
    16831696                $request->set_param( 'reassign', false );
    16841697                $response = $this->server->dispatch( $request );
    16851698
     1699                // Not implemented in multisite.
     1700                if ( is_multisite() ) {
     1701                        $this->assertErrorResponse( 'rest_cannot_delete', $response, 501 );
     1702                        return;
     1703                }
     1704
    16861705                $this->assertEquals( 200, $response->get_status() );
    16871706                $data = $response->get_data();
    16881707                $this->assertTrue( $data['deleted'] );
     
    16991718                $request = new WP_REST_Request( 'DELETE', '/wp/v2/users/me' );
    17001719                $request->set_param( 'reassign', false );
    17011720                $response = $this->server->dispatch( $request );
     1721
     1722                // Not implemented in multisite.
     1723                if ( is_multisite() ) {
     1724                        $this->assertErrorResponse( 'rest_cannot_delete', $response, 501 );
     1725                        return;
     1726                }
     1727
    17021728                $this->assertErrorResponse( 'rest_trash_not_supported', $response, 501 );
    17031729
    17041730                $request->set_param( 'force', 'false' );
     
    17401766                $request->set_param( 'reassign', false );
    17411767                $response = $this->server->dispatch( $request );
    17421768
     1769                // Not implemented in multisite.
     1770                if ( is_multisite() ) {
     1771                        $this->assertErrorResponse( 'rest_cannot_delete', $response, 501 );
     1772                        return;
     1773                }
     1774
    17431775                $this->assertErrorResponse( 'rest_user_invalid_id', $response, 404 );
    17441776        }
    17451777
     
    17641796                $request->set_param( 'reassign', $reassign_id );
    17651797                $response = $this->server->dispatch( $request );
    17661798
     1799                // Not implemented in multisite.
     1800                if ( is_multisite() ) {
     1801                        $this->assertErrorResponse( 'rest_cannot_delete', $response, 501 );
     1802                        return;
     1803                }
     1804
    17671805                $this->assertEquals( 200, $response->get_status() );
    17681806
    17691807                // Check that the post has been updated correctly
     
    17821820                $request->set_param( 'reassign', 100 );
    17831821                $response = $this->server->dispatch( $request );
    17841822
     1823                // Not implemented in multisite.
     1824                if ( is_multisite() ) {
     1825                        $this->assertErrorResponse( 'rest_cannot_delete', $response, 501 );
     1826                        return;
     1827                }
     1828
    17851829                $this->assertErrorResponse( 'rest_user_invalid_reassign', $response, 400 );
    17861830        }
    17871831