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-server.php

    r52080 r52235  
    3434
    3535        parent::tear_down();
     36    }
     37
     38    /**
     39     * Called before setting up all tests.
     40     */
     41    public static function set_up_before_class() {
     42        parent::set_up_before_class();
     43
     44        // Require files that need to load once.
     45        require_once DIR_TESTROOT . '/includes/mock-invokable.php';
    3646    }
    3747
     
    16311641     */
    16321642    public function test_callbacks_are_not_executed_if_request_validation_fails() {
    1633         $callback = $this->createPartialMock( 'stdClass', array( '__invoke' ) );
     1643        $callback = $this->createPartialMock( 'Mock_Invokable', array( '__invoke' ) );
    16341644        $callback->expects( self::never() )->method( '__invoke' );
    1635         $permission_callback = $this->createPartialMock( 'stdClass', array( '__invoke' ) );
     1645        $permission_callback = $this->createPartialMock( 'Mock_Invokable', array( '__invoke' ) );
    16361646        $permission_callback->expects( self::never() )->method( '__invoke' );
    16371647
Note: See TracChangeset for help on using the changeset viewer.