Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
05/05/2013 06:11:56 PM (13 years ago)
Author:
boonebgorges
Message:

Convert total_friend_count to SIGNED before attempting to sort with it

This fixes issues in BP_User_Query where the 'popular' sort order was sorting
by friend count interpreted as a string (ie, alphabetically) instead of
numerically.

Fixes #4937

Props merty

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/testcases/core/classes.php

    r6941 r6996  
    7979        $this->assertEquals( $friend_ids, array() );
    8080    }
     81
     82    public function test_bp_user_query_sort_by_popular() {
     83        $u1 = $this->create_user();
     84        $u2 = $this->create_user();
     85        $u3 = $this->create_user();
     86        $u4 = $this->create_user();
     87
     88        bp_update_user_meta( $u1, bp_get_user_meta_key( 'total_friend_count' ), '5' );
     89        bp_update_user_meta( $u2, bp_get_user_meta_key( 'total_friend_count' ), '90' );
     90        bp_update_user_meta( $u3, bp_get_user_meta_key( 'total_friend_count' ), '101' );
     91        bp_update_user_meta( $u4, bp_get_user_meta_key( 'total_friend_count' ), '3002' );
     92
     93        $q = new BP_User_Query( array(
     94            'type' => 'popular',
     95        ) );
     96
     97        $users = is_array( $q->results ) ? array_values( $q->results ) : array();
     98        $user_ids = wp_parse_id_list( wp_list_pluck( $users, 'ID' ) );
     99
     100        $expected = array( $u4, $u3, $u2, $u1 );
     101        $this->assertEquals( $expected, $user_ids );
     102    }
    81103}
Note: See TracChangeset for help on using the changeset viewer.