Make WordPress Core

Ticket #54257: 54257.1.diff

File 54257.1.diff, 8.4 KB (added by costdev, 4 years ago)
  • tests/phpunit/tests/functions/isPhpVersionCompatible.php

    diff --git a/tests/phpunit/tests/functions/isPhpVersionCompatible.php b/tests/phpunit/tests/functions/isPhpVersionCompatible.php
    index abbd03e08d..f7063f45d5 100644
    a b  
    11<?php
    22
    33/**
    4  * Tests the is_php_version_compatible function.
     4 * Tests the is_php_version_compatible() function.
    55 *
    66 * @group functions.php
    77 * @covers ::is_php_version_compatible
    88 */
    9 class Tests_Functions_isPhpVersionCompatible extends WP_UnitTestCase {
     9class Tests_Functions_IsPhpVersionCompatible extends WP_UnitTestCase {
    1010        /**
    1111         * Tests is_php_version_compatible().
    1212         *
    1313         * @dataProvider data_is_php_version_compatible
    1414         *
    15          * @param mixed $test_value
    16          * @param bool $expected
    17          *
    1815         * @ticket 54257
     16         *
     17         * @param mixed $required The minimum required PHP version.
     18         * @param bool  $expected The expected result.
    1919         */
    20         public function test_is_php_version_compatible( $test_value, $expected ) {
    21                 $this->assertSame( is_php_version_compatible( $test_value ), $expected );
     20        public function test_is_php_version_compatible( $required, $expected ) {
     21                $this->assertSame( $expected, is_php_version_compatible( $required ) );
    2222        }
    2323
    2424        /**
    25          * Provides test scenarios for test_php_version_compatible.
     25         * Data provider.
    2626         *
    2727         * @return array
    2828         */
    29         function data_is_php_version_compatible() {
     29        public function data_is_php_version_compatible() {
    3030                $php_version = phpversion();
    3131
    32                 $more = explode( '.', $php_version );
    33                 $less = $more;
     32                $lower = explode( '.', $php_version );
     33                $higher = $lower;
    3434
    35                 -- $less[ count( $less ) - 1 ];
    36                 ++ $more[ count( $less ) - 1 ];
     35                --$lower[ count( $lower ) - 1 ];
     36                ++$higher[ count( $higher ) - 1 ];
    3737
    3838                return array(
    39                         'greater' => array(
    40                                 'test_value' => implode( '.', $more ),
    41                                 'expected'   => false,
     39                        // Happy paths.
     40                        'a lower required version'  => array(
     41                                'required' => implode( '.', $lower ),
     42                                'expected' => true,
     43                        ),
     44                        'the same version'          => array(
     45                                'required' => $php_version,
     46                                'expected' => true,
     47                        ),
     48                        'a higher required version' => array(
     49                                'required' => implode( '.', $higher ),
     50                                'expected' => false,
     51                        ),
     52
     53                        // Falsey values.
     54                        'false'                     => array(
     55                                'required' => false,
     56                                'expected' => true,
     57                        ),
     58                        'null'                      => array(
     59                                'required' => null,
     60                                'expected' => true,
     61                        ),
     62                        '0 int'                     => array(
     63                                'required' => 0,
     64                                'expected' => true,
     65                        ),
     66                        '0.0 float'                 => array(
     67                                'required' => 0.0,
     68                                'expected' => true,
     69                        ),
     70                        '0 string'                  => array(
     71                                'required' => '0',
     72                                'expected' => true,
    4273                        ),
    43                         'same'    => array(
    44                                 'test_value' => $php_version,
    45                                 'expected'   => true,
     74                        'empty string'              => array(
     75                                'required' => '',
     76                                'expected' => true,
    4677                        ),
    47                         'less'    => array(
    48                                 'test_value' => implode( '.', $less ),
    49                                 'expected'   => true,
     78                        'empty array'               => array(
     79                                'required' => array(),
     80                                'expected' => true,
    5081                        ),
    5182                );
    5283        }
  • tests/phpunit/tests/functions/isWpVersionCompatible.php

    diff --git a/tests/phpunit/tests/functions/isWpVersionCompatible.php b/tests/phpunit/tests/functions/isWpVersionCompatible.php
    index dfec2a37cb..106822f708 100644
    a b  
    11<?php
    22
    33/**
    4  * Tests the is_php_version_compatible function.
     4 * Tests the is_wp_version_compatible() function.
    55 *
    66 * @group functions.php
    77 * @covers ::is_wp_version_compatible
    88 */
    9 class Tests_Functions_isWpVersionCompatible extends WP_UnitTestCase {
     9class Tests_Functions_IsWpVersionCompatible extends WP_UnitTestCase {
    1010        /**
    11          * Test is_wp_version_compatible().
     11         * Tests is_wp_version_compatible().
    1212         *
    1313         * @dataProvider data_is_wp_version_compatible
    1414         *
    15          * @param mixed $test_value
    16          * @param bool $expected
     15         * @ticket 54257
     16         *
     17         * @param mixed $required The minimum required WordPress version.
     18         * @param bool  $expected The expected result.
     19         */
     20        public function test_is_wp_version_compatible( $required, $expected ) {
     21                $this->assertSame( $expected, is_wp_version_compatible( $required ) );
     22        }
     23
     24        /**
     25         * Data provider.
     26         *
     27         * @return array
     28         */
     29        public function data_is_wp_version_compatible() {
     30                global $wp_version;
     31
     32                $lower  = explode( '.', $wp_version );
     33                $higher = $lower;
     34
     35                --$lower[0];
     36                ++$higher[0];
     37
     38                return array(
     39                        // Happy paths.
     40                        'the same version'          => array(
     41                                'required' => $wp_version,
     42                                'expected' => true,
     43                        ),
     44                        'a lower required version'  => array(
     45                                'required' => implode( '.', $lower ),
     46                                'expected' => true,
     47                        ),
     48                        'a higher required version' => array(
     49                                'required' => implode( '.', $higher ),
     50                                'expected' => false,
     51                        ),
     52
     53                        // Falsey values.
     54                        'false'                     => array(
     55                                'required' => false,
     56                                'expected' => true,
     57                        ),
     58                        'null'                      => array(
     59                                'required' => null,
     60                                'expected' => true,
     61                        ),
     62                        '0 int'                     => array(
     63                                'required' => 0,
     64                                'expected' => true,
     65                        ),
     66                        '0.0 float'                 => array(
     67                                'required' => 0.0,
     68                                'expected' => true,
     69                        ),
     70                        '0 string'                  => array(
     71                                'required' => '0',
     72                                'expected' => true,
     73                        ),
     74                        'empty string'              => array(
     75                                'required' => '',
     76                                'expected' => true,
     77                        ),
     78                        'empty array'               => array(
     79                                'required' => array(),
     80                                'expected' => true,
     81                        ),
     82                );
     83        }
     84
     85        /**
     86         * Tests is_wp_version_compatible() with development versions.
     87         *
     88         * @dataProvider data_is_wp_version_compatible_with_development_versions
    1789         *
    1890         * @ticket 54257
     91         *
     92         * @param string $required  The minimum required WordPress version.
     93         * @param string $wp        The value for the $wp_version global variable.
     94         * @param bool   $expected  The expected result.
    1995         */
    20         public function test_is_wp_version_compatible( $test_value, $expected ) {
    21                 $this->assertSame( is_wp_version_compatible( $test_value ), $expected );
     96        public function test_is_wp_version_compatible_with_development_versions( $required, $wp, $expected ) {
     97                global $wp_version;
     98
     99                $original_version = $wp_version;
     100                $wp_version       = $wp;
     101                $actual           = is_wp_version_compatible( $required );
     102
     103                // Reset the version before the assertion in case of failure.
     104                $wp_version = $original_version;
     105
     106                $this->assertSame( $expected, $actual );
    22107        }
    23108
    24109        /**
    25          * Provides test scenarios test_is_wp_version_compatible.
     110         * Data provider.
    26111         *
    27112         * @return array
    28113         */
    29         function data_is_wp_version_compatible() {
    30                 $wp_version = get_bloginfo( 'version' );
     114        public function data_is_wp_version_compatible_with_development_versions() {
     115                global $wp_version;
    31116
    32                 $more = explode( '.', $wp_version );
    33                 $less = $more;
     117                // For consistent results, remove possible suffixes.
     118                list( $version ) = explode( '-', $wp_version );
    34119
    35                 -- $less[0];
    36                 ++ $more[0];
     120                $lower  = explode( '.', $version );
     121                $higher = $lower;
     122
     123                --$lower[0];
     124                ++$higher[0];
    37125
    38126                return array(
    39                         'greater' => array(
    40                                 'test_value' => implode( '.', $more ),
    41                                 'expected'   => false,
     127                        'a lower required version and an alpha wordpress version' => array(
     128                                'required' => implode( '.', $lower ),
     129                                'wp'       => $version . '-alpha-12341-src',
     130                                'expected' => true,
     131                        ),
     132                        'a lower required version and a beta wordpress version'   => array(
     133                                'required' => implode( '.', $lower ),
     134                                'wp'       => $version . '-beta1',
     135                                'expected' => true,
     136                        ),
     137                        'the same required version and an alpha wordpress version' => array(
     138                                'required' => $version,
     139                                'wp'       => $version . '-alpha-12341-src',
     140                                'expected' => true,
     141                        ),
     142                        'the same required version and a beta wordpress version' => array(
     143                                'required' => $version,
     144                                'wp'       => $version . '-beta1',
     145                                'expected' => true,
    42146                        ),
    43                         'same'    => array(
    44                                 'test_value' => $wp_version,
    45                                 'expected'   => true,
     147                        'a higher required version and an alpha wordpress version'   => array(
     148                                'required' => implode( '.', $higher ),
     149                                'wp'       => $version . '-alpha-12341-src',
     150                                'expected' => false,
    46151                        ),
    47                         'less'    => array(
    48                                 'test_value' => implode( '.', $less ),
    49                                 'expected'   => true,
     152                        'a higher required version and a beta wordpress version'   => array(
     153                                'required' => implode( '.', $higher ),
     154                                'wp'       => $version . '-beta1',
     155                                'expected' => false,
    50156                        ),
    51157                );
    52158        }