Make WordPress Core


Ignore:
Timestamp:
08/26/2021 04:29:37 PM (5 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.