Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
04/21/2013 05:22:31 PM (13 years ago)
Author:
boonebgorges
Message:

In BP_User_Query, allow 'include' params to be combined with the 'user_id' filter

This enhancement allows plugins to filter friend lists by passing an 'include'
parameter to BP_User_Query.

Fixes #4938

Props dontdream

File:
1 edited

Legend:

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

    r6933 r6934  
    3636                $this->assertEquals( $friend_ids, array( $u1 ) );
    3737        }
     38
     39        /**
     40         * @ticket 4938
     41         */
     42        public function test_bp_user_query_friends_with_include() {
     43                $u1 = $this->create_user();
     44                $u2 = $this->create_user();
     45                $u3 = $this->create_user();
     46                $u4 = $this->create_user();
     47                friends_add_friend( $u1, $u2, true );
     48                friends_add_friend( $u1, $u3, true );
     49
     50                $q = new BP_User_Query( array(
     51                        'user_id' => $u1,
     52
     53                        // Represents an independent filter passed by a plugin
     54                        // u4 is not a friend of u1 and should not be returned
     55                        'include' => array( $u2, $u4 ),
     56                ) );
     57
     58                $friends = is_array( $q->results ) ? array_values( $q->results ) : array();
     59                $friend_ids = wp_list_pluck( $friends, 'ID' );
     60                $this->assertEquals( $friend_ids, array( $u2 ) );
     61        }
     62
     63        public function test_bp_user_query_friends_with_include_but_zero_friends() {
     64                $u1 = $this->create_user();
     65                $u2 = $this->create_user();
     66                $u3 = $this->create_user();
     67                $u4 = $this->create_user();
     68
     69                $q = new BP_User_Query( array(
     70                        'user_id' => $u1,
     71
     72                        // Represents an independent filter passed by a plugin
     73                        // u4 is not a friend of u1 and should not be returned
     74                        'include' => array( $u2, $u4 ),
     75                ) );
     76
     77                $friends = is_array( $q->results ) ? array_values( $q->results ) : array();
     78                $friend_ids = wp_list_pluck( $friends, 'ID' );
     79                $this->assertEquals( $friend_ids, array() );
     80        }
     81
    3882}
Note: See TracChangeset for help on using the changeset viewer.