WordPress.org

Make WordPress Core

Ticket #46570: 46570.1.diff

File 46570.1.diff, 1.3 KB (added by donmhico, 10 months ago)

Added unit test.

  • src/wp-includes/functions.php

    diff --git src/wp-includes/functions.php src/wp-includes/functions.php
    index a2070c1ec7..b9320b2045 100644
    function is_serialized( $data, $strict = true ) { 
    528528                case 'i':
    529529                case 'd':
    530530                        $end = $strict ? '$' : '';
    531                         return (bool) preg_match( "/^{$token}:[0-9.E-]+;$end/", $data );
     531                        return (bool) preg_match( "/^{$token}:[0-9.+E-]+;$end/", $data );
    532532        }
    533533        return false;
    534534}
  • tests/phpunit/tests/functions.php

    diff --git tests/phpunit/tests/functions.php tests/phpunit/tests/functions.php
    index 53f6e2cd5c..50bf9305de 100644
    class Tests_Functions extends WP_UnitTestCase { 
    213213                                        '3',
    214214                                        4,
    215215                                )
    216                         ),
     216                        )
    217217                );
    218218                foreach ( $cases as $case ) {
    219219                        $this->assertTrue( is_serialized( $case ), "Serialized data: $case" );
    class Tests_Functions extends WP_UnitTestCase { 
    229229                }
    230230        }
    231231
     232        /**
     233         * @ticket 46570
     234         */
     235        function test_is_serialized_should_return_true_for_large_digits() {
     236
     237                $cases = array(
     238                        serialize( 1.7976931348623157E+308 ),
     239                        serialize( array( 1.7976931348623157E+308, 1.23e50 ) )
     240                );
     241
     242                foreach( $cases as $case ) {
     243
     244                        $this->assertTrue( is_serialized( $case ), "Serialized data: $case" );
     245
     246                }
     247
     248        }
     249
    232250        /**
    233251         * @ticket 17375
    234252         */