Make WordPress Core


Ignore:
Timestamp:
08/26/2021 04:29:37 PM (4 years ago)
Author:
SergeyBiryukov
Message:

Tests: Move wp_list_sort() tests to their own file.

This matches the name of the function being tested.

Follow-up to [38928], [51663-51666].

See #53363, #53987.

File:
1 edited

Legend:

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

    r51666 r51667  
    22
    33/**
     4 * Test WP_List_Util class.
     5 *
    46 * @group functions.php
    57 */
    68class Tests_Functions_wpListUtil extends WP_UnitTestCase {
    7 
    8     public function data_test_wp_list_sort() {
    9         return array(
    10             'single orderby ascending'        => array(
    11                 array(
    12                     array(
    13                         'foo' => 'bar',
    14                         'bar' => 'baz',
    15                         'key' => 'foo',
    16                     ),
    17                     array(
    18                         'foo'   => 'foo',
    19                         'lorem' => 'ipsum',
    20                         'key'   => 'bar',
    21                     ),
    22                     array(
    23                         'foo' => 'baz',
    24                         'key' => 'value',
    25                     ),
    26                 ),
    27                 'foo',
    28                 'ASC',
    29                 array(
    30                     array(
    31                         'foo' => 'bar',
    32                         'bar' => 'baz',
    33                         'key' => 'foo',
    34                     ),
    35                     array(
    36                         'foo' => 'baz',
    37                         'key' => 'value',
    38                     ),
    39                     array(
    40                         'foo'   => 'foo',
    41                         'lorem' => 'ipsum',
    42                         'key'   => 'bar',
    43                     ),
    44                 ),
    45             ),
    46             'single orderby descending'       => array(
    47                 array(
    48                     array(
    49                         'foo' => 'bar',
    50                         'bar' => 'baz',
    51                         'key' => 'foo',
    52                     ),
    53                     array(
    54                         'foo'   => 'foo',
    55                         'lorem' => 'ipsum',
    56                         'key'   => 'bar',
    57                     ),
    58                     array(
    59                         'foo' => 'baz',
    60                         'key' => 'value',
    61                     ),
    62                 ),
    63                 'foo',
    64                 'DESC',
    65                 array(
    66                     array(
    67                         'foo'   => 'foo',
    68                         'lorem' => 'ipsum',
    69                         'key'   => 'bar',
    70                     ),
    71                     array(
    72                         'foo' => 'baz',
    73                         'key' => 'value',
    74                     ),
    75                     array(
    76                         'foo' => 'bar',
    77                         'bar' => 'baz',
    78                         'key' => 'foo',
    79                     ),
    80                 ),
    81             ),
    82             'single orderby array ascending'  => array(
    83                 array(
    84                     array(
    85                         'foo' => 'bar',
    86                         'bar' => 'baz',
    87                         'key' => 'foo',
    88                     ),
    89                     array(
    90                         'foo'   => 'foo',
    91                         'lorem' => 'ipsum',
    92                         'key'   => 'bar',
    93                     ),
    94                     array(
    95                         'foo' => 'baz',
    96                         'key' => 'value',
    97                     ),
    98                 ),
    99                 array( 'foo' => 'ASC' ),
    100                 'IGNORED',
    101                 array(
    102                     array(
    103                         'foo' => 'bar',
    104                         'bar' => 'baz',
    105                         'key' => 'foo',
    106                     ),
    107                     array(
    108                         'foo' => 'baz',
    109                         'key' => 'value',
    110                     ),
    111                     array(
    112                         'foo'   => 'foo',
    113                         'lorem' => 'ipsum',
    114                         'key'   => 'bar',
    115                     ),
    116                 ),
    117             ),
    118             'single orderby array descending' => array(
    119                 array(
    120                     array(
    121                         'foo' => 'bar',
    122                         'bar' => 'baz',
    123                         'key' => 'foo',
    124                     ),
    125                     array(
    126                         'foo'   => 'foo',
    127                         'lorem' => 'ipsum',
    128                         'key'   => 'bar',
    129                     ),
    130                     array(
    131                         'foo' => 'baz',
    132                         'key' => 'value',
    133                     ),
    134                 ),
    135                 array( 'foo' => 'DESC' ),
    136                 'IGNORED',
    137                 array(
    138                     array(
    139                         'foo'   => 'foo',
    140                         'lorem' => 'ipsum',
    141                         'key'   => 'bar',
    142                     ),
    143                     array(
    144                         'foo' => 'baz',
    145                         'key' => 'value',
    146                     ),
    147                     array(
    148                         'foo' => 'bar',
    149                         'bar' => 'baz',
    150                         'key' => 'foo',
    151                     ),
    152                 ),
    153             ),
    154             'multiple orderby ascending'      => array(
    155                 array(
    156                     array(
    157                         'foo' => 'bar',
    158                         'bar' => 'baz',
    159                         'key' => 'foo',
    160                     ),
    161                     array(
    162                         'foo'   => 'foo',
    163                         'lorem' => 'ipsum',
    164                         'key'   => 'bar',
    165                     ),
    166                     array(
    167                         'foo' => 'foo',
    168                         'key' => 'key',
    169                     ),
    170                     array(
    171                         'foo' => 'baz',
    172                         'key' => 'key',
    173                     ),
    174                     array(
    175                         'foo' => 'bar',
    176                         'key' => 'value',
    177                     ),
    178                 ),
    179                 array(
    180                     'key' => 'ASC',
    181                     'foo' => 'ASC',
    182                 ),
    183                 'IGNORED',
    184                 array(
    185                     array(
    186                         'foo'   => 'foo',
    187                         'lorem' => 'ipsum',
    188                         'key'   => 'bar',
    189                     ),
    190                     array(
    191                         'foo' => 'bar',
    192                         'bar' => 'baz',
    193                         'key' => 'foo',
    194                     ),
    195                     array(
    196                         'foo' => 'baz',
    197                         'key' => 'key',
    198                     ),
    199                     array(
    200                         'foo' => 'foo',
    201                         'key' => 'key',
    202                     ),
    203                     array(
    204                         'foo' => 'bar',
    205                         'key' => 'value',
    206                     ),
    207                 ),
    208             ),
    209             'multiple orderby descending'     => array(
    210                 array(
    211                     array(
    212                         'foo' => 'bar',
    213                         'bar' => 'baz',
    214                         'key' => 'foo',
    215                     ),
    216                     array(
    217                         'foo'   => 'foo',
    218                         'lorem' => 'ipsum',
    219                         'key'   => 'bar',
    220                     ),
    221                     array(
    222                         'foo' => 'foo',
    223                         'key' => 'key',
    224                     ),
    225                     array(
    226                         'foo' => 'baz',
    227                         'key' => 'key',
    228                     ),
    229                     array(
    230                         'foo' => 'bar',
    231                         'key' => 'value',
    232                     ),
    233                 ),
    234                 array(
    235                     'key' => 'DESC',
    236                     'foo' => 'DESC',
    237                 ),
    238                 'IGNORED',
    239                 array(
    240                     array(
    241                         'foo' => 'bar',
    242                         'key' => 'value',
    243                     ),
    244                     array(
    245                         'foo' => 'foo',
    246                         'key' => 'key',
    247                     ),
    248                     array(
    249                         'foo' => 'baz',
    250                         'key' => 'key',
    251                     ),
    252                     array(
    253                         'foo' => 'bar',
    254                         'bar' => 'baz',
    255                         'key' => 'foo',
    256                     ),
    257                     array(
    258                         'foo'   => 'foo',
    259                         'lorem' => 'ipsum',
    260                         'key'   => 'bar',
    261                     ),
    262                 ),
    263             ),
    264             'multiple orderby mixed'          => array(
    265                 array(
    266                     array(
    267                         'foo' => 'bar',
    268                         'bar' => 'baz',
    269                         'key' => 'foo',
    270                     ),
    271                     array(
    272                         'foo'   => 'foo',
    273                         'lorem' => 'ipsum',
    274                         'key'   => 'bar',
    275                     ),
    276                     array(
    277                         'foo' => 'foo',
    278                         'key' => 'key',
    279                     ),
    280                     array(
    281                         'foo' => 'baz',
    282                         'key' => 'key',
    283                     ),
    284                     array(
    285                         'foo' => 'bar',
    286                         'key' => 'value',
    287                     ),
    288                 ),
    289                 array(
    290                     'key' => 'DESC',
    291                     'foo' => 'ASC',
    292                 ),
    293                 'IGNORED',
    294                 array(
    295                     array(
    296                         'foo' => 'bar',
    297                         'key' => 'value',
    298                     ),
    299                     array(
    300                         'foo' => 'baz',
    301                         'key' => 'key',
    302                     ),
    303                     array(
    304                         'foo' => 'foo',
    305                         'key' => 'key',
    306                     ),
    307                     array(
    308                         'foo' => 'bar',
    309                         'bar' => 'baz',
    310                         'key' => 'foo',
    311                     ),
    312                     array(
    313                         'foo'   => 'foo',
    314                         'lorem' => 'ipsum',
    315                         'key'   => 'bar',
    316                     ),
    317                 ),
    318             ),
    319         );
    320     }
    321 
    322     /**
    323      * @dataProvider data_test_wp_list_sort
    324      *
    325      * @covers ::wp_list_sort
    326      *
    327      * @param string|array $orderby Either the field name to order by or an array
    328      *                              of multiple orderby fields as $orderby => $order.
    329      * @param string       $order   Either 'ASC' or 'DESC'.
    330      */
    331     public function test_wp_list_sort( $list, $orderby, $order, $expected ) {
    332         $this->assertSame( $expected, wp_list_sort( $list, $orderby, $order ) );
    333     }
    334 
    335     public function data_test_wp_list_sort_preserve_keys() {
    336         return array(
    337             'single orderby ascending'        => array(
    338                 array(
    339                     'foobar' => array(
    340                         'foo' => 'bar',
    341                         'bar' => 'baz',
    342                         'key' => 'foo',
    343                     ),
    344                     'foofoo' => array(
    345                         'foo'   => 'foo',
    346                         'lorem' => 'ipsum',
    347                         'key'   => 'bar',
    348                     ),
    349                     'foobaz' => array(
    350                         'foo' => 'baz',
    351                         'key' => 'value',
    352                     ),
    353                 ),
    354                 'foo',
    355                 'ASC',
    356                 array(
    357                     'foobar' => array(
    358                         'foo' => 'bar',
    359                         'bar' => 'baz',
    360                         'key' => 'foo',
    361                     ),
    362                     'foobaz' => array(
    363                         'foo' => 'baz',
    364                         'key' => 'value',
    365                     ),
    366                     'foofoo' => array(
    367                         'foo'   => 'foo',
    368                         'lorem' => 'ipsum',
    369                         'key'   => 'bar',
    370                     ),
    371                 ),
    372             ),
    373             'single orderby descending'       => array(
    374                 array(
    375                     'foobar' => array(
    376                         'foo' => 'bar',
    377                         'bar' => 'baz',
    378                         'key' => 'foo',
    379                     ),
    380                     'foofoo' => array(
    381                         'foo'   => 'foo',
    382                         'lorem' => 'ipsum',
    383                         'key'   => 'bar',
    384                     ),
    385                     'foobaz' => array(
    386                         'foo' => 'baz',
    387                         'key' => 'value',
    388                     ),
    389                 ),
    390                 'foo',
    391                 'DESC',
    392                 array(
    393                     'foofoo' => array(
    394                         'foo'   => 'foo',
    395                         'lorem' => 'ipsum',
    396                         'key'   => 'bar',
    397                     ),
    398                     'foobaz' => array(
    399                         'foo' => 'baz',
    400                         'key' => 'value',
    401                     ),
    402                     'foobar' => array(
    403                         'foo' => 'bar',
    404                         'bar' => 'baz',
    405                         'key' => 'foo',
    406                     ),
    407                 ),
    408             ),
    409             'single orderby array ascending'  => array(
    410                 array(
    411                     'foobar' => array(
    412                         'foo' => 'bar',
    413                         'bar' => 'baz',
    414                         'key' => 'foo',
    415                     ),
    416                     'foofoo' => array(
    417                         'foo'   => 'foo',
    418                         'lorem' => 'ipsum',
    419                         'key'   => 'bar',
    420                     ),
    421                     'foobaz' => array(
    422                         'foo' => 'baz',
    423                         'key' => 'value',
    424                     ),
    425                 ),
    426                 array( 'foo' => 'ASC' ),
    427                 'IGNORED',
    428                 array(
    429                     'foobar' => array(
    430                         'foo' => 'bar',
    431                         'bar' => 'baz',
    432                         'key' => 'foo',
    433                     ),
    434                     'foobaz' => array(
    435                         'foo' => 'baz',
    436                         'key' => 'value',
    437                     ),
    438                     'foofoo' => array(
    439                         'foo'   => 'foo',
    440                         'lorem' => 'ipsum',
    441                         'key'   => 'bar',
    442                     ),
    443                 ),
    444             ),
    445             'single orderby array descending' => array(
    446                 array(
    447                     'foobar' => array(
    448                         'foo' => 'bar',
    449                         'bar' => 'baz',
    450                         'key' => 'foo',
    451                     ),
    452                     'foofoo' => array(
    453                         'foo'   => 'foo',
    454                         'lorem' => 'ipsum',
    455                         'key'   => 'bar',
    456                     ),
    457                     'foobaz' => array(
    458                         'foo' => 'baz',
    459                         'key' => 'value',
    460                     ),
    461                 ),
    462                 array( 'foo' => 'DESC' ),
    463                 'IGNORED',
    464                 array(
    465                     'foofoo' => array(
    466                         'foo'   => 'foo',
    467                         'lorem' => 'ipsum',
    468                         'key'   => 'bar',
    469                     ),
    470                     'foobaz' => array(
    471                         'foo' => 'baz',
    472                         'key' => 'value',
    473                     ),
    474                     'foobar' => array(
    475                         'foo' => 'bar',
    476                         'bar' => 'baz',
    477                         'key' => 'foo',
    478                     ),
    479                 ),
    480             ),
    481             'multiple orderby ascending'      => array(
    482                 array(
    483                     'foobarfoo'   => array(
    484                         'foo' => 'bar',
    485                         'bar' => 'baz',
    486                         'key' => 'foo',
    487                     ),
    488                     'foofoobar'   => array(
    489                         'foo'   => 'foo',
    490                         'lorem' => 'ipsum',
    491                         'key'   => 'bar',
    492                     ),
    493                     'foofookey'   => array(
    494                         'foo' => 'foo',
    495                         'key' => 'key',
    496                     ),
    497                     'foobazkey'   => array(
    498                         'foo' => 'baz',
    499                         'key' => 'key',
    500                     ),
    501                     'foobarvalue' => array(
    502                         'foo' => 'bar',
    503                         'key' => 'value',
    504                     ),
    505                 ),
    506                 array(
    507                     'key' => 'ASC',
    508                     'foo' => 'ASC',
    509                 ),
    510                 'IGNORED',
    511                 array(
    512                     'foofoobar'   => array(
    513                         'foo'   => 'foo',
    514                         'lorem' => 'ipsum',
    515                         'key'   => 'bar',
    516                     ),
    517                     'foobarfoo'   => array(
    518                         'foo' => 'bar',
    519                         'bar' => 'baz',
    520                         'key' => 'foo',
    521                     ),
    522                     'foobazkey'   => array(
    523                         'foo' => 'baz',
    524                         'key' => 'key',
    525                     ),
    526                     'foofookey'   => array(
    527                         'foo' => 'foo',
    528                         'key' => 'key',
    529                     ),
    530                     'foobarvalue' => array(
    531                         'foo' => 'bar',
    532                         'key' => 'value',
    533                     ),
    534                 ),
    535             ),
    536             'multiple orderby descending'     => array(
    537                 array(
    538                     'foobarfoo'   => array(
    539                         'foo' => 'bar',
    540                         'bar' => 'baz',
    541                         'key' => 'foo',
    542                     ),
    543                     'foofoobar'   => array(
    544                         'foo'   => 'foo',
    545                         'lorem' => 'ipsum',
    546                         'key'   => 'bar',
    547                     ),
    548                     'foofookey'   => array(
    549                         'foo' => 'foo',
    550                         'key' => 'key',
    551                     ),
    552                     'foobazkey'   => array(
    553                         'foo' => 'baz',
    554                         'key' => 'key',
    555                     ),
    556                     'foobarvalue' => array(
    557                         'foo' => 'bar',
    558                         'key' => 'value',
    559                     ),
    560                 ),
    561                 array(
    562                     'key' => 'DESC',
    563                     'foo' => 'DESC',
    564                 ),
    565                 'IGNORED',
    566                 array(
    567                     'foobarvalue' => array(
    568                         'foo' => 'bar',
    569                         'key' => 'value',
    570                     ),
    571                     'foofookey'   => array(
    572                         'foo' => 'foo',
    573                         'key' => 'key',
    574                     ),
    575                     'foobazkey'   => array(
    576                         'foo' => 'baz',
    577                         'key' => 'key',
    578                     ),
    579                     'foobarfoo'   => array(
    580                         'foo' => 'bar',
    581                         'bar' => 'baz',
    582                         'key' => 'foo',
    583                     ),
    584                     'foofoobar'   => array(
    585                         'foo'   => 'foo',
    586                         'lorem' => 'ipsum',
    587                         'key'   => 'bar',
    588                     ),
    589                 ),
    590             ),
    591             'multiple orderby mixed'          => array(
    592                 array(
    593                     'foobarfoo'   => array(
    594                         'foo' => 'bar',
    595                         'bar' => 'baz',
    596                         'key' => 'foo',
    597                     ),
    598                     'foofoobar'   => array(
    599                         'foo'   => 'foo',
    600                         'lorem' => 'ipsum',
    601                         'key'   => 'bar',
    602                     ),
    603                     'foofookey'   => array(
    604                         'foo' => 'foo',
    605                         'key' => 'key',
    606                     ),
    607                     'foobazkey'   => array(
    608                         'foo' => 'baz',
    609                         'key' => 'key',
    610                     ),
    611                     'foobarvalue' => array(
    612                         'foo' => 'bar',
    613                         'key' => 'value',
    614                     ),
    615                 ),
    616                 array(
    617                     'key' => 'DESC',
    618                     'foo' => 'ASC',
    619                 ),
    620                 'IGNORED',
    621                 array(
    622                     'foobarvalue' => array(
    623                         'foo' => 'bar',
    624                         'key' => 'value',
    625                     ),
    626                     'foobazkey'   => array(
    627                         'foo' => 'baz',
    628                         'key' => 'key',
    629                     ),
    630                     'foofookey'   => array(
    631                         'foo' => 'foo',
    632                         'key' => 'key',
    633                     ),
    634                     'foobarfoo'   => array(
    635                         'foo' => 'bar',
    636                         'bar' => 'baz',
    637                         'key' => 'foo',
    638                     ),
    639                     'foofoobar'   => array(
    640                         'foo'   => 'foo',
    641                         'lorem' => 'ipsum',
    642                         'key'   => 'bar',
    643                     ),
    644                 ),
    645             ),
    646         );
    647     }
    648 
    649     /**
    650      * @dataProvider data_test_wp_list_sort_preserve_keys
    651      *
    652      * @covers ::wp_list_sort
    653      *
    654      * @param string|array $orderby Either the field name to order by or an array
    655      *                              of multiple orderby fields as $orderby => $order.
    656      * @param string       $order   Either 'ASC' or 'DESC'.
    657      */
    658     public function test_wp_list_sort_preserve_keys( $list, $orderby, $order, $expected ) {
    659         $this->assertSame( $expected, wp_list_sort( $list, $orderby, $order, true ) );
    660     }
    6619
    66210    /**
Note: See TracChangeset for help on using the changeset viewer.