Make WordPress Core

Changeset 51586


Ignore:
Timestamp:
08/09/2021 05:19:21 PM (5 years ago)
Author:
SergeyBiryukov
Message:

Code Modernization: Rename the readonly() function to wp_readonly().

Since PHP 8.1, readonly is a reserved keyword and cannot be used as a function name.

In order to avoid PHP parser errors, the readonly() function was extracted to a separate file and is now only included conditionally on PHP < 8.1.

This commit also:

  • Moves the tests for the __checked_selected_helper() function and all the related functions to their own file.
  • Switches to named data providers. This makes the output when using the --testdox option more descriptive and is helpful when trying to debug which data set from a data provider failed the test.
  • Improves the tests in question to make them feature-complete and expand test coverage.

Props jrf, ayeshrajans, haosun, knutsp, swissspidy, SergeyBiryukov.
Fixes #53858.

Location:
trunk
Files:
3 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/phpunit.xml.dist

    r51583 r51586  
    66                colors="true"
    77                beStrictAboutTestsThatDoNotTestAnything="true"
     8                beStrictAboutOutputDuringTests="true"
    89                >
    910        <testsuites>
  • trunk/src/wp-includes/general-template.php

    r51298 r51586  
    48144814 * Compares the first two arguments and if identical marks as readonly
    48154815 *
    4816  * @since 4.9.0
     4816 * @since 5.9.0
    48174817 *
    48184818 * @param mixed $readonly One of the values to compare
     
    48214821 * @return string HTML attribute or empty string
    48224822 */
    4823 function readonly( $readonly, $current = true, $echo = true ) {
     4823function wp_readonly( $readonly, $current = true, $echo = true ) {
    48244824        return __checked_selected_helper( $readonly, $current, $echo, 'readonly' );
     4825}
     4826
     4827/*
     4828 * Include a compat `readonly()` function on PHP < 8.1. Since PHP 8.1,
     4829 * `readonly` is a reserved keyword and cannot be used as a function name.
     4830 * In order to avoid PHP parser errors, this function was extracted
     4831 * to a separate file and is only included conditionally on PHP < 8.1.
     4832 */
     4833if ( PHP_VERSION_ID < 80100 ) {
     4834        require_once __DIR__ . '/php-compat/readonly.php';
    48254835}
    48264836
  • trunk/tests/phpunit/multisite.xml

    r51583 r51586  
    66                colors="true"
    77                beStrictAboutTestsThatDoNotTestAnything="true"
     8                beStrictAboutOutputDuringTests="true"
    89                >
    910        <php>
  • trunk/tests/phpunit/tests/general/template.php

    r51568 r51586  
    573573
    574574        /**
    575          * @ticket 9862
    576          * @ticket 51166
    577          * @dataProvider data_selected_and_checked_with_equal_values
    578          *
    579          * @covers ::selected
    580          * @covers ::checked
    581          */
    582         function test_selected_and_checked_with_equal_values( $selected, $current ) {
    583                 $this->assertSame( " selected='selected'", selected( $selected, $current, false ) );
    584                 $this->assertSame( " checked='checked'", checked( $selected, $current, false ) );
    585         }
    586 
    587         function data_selected_and_checked_with_equal_values() {
    588                 return array(
    589                         array( 'foo', 'foo' ),
    590                         array( '1', 1 ),
    591                         array( '1', true ),
    592                         array( 1, 1 ),
    593                         array( 1, true ),
    594                         array( true, true ),
    595                         array( '0', 0 ),
    596                         array( 0, 0 ),
    597                         array( '', false ),
    598                         array( false, false ),
    599                 );
    600         }
    601 
    602         /**
    603          * @ticket 9862
    604          * @ticket 51166
    605          * @dataProvider data_selected_and_checked_with_non_equal_values
    606          *
    607          * @covers ::selected
    608          * @covers ::checked
    609          */
    610         function test_selected_and_checked_with_non_equal_values( $selected, $current ) {
    611                 $this->assertSame( '', selected( $selected, $current, false ) );
    612                 $this->assertSame( '', checked( $selected, $current, false ) );
    613         }
    614 
    615         function data_selected_and_checked_with_non_equal_values() {
    616                 return array(
    617                         array( '0', '' ),
    618                         array( 0, '' ),
    619                         array( 0, false ),
    620                 );
    621         }
    622 
    623         /**
    624575         * @ticket 44183
    625576         *
Note: See TracChangeset for help on using the changeset viewer.