WordPress.org

Make WordPress Core

Ticket #42870: 42870.patch

File 42870.patch, 2.7 KB (added by pbearne, 22 months ago)

the correct patch

  • tests/phpunit/tests/functions.php

     
    227227                $this->assertFalse( is_serialized( 'C:16:"Serialized_Class":6:{a:0:{}}' ) );
    228228        }
    229229
    230         /**
    231          * @dataProvider data_is_serialized_string
    232          */
    233         public function test_is_serialized_string( $value, $result ) {
    234                 $this->assertSame( is_serialized_string( $value ), $result );
    235         }
    236230
    237         public function data_is_serialized_string() {
    238                 return array(
    239                         // Not a string.
    240                         array( 0, false ),
    241 
    242                         // Too short when trimmed.
    243                         array( 's:3   ', false ),
    244 
    245                         // Too short.
    246                         array( 's:3', false ),
    247 
    248                         // No colon in second position.
    249                         array( 's!3:"foo";', false ),
    250 
    251                         // No trailing semicolon.
    252                         array( 's:3:"foo"', false ),
    253 
    254                         // Wrong type.
    255                         array( 'a:3:"foo";', false ),
    256 
    257                         // No closing quote.
    258                         array( 'a:3:"foo;', false ),
    259 
    260                         // Wrong number of characters is close enough for is_serialized_string().
    261                         array( 's:12:"foo";', true ),
    262 
    263                         // Okay.
    264                         array( 's:3:"foo";', true ),
    265 
    266                 );
    267         }
    268 
    269231        /**
    270232         * @group add_query_arg
    271233         */
  • tests/phpunit/tests/functions/isSerializedString.php

     
     1<?php
     2
     3/**
     4 * Tests for Is_Serialized_String()
     5 *
     6 * @group functions.php
     7 * @ticket #42870
     8 */
     9class Tests_Functions_Is_Serialized_String extends WP_UnitTestCase {
     10        public function _is_serialized_string() {
     11                return array(
     12
     13                        // pass array
     14                        array( array(), false ),
     15
     16                        // pass a class
     17                        array( new stdClass(), false ),
     18
     19                        // Not a string.
     20                        array( 0, false ),
     21
     22                        // Too short when trimmed.
     23                        array( 's:3       ', false ),
     24
     25                        // Too short.
     26                        array( 's:3', false ),
     27
     28                        // No colon in second position.
     29                        array( 's!3:"foo";', false ),
     30
     31                        // No trailing semicolon.
     32                        array( 's:3:"foo"', false ),
     33
     34                        // Wrong type.
     35                        array( 'a:3:"foo";', false ),
     36
     37                        // No closing quote.
     38                        array( 'a:3:"foo;', false ),
     39
     40                        // have to use double Quotes
     41                        array( "s:12:'foo';", false ),
     42
     43                        // Wrong number of characters is close enough for is_serialized_string().
     44                        array( 's:12:"foo";', true ),
     45
     46                        // Okay.
     47                        array( 's:3:"foo";', true ),
     48                );
     49        }
     50
     51        /**
     52         * @dataProvider _is_serialized_string
     53         *
     54         * @param $data
     55         * @param $expected
     56         */
     57        public function test_is_serialized_string( $data, $expected ) {
     58                $this->assertSame( $expected, is_serialized_string( $data ) );
     59        }
     60}