From 72de4966b8f6810c599047e2c1e313b7e1a29e64 Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Thu, 26 Aug 2021 16:29:37 +0000 Subject: [PATCH] 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. git-svn-id: https://develop.svn.wordpress.org/trunk@51667 602fd350-edb4-49c9-b593-d223f7449a82 --- tests/phpunit/tests/functions/wpListSort.php | 660 +++++++++++++++++++ tests/phpunit/tests/functions/wpListUtil.php | 656 +----------------- 2 files changed, 662 insertions(+), 654 deletions(-) create mode 100644 tests/phpunit/tests/functions/wpListSort.php diff --git a/tests/phpunit/tests/functions/wpListSort.php b/tests/phpunit/tests/functions/wpListSort.php new file mode 100644 index 0000000000..7159af4937 --- /dev/null +++ b/tests/phpunit/tests/functions/wpListSort.php @@ -0,0 +1,660 @@ + $order. + * @param string $order Either 'ASC' or 'DESC'. + */ + public function test_wp_list_sort( $list, $orderby, $order, $expected ) { + $this->assertSame( $expected, wp_list_sort( $list, $orderby, $order ) ); + } + + public function data_test_wp_list_sort() { + return array( + 'single orderby ascending' => array( + array( + array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + array( + 'foo' => 'baz', + 'key' => 'value', + ), + ), + 'foo', + 'ASC', + array( + array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + array( + 'foo' => 'baz', + 'key' => 'value', + ), + array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + ), + ), + 'single orderby descending' => array( + array( + array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + array( + 'foo' => 'baz', + 'key' => 'value', + ), + ), + 'foo', + 'DESC', + array( + array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + array( + 'foo' => 'baz', + 'key' => 'value', + ), + array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + ), + ), + 'single orderby array ascending' => array( + array( + array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + array( + 'foo' => 'baz', + 'key' => 'value', + ), + ), + array( 'foo' => 'ASC' ), + 'IGNORED', + array( + array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + array( + 'foo' => 'baz', + 'key' => 'value', + ), + array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + ), + ), + 'single orderby array descending' => array( + array( + array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + array( + 'foo' => 'baz', + 'key' => 'value', + ), + ), + array( 'foo' => 'DESC' ), + 'IGNORED', + array( + array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + array( + 'foo' => 'baz', + 'key' => 'value', + ), + array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + ), + ), + 'multiple orderby ascending' => array( + array( + array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + array( + 'foo' => 'foo', + 'key' => 'key', + ), + array( + 'foo' => 'baz', + 'key' => 'key', + ), + array( + 'foo' => 'bar', + 'key' => 'value', + ), + ), + array( + 'key' => 'ASC', + 'foo' => 'ASC', + ), + 'IGNORED', + array( + array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + array( + 'foo' => 'baz', + 'key' => 'key', + ), + array( + 'foo' => 'foo', + 'key' => 'key', + ), + array( + 'foo' => 'bar', + 'key' => 'value', + ), + ), + ), + 'multiple orderby descending' => array( + array( + array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + array( + 'foo' => 'foo', + 'key' => 'key', + ), + array( + 'foo' => 'baz', + 'key' => 'key', + ), + array( + 'foo' => 'bar', + 'key' => 'value', + ), + ), + array( + 'key' => 'DESC', + 'foo' => 'DESC', + ), + 'IGNORED', + array( + array( + 'foo' => 'bar', + 'key' => 'value', + ), + array( + 'foo' => 'foo', + 'key' => 'key', + ), + array( + 'foo' => 'baz', + 'key' => 'key', + ), + array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + ), + ), + 'multiple orderby mixed' => array( + array( + array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + array( + 'foo' => 'foo', + 'key' => 'key', + ), + array( + 'foo' => 'baz', + 'key' => 'key', + ), + array( + 'foo' => 'bar', + 'key' => 'value', + ), + ), + array( + 'key' => 'DESC', + 'foo' => 'ASC', + ), + 'IGNORED', + array( + array( + 'foo' => 'bar', + 'key' => 'value', + ), + array( + 'foo' => 'baz', + 'key' => 'key', + ), + array( + 'foo' => 'foo', + 'key' => 'key', + ), + array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + ), + ), + ); + } + + /** + * @dataProvider data_test_wp_list_sort_preserve_keys + * + * @param string|array $orderby Either the field name to order by or an array + * of multiple orderby fields as $orderby => $order. + * @param string $order Either 'ASC' or 'DESC'. + */ + public function test_wp_list_sort_preserve_keys( $list, $orderby, $order, $expected ) { + $this->assertSame( $expected, wp_list_sort( $list, $orderby, $order, true ) ); + } + + public function data_test_wp_list_sort_preserve_keys() { + return array( + 'single orderby ascending' => array( + array( + 'foobar' => array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + 'foofoo' => array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + 'foobaz' => array( + 'foo' => 'baz', + 'key' => 'value', + ), + ), + 'foo', + 'ASC', + array( + 'foobar' => array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + 'foobaz' => array( + 'foo' => 'baz', + 'key' => 'value', + ), + 'foofoo' => array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + ), + ), + 'single orderby descending' => array( + array( + 'foobar' => array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + 'foofoo' => array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + 'foobaz' => array( + 'foo' => 'baz', + 'key' => 'value', + ), + ), + 'foo', + 'DESC', + array( + 'foofoo' => array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + 'foobaz' => array( + 'foo' => 'baz', + 'key' => 'value', + ), + 'foobar' => array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + ), + ), + 'single orderby array ascending' => array( + array( + 'foobar' => array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + 'foofoo' => array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + 'foobaz' => array( + 'foo' => 'baz', + 'key' => 'value', + ), + ), + array( 'foo' => 'ASC' ), + 'IGNORED', + array( + 'foobar' => array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + 'foobaz' => array( + 'foo' => 'baz', + 'key' => 'value', + ), + 'foofoo' => array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + ), + ), + 'single orderby array descending' => array( + array( + 'foobar' => array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + 'foofoo' => array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + 'foobaz' => array( + 'foo' => 'baz', + 'key' => 'value', + ), + ), + array( 'foo' => 'DESC' ), + 'IGNORED', + array( + 'foofoo' => array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + 'foobaz' => array( + 'foo' => 'baz', + 'key' => 'value', + ), + 'foobar' => array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + ), + ), + 'multiple orderby ascending' => array( + array( + 'foobarfoo' => array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + 'foofoobar' => array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + 'foofookey' => array( + 'foo' => 'foo', + 'key' => 'key', + ), + 'foobazkey' => array( + 'foo' => 'baz', + 'key' => 'key', + ), + 'foobarvalue' => array( + 'foo' => 'bar', + 'key' => 'value', + ), + ), + array( + 'key' => 'ASC', + 'foo' => 'ASC', + ), + 'IGNORED', + array( + 'foofoobar' => array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + 'foobarfoo' => array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + 'foobazkey' => array( + 'foo' => 'baz', + 'key' => 'key', + ), + 'foofookey' => array( + 'foo' => 'foo', + 'key' => 'key', + ), + 'foobarvalue' => array( + 'foo' => 'bar', + 'key' => 'value', + ), + ), + ), + 'multiple orderby descending' => array( + array( + 'foobarfoo' => array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + 'foofoobar' => array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + 'foofookey' => array( + 'foo' => 'foo', + 'key' => 'key', + ), + 'foobazkey' => array( + 'foo' => 'baz', + 'key' => 'key', + ), + 'foobarvalue' => array( + 'foo' => 'bar', + 'key' => 'value', + ), + ), + array( + 'key' => 'DESC', + 'foo' => 'DESC', + ), + 'IGNORED', + array( + 'foobarvalue' => array( + 'foo' => 'bar', + 'key' => 'value', + ), + 'foofookey' => array( + 'foo' => 'foo', + 'key' => 'key', + ), + 'foobazkey' => array( + 'foo' => 'baz', + 'key' => 'key', + ), + 'foobarfoo' => array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + 'foofoobar' => array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + ), + ), + 'multiple orderby mixed' => array( + array( + 'foobarfoo' => array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + 'foofoobar' => array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + 'foofookey' => array( + 'foo' => 'foo', + 'key' => 'key', + ), + 'foobazkey' => array( + 'foo' => 'baz', + 'key' => 'key', + ), + 'foobarvalue' => array( + 'foo' => 'bar', + 'key' => 'value', + ), + ), + array( + 'key' => 'DESC', + 'foo' => 'ASC', + ), + 'IGNORED', + array( + 'foobarvalue' => array( + 'foo' => 'bar', + 'key' => 'value', + ), + 'foobazkey' => array( + 'foo' => 'baz', + 'key' => 'key', + ), + 'foofookey' => array( + 'foo' => 'foo', + 'key' => 'key', + ), + 'foobarfoo' => array( + 'foo' => 'bar', + 'bar' => 'baz', + 'key' => 'foo', + ), + 'foofoobar' => array( + 'foo' => 'foo', + 'lorem' => 'ipsum', + 'key' => 'bar', + ), + ), + ), + ); + } +} diff --git a/tests/phpunit/tests/functions/wpListUtil.php b/tests/phpunit/tests/functions/wpListUtil.php index 186643e72c..45cad6627a 100644 --- a/tests/phpunit/tests/functions/wpListUtil.php +++ b/tests/phpunit/tests/functions/wpListUtil.php @@ -1,664 +1,12 @@ array( - array( - array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - array( - 'foo' => 'baz', - 'key' => 'value', - ), - ), - 'foo', - 'ASC', - array( - array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - array( - 'foo' => 'baz', - 'key' => 'value', - ), - array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - ), - ), - 'single orderby descending' => array( - array( - array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - array( - 'foo' => 'baz', - 'key' => 'value', - ), - ), - 'foo', - 'DESC', - array( - array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - array( - 'foo' => 'baz', - 'key' => 'value', - ), - array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - ), - ), - 'single orderby array ascending' => array( - array( - array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - array( - 'foo' => 'baz', - 'key' => 'value', - ), - ), - array( 'foo' => 'ASC' ), - 'IGNORED', - array( - array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - array( - 'foo' => 'baz', - 'key' => 'value', - ), - array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - ), - ), - 'single orderby array descending' => array( - array( - array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - array( - 'foo' => 'baz', - 'key' => 'value', - ), - ), - array( 'foo' => 'DESC' ), - 'IGNORED', - array( - array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - array( - 'foo' => 'baz', - 'key' => 'value', - ), - array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - ), - ), - 'multiple orderby ascending' => array( - array( - array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - array( - 'foo' => 'foo', - 'key' => 'key', - ), - array( - 'foo' => 'baz', - 'key' => 'key', - ), - array( - 'foo' => 'bar', - 'key' => 'value', - ), - ), - array( - 'key' => 'ASC', - 'foo' => 'ASC', - ), - 'IGNORED', - array( - array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - array( - 'foo' => 'baz', - 'key' => 'key', - ), - array( - 'foo' => 'foo', - 'key' => 'key', - ), - array( - 'foo' => 'bar', - 'key' => 'value', - ), - ), - ), - 'multiple orderby descending' => array( - array( - array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - array( - 'foo' => 'foo', - 'key' => 'key', - ), - array( - 'foo' => 'baz', - 'key' => 'key', - ), - array( - 'foo' => 'bar', - 'key' => 'value', - ), - ), - array( - 'key' => 'DESC', - 'foo' => 'DESC', - ), - 'IGNORED', - array( - array( - 'foo' => 'bar', - 'key' => 'value', - ), - array( - 'foo' => 'foo', - 'key' => 'key', - ), - array( - 'foo' => 'baz', - 'key' => 'key', - ), - array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - ), - ), - 'multiple orderby mixed' => array( - array( - array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - array( - 'foo' => 'foo', - 'key' => 'key', - ), - array( - 'foo' => 'baz', - 'key' => 'key', - ), - array( - 'foo' => 'bar', - 'key' => 'value', - ), - ), - array( - 'key' => 'DESC', - 'foo' => 'ASC', - ), - 'IGNORED', - array( - array( - 'foo' => 'bar', - 'key' => 'value', - ), - array( - 'foo' => 'baz', - 'key' => 'key', - ), - array( - 'foo' => 'foo', - 'key' => 'key', - ), - array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - ), - ), - ); - } - - /** - * @dataProvider data_test_wp_list_sort - * - * @covers ::wp_list_sort - * - * @param string|array $orderby Either the field name to order by or an array - * of multiple orderby fields as $orderby => $order. - * @param string $order Either 'ASC' or 'DESC'. - */ - public function test_wp_list_sort( $list, $orderby, $order, $expected ) { - $this->assertSame( $expected, wp_list_sort( $list, $orderby, $order ) ); - } - - public function data_test_wp_list_sort_preserve_keys() { - return array( - 'single orderby ascending' => array( - array( - 'foobar' => array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - 'foofoo' => array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - 'foobaz' => array( - 'foo' => 'baz', - 'key' => 'value', - ), - ), - 'foo', - 'ASC', - array( - 'foobar' => array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - 'foobaz' => array( - 'foo' => 'baz', - 'key' => 'value', - ), - 'foofoo' => array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - ), - ), - 'single orderby descending' => array( - array( - 'foobar' => array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - 'foofoo' => array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - 'foobaz' => array( - 'foo' => 'baz', - 'key' => 'value', - ), - ), - 'foo', - 'DESC', - array( - 'foofoo' => array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - 'foobaz' => array( - 'foo' => 'baz', - 'key' => 'value', - ), - 'foobar' => array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - ), - ), - 'single orderby array ascending' => array( - array( - 'foobar' => array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - 'foofoo' => array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - 'foobaz' => array( - 'foo' => 'baz', - 'key' => 'value', - ), - ), - array( 'foo' => 'ASC' ), - 'IGNORED', - array( - 'foobar' => array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - 'foobaz' => array( - 'foo' => 'baz', - 'key' => 'value', - ), - 'foofoo' => array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - ), - ), - 'single orderby array descending' => array( - array( - 'foobar' => array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - 'foofoo' => array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - 'foobaz' => array( - 'foo' => 'baz', - 'key' => 'value', - ), - ), - array( 'foo' => 'DESC' ), - 'IGNORED', - array( - 'foofoo' => array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - 'foobaz' => array( - 'foo' => 'baz', - 'key' => 'value', - ), - 'foobar' => array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - ), - ), - 'multiple orderby ascending' => array( - array( - 'foobarfoo' => array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - 'foofoobar' => array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - 'foofookey' => array( - 'foo' => 'foo', - 'key' => 'key', - ), - 'foobazkey' => array( - 'foo' => 'baz', - 'key' => 'key', - ), - 'foobarvalue' => array( - 'foo' => 'bar', - 'key' => 'value', - ), - ), - array( - 'key' => 'ASC', - 'foo' => 'ASC', - ), - 'IGNORED', - array( - 'foofoobar' => array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - 'foobarfoo' => array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - 'foobazkey' => array( - 'foo' => 'baz', - 'key' => 'key', - ), - 'foofookey' => array( - 'foo' => 'foo', - 'key' => 'key', - ), - 'foobarvalue' => array( - 'foo' => 'bar', - 'key' => 'value', - ), - ), - ), - 'multiple orderby descending' => array( - array( - 'foobarfoo' => array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - 'foofoobar' => array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - 'foofookey' => array( - 'foo' => 'foo', - 'key' => 'key', - ), - 'foobazkey' => array( - 'foo' => 'baz', - 'key' => 'key', - ), - 'foobarvalue' => array( - 'foo' => 'bar', - 'key' => 'value', - ), - ), - array( - 'key' => 'DESC', - 'foo' => 'DESC', - ), - 'IGNORED', - array( - 'foobarvalue' => array( - 'foo' => 'bar', - 'key' => 'value', - ), - 'foofookey' => array( - 'foo' => 'foo', - 'key' => 'key', - ), - 'foobazkey' => array( - 'foo' => 'baz', - 'key' => 'key', - ), - 'foobarfoo' => array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - 'foofoobar' => array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - ), - ), - 'multiple orderby mixed' => array( - array( - 'foobarfoo' => array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - 'foofoobar' => array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - 'foofookey' => array( - 'foo' => 'foo', - 'key' => 'key', - ), - 'foobazkey' => array( - 'foo' => 'baz', - 'key' => 'key', - ), - 'foobarvalue' => array( - 'foo' => 'bar', - 'key' => 'value', - ), - ), - array( - 'key' => 'DESC', - 'foo' => 'ASC', - ), - 'IGNORED', - array( - 'foobarvalue' => array( - 'foo' => 'bar', - 'key' => 'value', - ), - 'foobazkey' => array( - 'foo' => 'baz', - 'key' => 'key', - ), - 'foofookey' => array( - 'foo' => 'foo', - 'key' => 'key', - ), - 'foobarfoo' => array( - 'foo' => 'bar', - 'bar' => 'baz', - 'key' => 'foo', - ), - 'foofoobar' => array( - 'foo' => 'foo', - 'lorem' => 'ipsum', - 'key' => 'bar', - ), - ), - ), - ); - } - - /** - * @dataProvider data_test_wp_list_sort_preserve_keys - * - * @covers ::wp_list_sort - * - * @param string|array $orderby Either the field name to order by or an array - * of multiple orderby fields as $orderby => $order. - * @param string $order Either 'ASC' or 'DESC'. - */ - public function test_wp_list_sort_preserve_keys( $list, $orderby, $order, $expected ) { - $this->assertSame( $expected, wp_list_sort( $list, $orderby, $order, true ) ); - } - /** * @covers WP_List_Util::get_input */