Make WordPress Core


Ignore:
Timestamp:
02/28/2024 06:09:38 PM (13 months ago)
Author:
SergeyBiryukov
Message:

Tests: Expand wp_parse_id_list() unit tests.

Includes:

  • Moving pre-existing wp_parse_id_list() tests to their own file.
  • Merging new and pre-existing wp_parse_slug_list() tests.
  • Using named data provider in wp_parse_list() tests.

Follow-up to [25170], [40044], [44546], [57284], [57725].

Props pbearne, mukesh27, SergeyBiryukov.
Fixes #60218. See #60217, #59647.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/functions/wpParseList.php

    r57735 r57737  
    1212    /**
    1313     * @ticket 43977
     14     *
    1415     * @dataProvider data_wp_parse_list
    1516     */
    16     public function test_wp_parse_list( $expected, $actual ) {
    17         $this->assertSame( $expected, array_values( wp_parse_list( $actual ) ) );
     17    public function test_wp_parse_list( $input_list, $expected ) {
     18        $this->assertSameSets( $expected, wp_parse_list( $input_list ) );
    1819    }
    1920
     
    2526    public function data_wp_parse_list() {
    2627        return array(
    27             array( array( '1', '2', '3', '4' ), '1,2,3,4' ),
    28             array( array( 'apple', 'banana', 'carrot', 'dog' ), 'apple,banana,carrot,dog' ),
    29             array( array( '1', '2', 'apple', 'banana' ), '1,2,apple,banana' ),
    30             array( array( '1', '2', 'apple', 'banana' ), '1, 2,apple,banana' ),
    31             array( array( '1', '2', 'apple', 'banana' ), '1,2,apple,,banana' ),
    32             array( array( '1', '2', 'apple', 'banana' ), ',1,2,apple,banana' ),
    33             array( array( '1', '2', 'apple', 'banana' ), '1,2,apple,banana,' ),
    34             array( array( '1', '2', 'apple', 'banana' ), '1,2 ,apple,banana' ),
    35             array( array(), '' ),
    36             array( array(), ',' ),
    37             array( array(), ',,' ),
     28            'ids only'           => array(
     29                'input_list' => '1,2,3,4',
     30                'expected'   => array( '1', '2', '3', '4' ),
     31            ),
     32            'slugs only'         => array(
     33                'input_list' => 'apple,banana,carrot,dog',
     34                'expected'   => array( 'apple', 'banana', 'carrot', 'dog' ),
     35            ),
     36            'ids and slugs'      => array(
     37                'input_list' => '1,2,apple,banana',
     38                'expected'   => array( '1', '2', 'apple', 'banana' ),
     39            ),
     40            'space after comma'  => array(
     41                'input_list' => '1, 2,apple,banana',
     42                'expected'   => array( '1', '2', 'apple', 'banana' ),
     43            ),
     44            'double comma'       => array(
     45                'input_list' => '1,2,apple,,banana',
     46                'expected'   => array( '1', '2', 'apple', 'banana' ),
     47            ),
     48            'leading comma'      => array(
     49                'input_list' => ',1,2,apple,banana',
     50                'expected'   => array( '1', '2', 'apple', 'banana' ),
     51            ),
     52            'trailing comma'     => array(
     53                'input_list' => '1,2,apple,banana,',
     54                'expected'   => array( '1', '2', 'apple', 'banana' ),
     55            ),
     56            'space before comma' => array(
     57                'input_list' => '1,2 ,apple,banana',
     58                'expected'   => array( '1', '2', 'apple', 'banana' ),
     59            ),
     60            'empty string'       => array(
     61                'input_list' => '',
     62                'expected'   => array(),
     63            ),
     64            'comma only'         => array(
     65                'input_list' => ',',
     66                'expected'   => array(),
     67            ),
     68            'double comma only'  => array(
     69                'input_list' => ',,',
     70                'expected'   => array(),
     71            ),
    3872        );
    3973    }
Note: See TracChangeset for help on using the changeset viewer.