1
0
Fork 0
mirror of https://github.com/buddypress/buddypress.git synced 2026-07-22 20:56:55 +08:00
buddypress/tests/phpunit/testcases/core/class-bp-user-query.php

865 lines
24 KiB
PHP

<?php
/**
* @group core
* @group BP_User_Query
*/
class BP_Tests_BP_User_Query_TestCases extends BP_UnitTestCase {
/**
* Checks that user_id returns friends
*/
public function test_bp_user_query_friends() {
$u1 = self::factory()->user->create();
$u2 = self::factory()->user->create();
$u3 = self::factory()->user->create();
friends_add_friend( $u1, $u2, true );
$q = new BP_User_Query( array(
'user_id' => $u2,
) );
$friends = is_array( $q->results ) ? array_values( $q->results ) : array();
$friend_ids = wp_list_pluck( $friends, 'ID' );
$this->assertEquals( $friend_ids, array( $u1 ) );
}
/**
* @ticket BP4938
*/
public function test_bp_user_query_friends_with_include() {
$u1 = self::factory()->user->create();
$u2 = self::factory()->user->create();
$u3 = self::factory()->user->create();
$u4 = self::factory()->user->create();
friends_add_friend( $u1, $u2, true );
friends_add_friend( $u1, $u3, true );
$q = new BP_User_Query( array(
'user_id' => $u1,
// Represents an independent filter passed by a plugin
// u4 is not a friend of u1 and should not be returned
'include' => array( $u2, $u4 ),
) );
$friends = is_array( $q->results ) ? array_values( $q->results ) : array();
$friend_ids = wp_list_pluck( $friends, 'ID' );
$this->assertEquals( $friend_ids, array( $u2 ) );
}
public function test_bp_user_query_friends_with_include_but_zero_friends() {
$u1 = self::factory()->user->create();
$u2 = self::factory()->user->create();
$u3 = self::factory()->user->create();
$u4 = self::factory()->user->create();
$q = new BP_User_Query( array(
'user_id' => $u1,
// Represents an independent filter passed by a plugin
// u4 is not a friend of u1 and should not be returned
'include' => array( $u2, $u4 ),
) );
$friends = is_array( $q->results ) ? array_values( $q->results ) : array();
$friend_ids = wp_list_pluck( $friends, 'ID' );
$this->assertEquals( $friend_ids, array() );
}
/**
* @ticket BP7248
*/
public function test_include_array_contaning_only_0_should_result_in_no_results_query() {
$q = new BP_User_Query( array(
'include' => array( 0 ),
) );
$this->assertStringContainsString( '0 = 1', $q->uid_clauses['where'] );
}
/**
* @ticket BP7248
*/
public function test_include_array_contaning_0_but_also_real_IDs_should_not_result_in_no_results_query() {
$q = new BP_User_Query( array(
'include' => array( 0, 1 ),
) );
$this->assertStringNotContainsString( '0 = 1', $q->uid_clauses['where'] );
}
/**
* @group user_ids
*/
public function test_bp_user_query_user_ids_with_invalid_user_id() {
$now = time();
$u1 = self::factory()->user->create();
$u2 = self::factory()->user->create();
// invalid user ID
$u3 = $u2 + 1;
$old_user = get_current_user_id();
$this->set_current_user( $u1 );
// pass 'user_ids' to user query to trigger this bug
$q = new BP_User_Query( array(
'user_ids' => array( $u2, $u3 )
) );
// $q->user_ids property should now not contain invalid user IDs
$this->assertNotContains( $u3, $q->user_ids );
// clean up
$this->set_current_user( $old_user );
}
public function test_bp_user_query_sort_by_popular() {
$u1 = self::factory()->user->create();
$u2 = self::factory()->user->create();
$u3 = self::factory()->user->create();
$u4 = self::factory()->user->create();
bp_update_user_meta( $u1, bp_get_user_meta_key( 'total_friend_count' ), '5' );
bp_update_user_meta( $u2, bp_get_user_meta_key( 'total_friend_count' ), '90' );
bp_update_user_meta( $u3, bp_get_user_meta_key( 'total_friend_count' ), '101' );
bp_update_user_meta( $u4, bp_get_user_meta_key( 'total_friend_count' ), '3002' );
$q = new BP_User_Query( array(
'type' => 'popular',
) );
$users = is_array( $q->results ) ? array_values( $q->results ) : array();
$user_ids = wp_parse_id_list( wp_list_pluck( $users, 'ID' ) );
$expected = array( $u4, $u3, $u2, $u1 );
$this->assertEquals( $expected, $user_ids );
}
/**
* @group online
*/
public function test_bp_user_query_type_online() {
$now = time();
$u1 = self::factory()->user->create( array(
'last_activity' => date( 'Y-m-d H:i:s', $now ),
) );
$u2 = self::factory()->user->create( array(
'last_activity' => date( 'Y-m-d H:i:s', $now - 60*13 ),
) );
$u3 = self::factory()->user->create( array(
'last_activity' => date( 'Y-m-d H:i:s', $now - 60*16 ),
) );
$q = new BP_User_Query( array(
'type' => 'online',
) );
$users = is_array( $q->results ) ? array_values( $q->results ) : array();
$user_ids = wp_parse_id_list( wp_list_pluck( $users, 'ID' ) );
$this->assertEquals( array( $u1, $u2 ), $user_ids );
}
/**
* @group online
*/
public function test_bp_user_query_type_online_five_minute_interval() {
$now = time();
$u1 = self::factory()->user->create( array(
'last_activity' => date( 'Y-m-d H:i:s', $now ),
) );
$u2 = self::factory()->user->create( array(
'last_activity' => date( 'Y-m-d H:i:s', $now - 60*4 ),
) );
$u3 = self::factory()->user->create( array(
'last_activity' => date( 'Y-m-d H:i:s', $now - 60*6 ),
) );
add_filter( 'bp_user_query_online_interval', function () { return 5; } );
$q = new BP_User_Query( array(
'type' => 'online',
) );
$users = is_array( $q->results ) ? array_values( $q->results ) : array();
$user_ids = wp_parse_id_list( wp_list_pluck( $users, 'ID' ) );
$this->assertEquals( array( $u1, $u2 ), $user_ids );
}
public function test_bp_user_query_search_with_apostrophe() {
// Apostrophe. Search_terms must escaped to mimic POST payload
$user_id = self::factory()->user->create();
xprofile_set_field_data( 1, $user_id, "Foo'Bar" );
$q = new BP_User_Query( array( 'search_terms' => "oo\'Ba", ) );
$found_user_id = null;
if ( ! empty( $q->results ) ) {
$found_user = array_pop( $q->results );
$found_user_id = $found_user->ID;
}
$this->assertEquals( $user_id, $found_user_id );
}
public function test_bp_user_query_search_with_percent_sign() {
// LIKE special character: %
$user_id = self::factory()->user->create();
xprofile_set_field_data( 1, $user_id, "Foo%Bar" );
$q = new BP_User_Query( array( 'search_terms' => "oo%Bar", ) );
$found_user_id = null;
if ( ! empty( $q->results ) ) {
$found_user = array_pop( $q->results );
$found_user_id = $found_user->ID;
}
$this->assertEquals( $user_id, $found_user_id );
}
public function test_bp_user_query_search_with_underscore() {
// LIKE special character: _
$user_id = self::factory()->user->create();
xprofile_set_field_data( 1, $user_id, "Foo_Bar" );
$q = new BP_User_Query( array( 'search_terms' => "oo_Bar", ) );
$found_user_id = null;
if ( ! empty( $q->results ) ) {
$found_user = array_pop( $q->results );
$found_user_id = $found_user->ID;
}
$this->assertEquals( $user_id, $found_user_id );
}
public function test_bp_user_query_search_with_ampersand_sign() {
// LIKE special character: &
$user_id = self::factory()->user->create();
xprofile_set_field_data( 1, $user_id, "a&mpersand" );
$q = new BP_User_Query( array( 'search_terms' => "a&m", ) );
$found_user_id = null;
if ( ! empty( $q->results ) ) {
$found_user = array_pop( $q->results );
$found_user_id = $found_user->ID;
}
$this->assertEquals( $user_id, $found_user_id );
}
/**
* @group search_terms
*/
public function test_bp_user_query_search_core_fields() {
$user_id = self::factory()->user->create( array(
'user_login' => 'foo',
) );
xprofile_set_field_data( 1, $user_id, "Bar" );
$q = new BP_User_Query( array( 'search_terms' => 'foo', ) );
$found_user_id = null;
if ( ! empty( $q->results ) ) {
$found_user = array_pop( $q->results );
$found_user_id = $found_user->ID;
}
$this->assertEquals( $user_id, $found_user_id );
}
public function test_bp_user_query_search_wildcards() {
$u1 = self::factory()->user->create( array(
'user_login' => 'xfoo',
) );
xprofile_set_field_data( 1, $u1, "Bar" );
$q1 = new BP_User_Query( array( 'search_terms' => 'foo', 'search_wildcard' => 'left' ) );
$u2 = self::factory()->user->create( array(
'user_login' => 'foox',
) );
xprofile_set_field_data( 1, $u2, "Bar" );
$q2 = new BP_User_Query( array( 'search_terms' => 'foo', 'search_wildcard' => 'right' ) );
$u3 = self::factory()->user->create( array(
'user_login' => 'xfoox',
) );
xprofile_set_field_data( 1, $u3, "Bar" );
$q3 = new BP_User_Query( array( 'search_terms' => 'foo', 'search_wildcard' => 'both' ) );
$this->assertNotEmpty( $q1->results );
$q1 = array_pop( $q1->results );
$this->assertEquals( $u1, $q1->ID );
$this->assertNotEmpty( $q2->results );
$q2 = array_pop( $q2->results );
$this->assertEquals( $u2, $q2->ID );
$this->assertNotEmpty( $q3->results );
foreach ( $q3->results as $user ) {
$this->assertTrue( in_array( $user->ID, array( $u1, $u2, $u3 ) ) );
}
}
/**
* @group exclude
*/
public function test_bp_user_query_with_exclude() {
// Grab list of existing users who should also be excluded
global $wpdb;
$existing_users = $wpdb->get_col( "SELECT ID FROM {$wpdb->users}" );
$u1 = self::factory()->user->create();
$u2 = self::factory()->user->create();
$exclude = array_merge( array( $u1 ), $existing_users );
$q = new BP_User_Query( array( 'exclude' => $exclude, ) );
$found_user_ids = null;
if ( ! empty( $q->results ) ) {
$found_user_ids = array_values( wp_parse_id_list( wp_list_pluck( $q->results, 'ID' ) ) );
}
$this->assertEquals( array( $u2 ), $found_user_ids );
}
/**
* @group exclude
* @ticket BP8040
*/
public function test_bp_user_query_should_ignore_empty_exclude() {
$u1 = self::factory()->user->create();
$u2 = self::factory()->user->create();
$q = new BP_User_Query( array( 'exclude' => array() ) );
$found_user_ids = null;
if ( ! empty( $q->results ) ) {
$found_user_ids = array_values( wp_parse_id_list( wp_list_pluck( $q->results, 'ID' ) ) );
}
$this->assertContains( $u1, $found_user_ids );
$this->assertContains( $u2, $found_user_ids );
}
/**
* @group type
* @group spam
*/
public function test_bp_user_query_type_alphabetical_spam_xprofileon() {
if ( is_multisite() ) {
$this->markTestSkipped();
}
// Make sure xprofile is on
$xprofile_toggle = isset( buddypress()->active_components['xprofile'] );
buddypress()->active_components['xprofile'] = 1;
add_filter( 'bp_disable_profile_sync', '__return_false' );
$u1 = self::factory()->user->create();
$u2 = self::factory()->user->create();
global $wpdb;
bp_core_process_spammer_status( $u1, 'spam' );
$q = new BP_User_Query( array( 'type' => 'alphabetical', ) );
// Restore xprofile setting
if ( $xprofile_toggle ) {
buddypress()->active_components['xprofile'] = 1;
} else {
unset( buddypress()->active_components['xprofile'] );
}
remove_filter( 'bp_disable_profile_sync', '__return_false' );
$found_user_ids = null;
if ( ! empty( $q->results ) ) {
$found_user_ids = array_values( wp_parse_id_list( wp_list_pluck( $q->results, 'ID' ) ) );
}
// Do a assertNotContains because there are weird issues with user #1 as created by WP
$this->assertNotContains( $u1, $found_user_ids );
}
/**
* @group type
* @group spam
*/
public function test_bp_user_query_type_alphabetical_spam_xprofileoff() {
$u1 = self::factory()->user->create();
$u2 = self::factory()->user->create();
// Make sure xprofile and profile sync are off
$xprofile_toggle = isset( buddypress()->active_components['xprofile'] );
buddypress()->active_components['xprofile'] = 0;
add_filter( 'bp_disable_profile_sync', '__return_false' );
bp_core_process_spammer_status( $u1, 'spam' );
$q = new BP_User_Query( array( 'type' => 'alphabetical', ) );
// Restore xprofile setting
if ( $xprofile_toggle ) {
buddypress()->active_components['xprofile'] = 1;
} else {
unset( buddypress()->active_components['xprofile'] );
}
remove_filter( 'bp_disable_profile_sync', '__return_false' );
$found_user_ids = null;
if ( ! empty( $q->results ) ) {
$found_user_ids = array_values( wp_parse_id_list( wp_list_pluck( $q->results, 'ID' ) ) );
}
// Do a assertNotContains because there are weird issues with user #1 as created by WP
$this->assertNotContains( $u1, $found_user_ids );
}
/**
* @group meta
* @group BP5904
*/
public function test_bp_user_query_with_user_meta_argument() {
$u1 = self::factory()->user->create();
$u2 = self::factory()->user->create();
bp_update_user_meta( $u2, 'foo', 'bar' );
$q = new BP_User_Query( array(
'meta_key' => 'foo',
'meta_value' => 'bar',
) );
$found_user_ids = array_values( wp_parse_id_list( wp_list_pluck( $q->results, 'ID' ) ) );
// Do a assertNotContains because there are weird issues with user #1 as created by WP
$this->assertNotContains( $u1, $found_user_ids );
$this->assertEquals( array( $u2 ), $found_user_ids );
}
/**
* @group meta
* @group BP5904
*/
public function test_bp_user_query_with_user_meta_argument_no_user() {
$u1 = self::factory()->user->create();
$u2 = self::factory()->user->create();
$q = new BP_User_Query( array(
'meta_key' => 'foo',
'meta_value' => 'bar',
) );
$found_user_ids = array_values( wp_parse_id_list( wp_list_pluck( $q->results, 'ID' ) ) );
$this->assertEmpty( $found_user_ids );
}
/**
* @group member_types
*/
public function test_member_type_single_value() {
bp_register_member_type( 'foo' );
bp_register_member_type( 'bar' );
$users = self::factory()->user->create_many( 3 );
bp_set_member_type( $users[0], 'foo' );
bp_set_member_type( $users[1], 'bar' );
$q = new BP_User_Query( array(
'member_type' => 'bar',
) );
$found = array_values( wp_list_pluck( $q->results, 'ID' ) );
$this->assertEquals( array( $users[1] ), $found );
}
/**
* @group member_types
*/
public function test_member_type_array_with_single_value() {
bp_register_member_type( 'foo' );
bp_register_member_type( 'bar' );
$users = self::factory()->user->create_many( 3 );
bp_set_member_type( $users[0], 'foo' );
bp_set_member_type( $users[1], 'bar' );
$q = new BP_User_Query( array(
'member_type' => array( 'bar' ),
) );
$found = array_values( wp_list_pluck( $q->results, 'ID' ) );
$this->assertEquals( array( $users[1] ), $found );
}
/**
* @group member_types
*/
public function test_member_type_comma_separated_values() {
bp_register_member_type( 'foo' );
bp_register_member_type( 'bar' );
$users = self::factory()->user->create_many( 3 );
bp_set_member_type( $users[0], 'foo' );
bp_set_member_type( $users[1], 'bar' );
$q = new BP_User_Query( array(
'member_type' => 'foo, bar',
) );
$found = array_values( wp_list_pluck( $q->results, 'ID' ) );
$this->assertEqualSets( array( $users[0], $users[1] ), $found );
}
/**
* @group member_types
*/
public function test_member_type_array_with_multiple_values() {
bp_register_member_type( 'foo' );
bp_register_member_type( 'bar' );
$users = self::factory()->user->create_many( 3 );
bp_set_member_type( $users[0], 'foo' );
bp_set_member_type( $users[1], 'bar' );
$q = new BP_User_Query( array(
'member_type' => array( 'foo', 'bar' ),
) );
$found = array_values( wp_list_pluck( $q->results, 'ID' ) );
$this->assertEqualSets( array( $users[0], $users[1] ), $found );
}
/**
* @group member_types
*/
public function test_member_type_comma_separated_values_should_discard_non_existent_taxonomies() {
bp_register_member_type( 'foo' );
bp_register_member_type( 'bar' );
$users = self::factory()->user->create_many( 3 );
bp_set_member_type( $users[0], 'foo' );
bp_set_member_type( $users[1], 'bar' );
$q = new BP_User_Query( array(
'member_type' => 'foo, baz',
) );
$found = array_values( wp_list_pluck( $q->results, 'ID' ) );
$this->assertEqualSets( array( $users[0] ), $found );
}
/**
* @group member_types
* @ticket BP6334
*/
public function test_should_return_no_results_when_no_users_match_the_specified_member_type() {
bp_register_member_type( 'foo' );
$users = self::factory()->user->create_many( 3 );
$q = new BP_User_Query( array(
'member_type' => 'foo, baz',
) );
$this->assertEmpty( $q->results );
}
/**
* @group member_types
*/
public function test_member_type__in_single_value() {
bp_register_member_type( 'foo' );
bp_register_member_type( 'bar' );
$users = self::factory()->user->create_many( 3 );
bp_set_member_type( $users[0], 'foo' );
bp_set_member_type( $users[1], 'bar' );
$q = new BP_User_Query( array(
'member_type__in' => 'bar',
) );
$found = array_values( wp_list_pluck( $q->results, 'ID' ) );
$this->assertEquals( array( $users[1] ), $found );
}
/**
* @group member_types
*/
public function test_member_type__in_array_with_single_value() {
bp_register_member_type( 'foo' );
bp_register_member_type( 'bar' );
$users = self::factory()->user->create_many( 3 );
bp_set_member_type( $users[0], 'foo' );
bp_set_member_type( $users[1], 'bar' );
$q = new BP_User_Query( array(
'member_type__in' => array( 'bar' ),
) );
$found = array_values( wp_list_pluck( $q->results, 'ID' ) );
$this->assertEquals( array( $users[1] ), $found );
}
/**
* @group member_types
*/
public function test_member_type__in_comma_separated_values() {
bp_register_member_type( 'foo' );
bp_register_member_type( 'bar' );
$users = self::factory()->user->create_many( 3 );
bp_set_member_type( $users[0], 'foo' );
bp_set_member_type( $users[1], 'bar' );
$q = new BP_User_Query( array(
'member_type__in' => 'foo, bar',
) );
$found = array_values( wp_list_pluck( $q->results, 'ID' ) );
$this->assertEqualSets( array( $users[0], $users[1] ), $found );
}
/**
* @group member_types
*/
public function test_member_type__in_array_with_multiple_values() {
bp_register_member_type( 'foo' );
bp_register_member_type( 'bar' );
$users = self::factory()->user->create_many( 3 );
bp_set_member_type( $users[0], 'foo' );
bp_set_member_type( $users[1], 'bar' );
$q = new BP_User_Query( array(
'member_type__in' => array( 'foo', 'bar' ),
) );
$found = array_values( wp_list_pluck( $q->results, 'ID' ) );
$this->assertEqualSets( array( $users[0], $users[1] ), $found );
}
/**
* @group member_types
*/
public function test_member_type__in_comma_separated_values_should_discard_non_existent_taxonomies() {
bp_register_member_type( 'foo' );
bp_register_member_type( 'bar' );
$users = self::factory()->user->create_many( 3 );
bp_set_member_type( $users[0], 'foo' );
bp_set_member_type( $users[1], 'bar' );
$q = new BP_User_Query( array(
'member_type__in' => 'foo, baz',
) );
$found = array_values( wp_list_pluck( $q->results, 'ID' ) );
$this->assertEqualSets( array( $users[0] ), $found );
}
/**
* @group member_types
*/
public function test_should_return_no_results_when_no_users_match_the_specified_member_type__in() {
bp_register_member_type( 'foo' );
$users = self::factory()->user->create_many( 3 );
$q = new BP_User_Query( array(
'member_type__in' => 'foo, baz',
) );
$this->assertEmpty( $q->results );
}
/**
* @group member_types
*/
public function test_member_type_should_take_precedence_over_member_type__in() {
bp_register_member_type( 'foo' );
bp_register_member_type( 'bar' );
$users = self::factory()->user->create_many( 3 );
bp_set_member_type( $users[0], 'foo' );
bp_set_member_type( $users[1], 'bar' );
$q = new BP_User_Query( array(
'member_type__in' => 'foo',
'member_type' => 'bar'
) );
$found = array_values( wp_list_pluck( $q->results, 'ID' ) );
$this->assertEqualSets( array( $users[1] ), $found );
}
/**
* @group member_types
*/
public function test_member_type__not_in_returns_members_from_other_types_and_members_with_no_types() {
bp_register_member_type( 'foo' );
bp_register_member_type( 'bar' );
$users = self::factory()->user->create_many( 3 );
bp_set_member_type( $users[0], 'foo' );
bp_set_member_type( $users[1], 'bar' );
$q = new BP_User_Query( array(
'member_type__not_in' => 'foo',
) );
$found = array_values( wp_list_pluck( $q->results, 'ID' ) );
$this->assertEqualSets( array( $users[1], $users[2] ), $found );
}
/**
* @group member_types
*/
public function test_should_return_no_results_when_all_users_match_the_specified_member_type__not_in() {
bp_register_member_type( 'foo' );
$users = self::factory()->user->create_many( 3 );
bp_set_member_type( $users[0], 'foo' );
bp_set_member_type( $users[1], 'foo' );
bp_set_member_type( $users[2], 'foo' );
$q = new BP_User_Query( array(
'member_type__not_in' => 'foo',
) );
$this->assertEmpty( $q->results );
}
/**
* @group member_types
*/
public function test_member_type__not_in_takes_precedence_over_member_type() {
bp_register_member_type( 'foo' );
$users = self::factory()->user->create_many( 3 );
bp_set_member_type( $users[0], 'foo' );
bp_set_member_type( $users[1], 'foo' );
bp_set_member_type( $users[2], 'foo' );
$q = new BP_User_Query( array(
'member_type__not_in' => 'foo',
'member_type' => 'foo'
) );
$this->assertEmpty( $q->results );
}
/**
* @group member_types
*/
public function test_member_type__not_in_takes_precedence_over_member_type__in() {
bp_register_member_type( 'foo' );
$users = self::factory()->user->create_many( 3 );
bp_set_member_type( $users[0], 'foo' );
bp_set_member_type( $users[1], 'foo' );
bp_set_member_type( $users[2], 'foo' );
$q = new BP_User_Query( array(
'member_type__not_in' => 'foo',
'member_type__in' => 'foo'
) );
$this->assertEmpty( $q->results );
}
/**
* @group cache
* @group member_types
*/
public function test_member_type_should_be_prefetched_into_cache_during_user_query() {
bp_register_member_type( 'foo' );
bp_register_member_type( 'bar' );
$users = self::factory()->user->create_many( 4 );
bp_set_member_type( $users[0], 'foo' );
bp_set_member_type( $users[1], 'bar' );
bp_set_member_type( $users[2], 'foo' );
$q = new BP_User_Query( array(
'include' => $users,
) );
$this->assertSame( array( 'foo' ), wp_cache_get( $users[0], 'bp_member_member_type' ) );
$this->assertSame( array( 'bar' ), wp_cache_get( $users[1], 'bp_member_member_type' ) );
$this->assertSame( array( 'foo' ), wp_cache_get( $users[2], 'bp_member_member_type' ) );
$this->assertSame( '', wp_cache_get( $users[3], 'bp_member_member_type' ) );
}
/**
* @group date_query
*/
public function test_date_query_before() {
$u1 = self::factory()->user->create( array(
'last_activity' => date( 'Y-m-d H:i:s', time() ),
) );
$u2 = self::factory()->user->create( array(
'last_activity' => '2008-03-25 17:13:55',
) );
$u3 = self::factory()->user->create( array(
'last_activity' => '2010-01-01 12:00',
) );
// 'date_query' before test
$query = new BP_User_Query( array(
'date_query' => array( array(
'before' => array(
'year' => 2010,
'month' => 1,
'day' => 1,
),
) )
) );
$this->assertEquals( $u2, $query->user_ids[0] );
}
/**
* @group date_query
*/
public function test_date_query_range() {
$u1 = self::factory()->user->create( array(
'last_activity' => date( 'Y-m-d H:i:s', time() ),
) );
$u2 = self::factory()->user->create( array(
'last_activity' => '2008-03-25 17:13:55',
) );
$u3 = self::factory()->user->create( array(
'last_activity' => '2001-01-01 12:00',
) );
// 'date_query' range test
$query = new BP_User_Query( array(
'date_query' => array( array(
'after' => 'January 2nd, 2001',
'before' => array(
'year' => 2010,
'month' => 1,
'day' => 1,
),
'inclusive' => true,
) )
) );
$this->assertEquals( $u2, $query->user_ids[0] );
}
/**
* @group date_query
*/
public function test_date_query_after() {
$u1 = self::factory()->user->create( array(
'last_activity' => date( 'Y-m-d H:i:s', time() ),
) );
$u2 = self::factory()->user->create( array(
'last_activity' => '2008-03-25 17:13:55',
) );
$u3 = self::factory()->user->create( array(
'last_activity' => '2001-01-01 12:00',
) );
// 'date_query' after and relative test
$query = new BP_User_Query( array(
'date_query' => array( array(
'after' => '1 day ago'
) )
) );
$this->assertEquals( $u1, $query->user_ids[0] );
}
}