Make WordPress Core

Changeset 51667


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.

Location:
trunk/tests/phpunit/tests/functions
Files:
1 edited
1 copied

Legend:

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

    r51666 r51667  
    22
    33/**
     4 * Test wp_list_sort().
     5 *
    46 * @group functions.php
     7 * @covers ::wp_list_sort
    58 */
    6 class 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         }
     9class Tests_Functions_wpListSort extends WP_UnitTestCase {
    32110
    32211        /**
    32312         * @dataProvider data_test_wp_list_sort
    324          *
    325          * @covers ::wp_list_sort
    32613         *
    32714         * @param string|array $orderby Either the field name to order by or an array
    … …  
    33320        }
    33421
    335         public function data_test_wp_list_sort_preserve_keys() {
     22        public function data_test_wp_list_sort() {
    33623                return array(
    33724                        'single orderby ascending'        => array(
    33825                                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(
     26                                        array(
     27                                                'foo' => 'bar',
     28                                                'bar' => 'baz',
     29                                                'key' => 'foo',
     30                                        ),
     31                                        array(
     32                                                'foo'   => 'foo',
     33                                                'lorem' => 'ipsum',
     34                                                'key'   => 'bar',
     35                                        ),
     36                                        array(
    35037                                                'foo' => 'baz',
    35138                                                'key' => 'value',
    … …  
    35542                                'ASC',
    35643                                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(
     44                                        array(
     45                                                'foo' => 'bar',
     46                                                'bar' => 'baz',
     47                                                'key' => 'foo',
     48                                        ),
     49                                        array(
     50                                                'foo' => 'baz',
     51                                                'key' => 'value',
     52                                        ),
     53                                        array(
    36754                                                'foo'   => 'foo',
    36855                                                'lorem' => 'ipsum',
    … …  
    37360                        'single orderby descending'       => array(
    37461                                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(
     62                                        array(
     63                                                'foo' => 'bar',
     64                                                'bar' => 'baz',
     65                                                'key' => 'foo',
     66                                        ),
     67                                        array(
     68                                                'foo'   => 'foo',
     69                                                'lorem' => 'ipsum',
     70                                                'key'   => 'bar',
     71                                        ),
     72                                        array(
    38673                                                'foo' => 'baz',
    38774                                                'key' => 'value',
    … …  
    39178                                'DESC',
    39279                                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(
     80                                        array(
     81                                                'foo'   => 'foo',
     82                                                'lorem' => 'ipsum',
     83                                                'key'   => 'bar',
     84                                        ),
     85                                        array(
     86                                                'foo' => 'baz',
     87                                                'key' => 'value',
     88                                        ),
     89                                        array(
    40390                                                'foo' => 'bar',
    40491                                                'bar' => 'baz',
    … …  
    40996                        'single orderby array ascending'  => array(
    41097                                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(
     98                                        array(
     99                                                'foo' => 'bar',
     100                                                'bar' => 'baz',
     101                                                'key' => 'foo',
     102                                        ),
     103                                        array(
     104                                                'foo'   => 'foo',
     105                                                'lorem' => 'ipsum',
     106                                                'key'   => 'bar',
     107                                        ),
     108                                        array(
    422109                                                'foo' => 'baz',
    423110                                                'key' => 'value',
    … …  
    427114                                'IGNORED',
    428115                                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(
     116                                        array(
     117                                                'foo' => 'bar',
     118                                                'bar' => 'baz',
     119                                                'key' => 'foo',
     120                                        ),
     121                                        array(
     122                                                'foo' => 'baz',
     123                                                'key' => 'value',
     124                                        ),
     125                                        array(
    439126                                                'foo'   => 'foo',
    440127                                                'lorem' => 'ipsum',
    … …  
    445132                        'single orderby array descending' => array(
    446133                                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(
     134                                        array(
     135                                                'foo' => 'bar',
     136                                                'bar' => 'baz',
     137                                                'key' => 'foo',
     138                                        ),
     139                                        array(
     140                                                'foo'   => 'foo',
     141                                                'lorem' => 'ipsum',
     142                                                'key'   => 'bar',
     143                                        ),
     144                                        array(
    458145                                                'foo' => 'baz',
    459146                                                'key' => 'value',
    … …  
    463150                                'IGNORED',
    464151                                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(
     152                                        array(
     153                                                'foo'   => 'foo',
     154                                                'lorem' => 'ipsum',
     155                                                'key'   => 'bar',
     156                                        ),
     157                                        array(
     158                                                'foo' => 'baz',
     159                                                'key' => 'value',
     160                                        ),
     161                                        array(
    475162                                                'foo' => 'bar',
    476163                                                'bar' => 'baz',
    … …  
    481168                        'multiple orderby ascending'      => array(
    482169                                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(
     170                                        array(
     171                                                'foo' => 'bar',
     172                                                'bar' => 'baz',
     173                                                'key' => 'foo',
     174                                        ),
     175                                        array(
     176                                                'foo'   => 'foo',
     177                                                'lorem' => 'ipsum',
     178                                                'key'   => 'bar',
     179                                        ),
     180                                        array(
     181                                                'foo' => 'foo',
     182                                                'key' => 'key',
     183                                        ),
     184                                        array(
     185                                                'foo' => 'baz',
     186                                                'key' => 'key',
     187                                        ),
     188                                        array(
    502189                                                'foo' => 'bar',
    503190                                                'key' => 'value',
    … …  
    510197                                'IGNORED',
    511198                                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(
     199                                        array(
     200                                                'foo'   => 'foo',
     201                                                'lorem' => 'ipsum',
     202                                                'key'   => 'bar',
     203                                        ),
     204                                        array(
     205                                                'foo' => 'bar',
     206                                                'bar' => 'baz',
     207                                                'key' => 'foo',
     208                                        ),
     209                                        array(
     210                                                'foo' => 'baz',
     211                                                'key' => 'key',
     212                                        ),
     213                                        array(
     214                                                'foo' => 'foo',
     215                                                'key' => 'key',
     216                                        ),
     217                                        array(
    531218                                                'foo' => 'bar',
    532219                                                'key' => 'value',
    … …  
    536223                        'multiple orderby descending'     => array(
    537224                                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(
     225                                        array(
     226                                                'foo' => 'bar',
     227                                                'bar' => 'baz',
     228                                                'key' => 'foo',
     229                                        ),
     230                                        array(
     231                                                'foo'   => 'foo',
     232                                                'lorem' => 'ipsum',
     233                                                'key'   => 'bar',
     234                                        ),
     235                                        array(
     236                                                'foo' => 'foo',
     237                                                'key' => 'key',
     238                                        ),
     239                                        array(
     240                                                'foo' => 'baz',
     241                                                'key' => 'key',
     242                                        ),
     243                                        array(
    557244                                                'foo' => 'bar',
    558245                                                'key' => 'value',
    … …  
    565252                                'IGNORED',
    566253                                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(
     254                                        array(
     255                                                'foo' => 'bar',
     256                                                'key' => 'value',
     257                                        ),
     258                                        array(
     259                                                'foo' => 'foo',
     260                                                'key' => 'key',
     261                                        ),
     262                                        array(
     263                                                'foo' => 'baz',
     264                                                'key' => 'key',
     265                                        ),
     266                                        array(
     267                                                'foo' => 'bar',
     268                                                'bar' => 'baz',
     269                                                'key' => 'foo',
     270                                        ),
     271                                        array(
    585272                                                'foo'   => 'foo',
    586273                                                'lorem' => 'ipsum',
    … …  
    591278                        'multiple orderby mixed'          => array(
    592279                                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(
     280                                        array(
     281                                                'foo' => 'bar',
     282                                                'bar' => 'baz',
     283                                                'key' => 'foo',
     284                                        ),
     285                                        array(
     286                                                'foo'   => 'foo',
     287                                                'lorem' => 'ipsum',
     288                                                'key'   => 'bar',
     289                                        ),
     290                                        array(
     291                                                'foo' => 'foo',
     292                                                'key' => 'key',
     293                                        ),
     294                                        array(
     295                                                'foo' => 'baz',
     296                                                'key' => 'key',
     297                                        ),
     298                                        array(
    612299                                                'foo' => 'bar',
    613300                                                'key' => 'value',
    … …  
    620307                                'IGNORED',
    621308                                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(
     309                                        array(
     310                                                'foo' => 'bar',
     311                                                'key' => 'value',
     312                                        ),
     313                                        array(
     314                                                'foo' => 'baz',
     315                                                'key' => 'key',
     316                                        ),
     317                                        array(
     318                                                'foo' => 'foo',
     319                                                'key' => 'key',
     320                                        ),
     321                                        array(
     322                                                'foo' => 'bar',
     323                                                'bar' => 'baz',
     324                                                'key' => 'foo',
     325                                        ),
     326                                        array(
    640327                                                'foo'   => 'foo',
    641328                                                'lorem' => 'ipsum',
    … …  
    649336        /**
    650337         * @dataProvider data_test_wp_list_sort_preserve_keys
    651          *
    652          * @covers ::wp_list_sort
    653338         *
    654339         * @param string|array $orderby Either the field name to order by or an array
    … …  
    660345        }
    661346
    662         /**
    663          * @covers WP_List_Util::get_input
    664          */
    665         public function test_wp_list_util_get_input() {
    666                 $input = array( 'foo', 'bar' );
    667                 $util  = new WP_List_Util( $input );
    668 
    669                 $this->assertSameSets( $input, $util->get_input() );
    670         }
    671 
    672         /**
    673          * @covers WP_List_Util::get_output
    674          */
    675         public function test_wp_list_util_get_output_immediately() {
    676                 $input = array( 'foo', 'bar' );
    677                 $util  = new WP_List_Util( $input );
    678 
    679                 $this->assertSameSets( $input, $util->get_output() );
    680         }
    681 
    682         /**
    683          * @covers WP_List_Util::get_output
    684          */
    685         public function test_wp_list_util_get_output() {
    686                 $expected = array(
    687                         (object) array(
    688                                 'foo' => 'bar',
    689                                 'bar' => 'baz',
     347        public function data_test_wp_list_sort_preserve_keys() {
     348                return array(
     349                        'single orderby ascending'        => array(
     350                                array(
     351                                        'foobar' => array(
     352                                                'foo' => 'bar',
     353                                                'bar' => 'baz',
     354                                                'key' => 'foo',
     355                                        ),
     356                                        'foofoo' => array(
     357                                                'foo'   => 'foo',
     358                                                'lorem' => 'ipsum',
     359                                                'key'   => 'bar',
     360                                        ),
     361                                        'foobaz' => array(
     362                                                'foo' => 'baz',
     363                                                'key' => 'value',
     364                                        ),
     365                                ),
     366                                'foo',
     367                                'ASC',
     368                                array(
     369                                        'foobar' => array(
     370                                                'foo' => 'bar',
     371                                                'bar' => 'baz',
     372                                                'key' => 'foo',
     373                                        ),
     374                                        'foobaz' => array(
     375                                                'foo' => 'baz',
     376                                                'key' => 'value',
     377                                        ),
     378                                        'foofoo' => array(
     379                                                'foo'   => 'foo',
     380                                                'lorem' => 'ipsum',
     381                                                'key'   => 'bar',
     382                                        ),
     383                                ),
     384                        ),
     385                        'single orderby descending'       => array(
     386                                array(
     387                                        'foobar' => array(
     388                                                'foo' => 'bar',
     389                                                'bar' => 'baz',
     390                                                'key' => 'foo',
     391                                        ),
     392                                        'foofoo' => array(
     393                                                'foo'   => 'foo',
     394                                                'lorem' => 'ipsum',
     395                                                'key'   => 'bar',
     396                                        ),
     397                                        'foobaz' => array(
     398                                                'foo' => 'baz',
     399                                                'key' => 'value',
     400                                        ),
     401                                ),
     402                                'foo',
     403                                'DESC',
     404                                array(
     405                                        'foofoo' => array(
     406                                                'foo'   => 'foo',
     407                                                'lorem' => 'ipsum',
     408                                                'key'   => 'bar',
     409                                        ),
     410                                        'foobaz' => array(
     411                                                'foo' => 'baz',
     412                                                'key' => 'value',
     413                                        ),
     414                                        'foobar' => array(
     415                                                'foo' => 'bar',
     416                                                'bar' => 'baz',
     417                                                'key' => 'foo',
     418                                        ),
     419                                ),
     420                        ),
     421                        'single orderby array ascending'  => array(
     422                                array(
     423                                        'foobar' => array(
     424                                                'foo' => 'bar',
     425                                                'bar' => 'baz',
     426                                                'key' => 'foo',
     427                                        ),
     428                                        'foofoo' => array(
     429                                                'foo'   => 'foo',
     430                                                'lorem' => 'ipsum',
     431                                                'key'   => 'bar',
     432                                        ),
     433                                        'foobaz' => array(
     434                                                'foo' => 'baz',
     435                                                'key' => 'value',
     436                                        ),
     437                                ),
     438                                array( 'foo' => 'ASC' ),
     439                                'IGNORED',
     440                                array(
     441                                        'foobar' => array(
     442                                                'foo' => 'bar',
     443                                                'bar' => 'baz',
     444                                                'key' => 'foo',
     445                                        ),
     446                                        'foobaz' => array(
     447                                                'foo' => 'baz',
     448                                                'key' => 'value',
     449                                        ),
     450                                        'foofoo' => array(
     451                                                'foo'   => 'foo',
     452                                                'lorem' => 'ipsum',
     453                                                'key'   => 'bar',
     454                                        ),
     455                                ),
     456                        ),
     457                        'single orderby array descending' => array(
     458                                array(
     459                                        'foobar' => array(
     460                                                'foo' => 'bar',
     461                                                'bar' => 'baz',
     462                                                'key' => 'foo',
     463                                        ),
     464                                        'foofoo' => array(
     465                                                'foo'   => 'foo',
     466                                                'lorem' => 'ipsum',
     467                                                'key'   => 'bar',
     468                                        ),
     469                                        'foobaz' => array(
     470                                                'foo' => 'baz',
     471                                                'key' => 'value',
     472                                        ),
     473                                ),
     474                                array( 'foo' => 'DESC' ),
     475                                'IGNORED',
     476                                array(
     477                                        'foofoo' => array(
     478                                                'foo'   => 'foo',
     479                                                'lorem' => 'ipsum',
     480                                                'key'   => 'bar',
     481                                        ),
     482                                        'foobaz' => array(
     483                                                'foo' => 'baz',
     484                                                'key' => 'value',
     485                                        ),
     486                                        'foobar' => array(
     487                                                'foo' => 'bar',
     488                                                'bar' => 'baz',
     489                                                'key' => 'foo',
     490                                        ),
     491                                ),
     492                        ),
     493                        'multiple orderby ascending'      => array(
     494                                array(
     495                                        'foobarfoo'   => array(
     496                                                'foo' => 'bar',
     497                                                'bar' => 'baz',
     498                                                'key' => 'foo',
     499                                        ),
     500                                        'foofoobar'   => array(
     501                                                'foo'   => 'foo',
     502                                                'lorem' => 'ipsum',
     503                                                'key'   => 'bar',
     504                                        ),
     505                                        'foofookey'   => array(
     506                                                'foo' => 'foo',
     507                                                'key' => 'key',
     508                                        ),
     509                                        'foobazkey'   => array(
     510                                                'foo' => 'baz',
     511                                                'key' => 'key',
     512                                        ),
     513                                        'foobarvalue' => array(
     514                                                'foo' => 'bar',
     515                                                'key' => 'value',
     516                                        ),
     517                                ),
     518                                array(
     519                                        'key' => 'ASC',
     520                                        'foo' => 'ASC',
     521                                ),
     522                                'IGNORED',
     523                                array(
     524                                        'foofoobar'   => array(
     525                                                'foo'   => 'foo',
     526                                                'lorem' => 'ipsum',
     527                                                'key'   => 'bar',
     528                                        ),
     529                                        'foobarfoo'   => array(
     530                                                'foo' => 'bar',
     531                                                'bar' => 'baz',
     532                                                'key' => 'foo',
     533                                        ),
     534                                        'foobazkey'   => array(
     535                                                'foo' => 'baz',
     536                                                'key' => 'key',
     537                                        ),
     538                                        'foofookey'   => array(
     539                                                'foo' => 'foo',
     540                                                'key' => 'key',
     541                                        ),
     542                                        'foobarvalue' => array(
     543                                                'foo' => 'bar',
     544                                                'key' => 'value',
     545                                        ),
     546                                ),
     547                        ),
     548                        'multiple orderby descending'     => array(
     549                                array(
     550                                        'foobarfoo'   => array(
     551                                                'foo' => 'bar',
     552                                                'bar' => 'baz',
     553                                                'key' => 'foo',
     554                                        ),
     555                                        'foofoobar'   => array(
     556                                                'foo'   => 'foo',
     557                                                'lorem' => 'ipsum',
     558                                                'key'   => 'bar',
     559                                        ),
     560                                        'foofookey'   => array(
     561                                                'foo' => 'foo',
     562                                                'key' => 'key',
     563                                        ),
     564                                        'foobazkey'   => array(
     565                                                'foo' => 'baz',
     566                                                'key' => 'key',
     567                                        ),
     568                                        'foobarvalue' => array(
     569                                                'foo' => 'bar',
     570                                                'key' => 'value',
     571                                        ),
     572                                ),
     573                                array(
     574                                        'key' => 'DESC',
     575                                        'foo' => 'DESC',
     576                                ),
     577                                'IGNORED',
     578                                array(
     579                                        'foobarvalue' => array(
     580                                                'foo' => 'bar',
     581                                                'key' => 'value',
     582                                        ),
     583                                        'foofookey'   => array(
     584                                                'foo' => 'foo',
     585                                                'key' => 'key',
     586                                        ),
     587                                        'foobazkey'   => array(
     588                                                'foo' => 'baz',
     589                                                'key' => 'key',
     590                                        ),
     591                                        'foobarfoo'   => array(
     592                                                'foo' => 'bar',
     593                                                'bar' => 'baz',
     594                                                'key' => 'foo',
     595                                        ),
     596                                        'foofoobar'   => array(
     597                                                'foo'   => 'foo',
     598                                                'lorem' => 'ipsum',
     599                                                'key'   => 'bar',
     600                                        ),
     601                                ),
     602                        ),
     603                        'multiple orderby mixed'          => array(
     604                                array(
     605                                        'foobarfoo'   => array(
     606                                                'foo' => 'bar',
     607                                                'bar' => 'baz',
     608                                                'key' => 'foo',
     609                                        ),
     610                                        'foofoobar'   => array(
     611                                                'foo'   => 'foo',
     612                                                'lorem' => 'ipsum',
     613                                                'key'   => 'bar',
     614                                        ),
     615                                        'foofookey'   => array(
     616                                                'foo' => 'foo',
     617                                                'key' => 'key',
     618                                        ),
     619                                        'foobazkey'   => array(
     620                                                'foo' => 'baz',
     621                                                'key' => 'key',
     622                                        ),
     623                                        'foobarvalue' => array(
     624                                                'foo' => 'bar',
     625                                                'key' => 'value',
     626                                        ),
     627                                ),
     628                                array(
     629                                        'key' => 'DESC',
     630                                        'foo' => 'ASC',
     631                                ),
     632                                'IGNORED',
     633                                array(
     634                                        'foobarvalue' => array(
     635                                                'foo' => 'bar',
     636                                                'key' => 'value',
     637                                        ),
     638                                        'foobazkey'   => array(
     639                                                'foo' => 'baz',
     640                                                'key' => 'key',
     641                                        ),
     642                                        'foofookey'   => array(
     643                                                'foo' => 'foo',
     644                                                'key' => 'key',
     645                                        ),
     646                                        'foobarfoo'   => array(
     647                                                'foo' => 'bar',
     648                                                'bar' => 'baz',
     649                                                'key' => 'foo',
     650                                        ),
     651                                        'foofoobar'   => array(
     652                                                'foo'   => 'foo',
     653                                                'lorem' => 'ipsum',
     654                                                'key'   => 'bar',
     655                                        ),
     656                                ),
    690657                        ),
    691658                );
    692 
    693                 $util   = new WP_List_Util(
    694                         array(
    695                                 (object) array(
    696                                         'foo' => 'bar',
    697                                         'bar' => 'baz',
    698                                 ),
    699                                 (object) array( 'bar' => 'baz' ),
    700                         )
    701                 );
    702                 $actual = $util->filter( array( 'foo' => 'bar' ) );
    703 
    704                 $this->assertEqualSets( $expected, $actual );
    705                 $this->assertEqualSets( $expected, $util->get_output() );
    706659        }
    707660}
  • 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.