WordPress.org

Make WordPress Core


Ignore:
Timestamp:
11/23/2021 06:55:23 PM (2 weeks ago)
Author:
hellofromTonya
Message:

Build/Test Tools: Fix warnings from stdClass::__invoke() callback mocks in REST API tests.

When running core tests on PHPUnit 8.x and 9.x, four non-blocking warnings were displayed for the REST API tests:

There were 4 warnings:

1) Tests_REST_Request::test_route_level_validate_callback
createPartialMock called with method(s) __invoke that do not exist in stdClass. This will not be allowed in future versions of PHPUnit.

2) Tests_REST_Request::test_route_level_validate_callback_no_parameter_callbacks
createPartialMock called with method(s) __invoke that do not exist in stdClass. This will not be allowed in future versions of PHPUnit.

3) Tests_REST_Request::test_route_level_validate_callback_is_not_executed_if_parameter_validation_fails
createPartialMock called with method(s) __invoke that do not exist in stdClass. This will not be allowed in future versions of PHPUnit.

4) Tests_REST_Server::test_callbacks_are_not_executed_if_request_validation_fails
createPartialMock called with method(s) __invoke that do not exist in stdClass. This will not be allowed in future versions of PHPUnit.

These warnings are due to the PHP native stdClass not having a __invoke() method declared.

This commit adds a Mock_Invokable reusable class and replaces the stdClass with this new class.

Follow-up to [48945], [48947].

Props sourovroy, jrf.
Fixes #53844.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/rest-api/rest-request.php

    r51657 r52235  
    1717
    1818        $this->request = new WP_REST_Request();
     19    }
     20
     21    /**
     22     * Called before setting up all tests.
     23     */
     24    public static function set_up_before_class() {
     25        parent::set_up_before_class();
     26
     27        // Require files that need to load once.
     28        require_once DIR_TESTROOT . '/includes/mock-invokable.php';
    1929    }
    2030
     
    10151025
    10161026        $error    = new WP_Error( 'error_code', __( 'Error Message' ), array( 'status' => 400 ) );
    1017         $callback = $this->createPartialMock( 'stdClass', array( '__invoke' ) );
     1027        $callback = $this->createPartialMock( 'Mock_Invokable', array( '__invoke' ) );
    10181028        $callback->expects( self::once() )->method( '__invoke' )->with( self::identicalTo( $request ) )->willReturn( $error );
    10191029        $request->set_attributes(
     
    10391049
    10401050        $error    = new WP_Error( 'error_code', __( 'Error Message' ), array( 'status' => 400 ) );
    1041         $callback = $this->createPartialMock( 'stdClass', array( '__invoke' ) );
     1051        $callback = $this->createPartialMock( 'Mock_Invokable', array( '__invoke' ) );
    10421052        $callback->expects( self::once() )->method( '__invoke' )->with( self::identicalTo( $request ) )->willReturn( $error );
    10431053        $request->set_attributes(
     
    10571067        $request->set_query_params( array( 'test' => 'value' ) );
    10581068
    1059         $callback = $this->createPartialMock( 'stdClass', array( '__invoke' ) );
     1069        $callback = $this->createPartialMock( 'Mock_Invokable', array( '__invoke' ) );
    10601070        $callback->expects( self::never() )->method( '__invoke' );
    10611071        $request->set_attributes(
Note: See TracChangeset for help on using the changeset viewer.