mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-08-11 20:30:23 +00:00
Administration: Update WP_List_Table::get_sortable_columns() to support asc and desc arguments.
This makes the API a little more clear, whereas setting `false` used to mean `asc` and `true` meant `desc`, you can now use those directly, while maintaining back-compat. Fixes #45089. Props Tkama, SergeyBiryukov, shital-patel, desrosj, birgire, davidbaumwald. git-svn-id: https://develop.svn.wordpress.org/trunk@48151 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -293,4 +293,77 @@ class Tests_Admin_includesListTable extends WP_UnitTestCase {
|
||||
|
||||
$this->assertNotContains( 'id="delete_all"', $output );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 45089
|
||||
*/
|
||||
public function test_sortable_columns() {
|
||||
require_once ABSPATH . 'wp-admin/includes/class-wp-comments-list-table.php';
|
||||
|
||||
$override_sortable_columns = array(
|
||||
'author' => array( 'comment_author', true ),
|
||||
'response' => 'comment_post_ID',
|
||||
'date' => array( 'comment_date', 'dEsC' ), // The ordering support should be case insensitive.
|
||||
);
|
||||
|
||||
// Stub the get_sortable_columns() method.
|
||||
$object = $this->getMockBuilder( 'WP_Comments_List_Table' )
|
||||
->setConstructorArgs( array( array( 'screen' => 'edit-comments' ) ) )
|
||||
->setMethods( array( 'get_sortable_columns' ) )
|
||||
->getMock();
|
||||
|
||||
// Change the null return value of the stubbed get_sortable_columns() method.
|
||||
$object->method( 'get_sortable_columns' )
|
||||
->willReturn( $override_sortable_columns );
|
||||
|
||||
$output = get_echo( array( $object, 'print_column_headers' ) );
|
||||
|
||||
$this->assertContains( '?orderby=comment_author&order=desc', $output, 'Mismatch of the default link ordering for comment author column. Should be desc.' );
|
||||
$this->assertContains( 'column-author sortable asc', $output, 'Mismatch of CSS classes for the comment author column.' );
|
||||
|
||||
$this->assertContains( '?orderby=comment_post_ID&order=asc', $output, 'Mismatch of the default link ordering for comment response column. Should be asc.' );
|
||||
$this->assertContains( 'column-response sortable desc', $output, 'Mismatch of CSS classes for the comment post ID column.' );
|
||||
|
||||
$this->assertContains( '?orderby=comment_date&order=asc', $output, 'Mismatch of the default link ordering for comment author column. Should be asc.' );
|
||||
$this->assertContains( 'column-date sortable desc', $output, 'Mismatch of CSS classes for the comment date column.' );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 45089
|
||||
*/
|
||||
public function test_sortable_columns_with_current_ordering() {
|
||||
require_once ABSPATH . 'wp-admin/includes/class-wp-comments-list-table.php';
|
||||
|
||||
$override_sortable_columns = array(
|
||||
'author' => array( 'comment_author', false ),
|
||||
'response' => 'comment_post_ID',
|
||||
'date' => array( 'comment_date', 'asc' ), // We will override this with current ordering.
|
||||
);
|
||||
|
||||
// Current ordering.
|
||||
$_GET['orderby'] = 'comment_date';
|
||||
$_GET['order'] = 'desc';
|
||||
|
||||
// Stub the get_sortable_columns() method.
|
||||
$object = $this->getMockBuilder( 'WP_Comments_List_Table' )
|
||||
->setConstructorArgs( array( array( 'screen' => 'edit-comments' ) ) )
|
||||
->setMethods( array( 'get_sortable_columns' ) )
|
||||
->getMock();
|
||||
|
||||
// Change the null return value of the stubbed get_sortable_columns() method.
|
||||
$object->method( 'get_sortable_columns' )
|
||||
->willReturn( $override_sortable_columns );
|
||||
|
||||
$output = get_echo( array( $object, 'print_column_headers' ) );
|
||||
|
||||
$this->assertContains( '?orderby=comment_author&order=asc', $output, 'Mismatch of the default link ordering for comment author column. Should be asc.' );
|
||||
$this->assertContains( 'column-author sortable desc', $output, 'Mismatch of CSS classes for the comment author column.' );
|
||||
|
||||
$this->assertContains( '?orderby=comment_post_ID&order=asc', $output, 'Mismatch of the default link ordering for comment response column. Should be asc.' );
|
||||
$this->assertContains( 'column-response sortable desc', $output, 'Mismatch of CSS classes for the comment post ID column.' );
|
||||
|
||||
$this->assertContains( '?orderby=comment_date&order=asc', $output, 'Mismatch of the current link ordering for comment date column. Should be asc.' );
|
||||
$this->assertContains( 'column-date sorted desc', $output, 'Mismatch of CSS classes for the comment date column.' );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user