Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
06/03/2013 02:32:50 AM (12 years ago)
Author:
boonebgorges
Message:

Introduces bp_user_query_online_interval filter

This will allow site admins or plugins to adjust the number of minutes used as
an interval when querying for 'online' users using BP_User_Query.

Fixes #4347

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/testcases/core/class-bp-user-query.php

    r7090 r7135  
    103103    }
    104104
     105    /**
     106     * @group online
     107     */
     108    public function test_bp_user_query_type_online() {
     109        $now = time();
     110        $u1 = $this->create_user( array(
     111            'last_activity' => date( 'Y-m-d H:i:s', $now ),
     112        ) );
     113        $u2 = $this->create_user( array(
     114            'last_activity' => date( 'Y-m-d H:i:s', $now - 60*13 ),
     115        ) );
     116        $u3 = $this->create_user( array(
     117            'last_activity' => date( 'Y-m-d H:i:s', $now - 60*16 ),
     118        ) );
     119
     120        $q = new BP_User_Query( array(
     121            'type' => 'online',
     122        ) );
     123
     124        $users = is_array( $q->results ) ? array_values( $q->results ) : array();
     125        $user_ids = wp_parse_id_list( wp_list_pluck( $users, 'ID' ) );
     126        $this->assertEquals( array( $u1, $u2 ), $user_ids );
     127    }
     128
     129    /**
     130     * @group online
     131     */
     132    public function test_bp_user_query_type_online_five_minute_interval() {
     133        $now = time();
     134        $u1 = $this->create_user( array(
     135            'last_activity' => date( 'Y-m-d H:i:s', $now ),
     136        ) );
     137        $u2 = $this->create_user( array(
     138            'last_activity' => date( 'Y-m-d H:i:s', $now - 60*4 ),
     139        ) );
     140        $u3 = $this->create_user( array(
     141            'last_activity' => date( 'Y-m-d H:i:s', $now - 60*6 ),
     142        ) );
     143
     144        add_filter( 'bp_user_query_online_interval', create_function( '', 'return 5;' ) );
     145
     146        $q = new BP_User_Query( array(
     147            'type' => 'online',
     148        ) );
     149
     150        $users = is_array( $q->results ) ? array_values( $q->results ) : array();
     151        $user_ids = wp_parse_id_list( wp_list_pluck( $users, 'ID' ) );
     152        $this->assertEquals( array( $u1, $u2 ), $user_ids );
     153    }
     154
     155
    105156    public function test_bp_user_query_search_with_apostrophe() {
    106157        // Apostrophe. Search_terms must escaped to mimic POST payload
Note: See TracChangeset for help on using the changeset viewer.