Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
03/05/2014 02:37:27 PM (10 years ago)
Author:
boonebgorges
Message:

Introduce 'inviter_id' and 'invite_sent' params to BP_Group_Member_Query

These additional parameters make it possible to use BP_Group_Member_Query for
unconfirmed group memberships, as in the case of invitations and requests. This
will allow it to be swapped for the internals of bp_group_has_members(). See

Props dcavins for an initial patch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/testcases/groups/class-bp-group-member-query.php

    r7948 r8044  
    423423        $this->assertEquals( array( $u1, $u3, $u2 ), $ids );
    424424    }
     425
     426    /**
     427     * @group invite_sent
     428     */
     429    public function test_with_invite_sent_true() {
     430        $g = $this->factory->group->create();
     431        $u1 = $this->create_user();
     432        $u2 = $this->create_user();
     433        $time = time();
     434
     435        $this->add_user_to_group( $u1, $g, array(
     436            'date_modified' => gmdate( 'Y-m-d H:i:s', $time - 100 ),
     437            'is_confirmed' => 0,
     438            'invite_sent' => 0,
     439        ) );
     440
     441        $this->add_user_to_group( $u2, $g, array(
     442            'date_modified' => gmdate( 'Y-m-d H:i:s', $time - 100 ),
     443            'is_confirmed' => 0,
     444            'invite_sent' => 1,
     445        ) );
     446
     447        $query_members = new BP_Group_Member_Query( array(
     448            'group_id' => $g,
     449            'is_confirmed' => false,
     450            'invite_sent' => true,
     451        ) );
     452
     453        $ids = wp_parse_id_list( array_keys( $query_members->results ) );
     454        $this->assertEquals( array( $u2 ), $ids );
     455    }
     456
     457    /**
     458     * @group invite_sent
     459     */
     460    public function test_with_invite_sent_false() {
     461        $g = $this->factory->group->create();
     462        $u1 = $this->create_user();
     463        $u2 = $this->create_user();
     464        $time = time();
     465
     466        $this->add_user_to_group( $u1, $g, array(
     467            'date_modified' => gmdate( 'Y-m-d H:i:s', $time - 100 ),
     468            'is_confirmed' => 0,
     469            'invite_sent' => 0,
     470        ) );
     471
     472        $this->add_user_to_group( $u2, $g, array(
     473            'date_modified' => gmdate( 'Y-m-d H:i:s', $time - 100 ),
     474            'is_confirmed' => 0,
     475            'invite_sent' => 1,
     476        ) );
     477
     478        $query_members = new BP_Group_Member_Query( array(
     479            'group_id' => $g,
     480            'is_confirmed' => false,
     481            'invite_sent' => false,
     482        ) );
     483
     484        $ids = wp_parse_id_list( array_keys( $query_members->results ) );
     485        $this->assertEquals( array( $u1 ), $ids );
     486    }
     487
     488    /**
     489     * @group inviter_id
     490     */
     491    public function test_with_inviter_id_false() {
     492        $g = $this->factory->group->create();
     493        $u1 = $this->create_user();
     494        $u2 = $this->create_user();
     495        $time = time();
     496
     497        $this->add_user_to_group( $u1, $g, array(
     498            'date_modified' => gmdate( 'Y-m-d H:i:s', $time - 100 ),
     499            'inviter_id' => 0,
     500        ) );
     501
     502        $this->add_user_to_group( $u2, $g, array(
     503            'date_modified' => gmdate( 'Y-m-d H:i:s', $time - 100 ),
     504            'inviter_id' => 1,
     505        ) );
     506
     507        $query_members = new BP_Group_Member_Query( array(
     508            'group_id' => $g,
     509            'inviter_id' => false,
     510        ) );
     511
     512        $ids = wp_parse_id_list( array_keys( $query_members->results ) );
     513        $this->assertEquals( array( $u1 ), $ids );
     514    }
     515
     516    /**
     517     * @group inviter_id
     518     */
     519    public function test_with_inviter_id_specific() {
     520        $g = $this->factory->group->create();
     521        $u1 = $this->create_user();
     522        $u2 = $this->create_user();
     523        $u3 = $this->create_user();
     524        $u4 = $this->create_user();
     525        $time = time();
     526
     527        $this->add_user_to_group( $u1, $g, array(
     528            'date_modified' => gmdate( 'Y-m-d H:i:s', $time - 100 ),
     529            'inviter_id' => 0,
     530        ) );
     531
     532        $this->add_user_to_group( $u2, $g, array(
     533            'date_modified' => gmdate( 'Y-m-d H:i:s', $time - 200 ),
     534            'inviter_id' => 1,
     535        ) );
     536
     537        $this->add_user_to_group( $u3, $g, array(
     538            'date_modified' => gmdate( 'Y-m-d H:i:s', $time - 300 ),
     539            'inviter_id' => 6,
     540        ) );
     541
     542        $this->add_user_to_group( $u4, $g, array(
     543            'date_modified' => gmdate( 'Y-m-d H:i:s', $time - 400 ),
     544            'inviter_id' => 2,
     545        ) );
     546
     547        $query_members = new BP_Group_Member_Query( array(
     548            'group_id' => $g,
     549            'inviter_id' => array( 2, 6 ),
     550        ) );
     551
     552        $ids = wp_parse_id_list( array_keys( $query_members->results ) );
     553        $this->assertEquals( array( $u3, $u4 ), $ids );
     554    }
     555
     556    /**
     557     * @group inviter_id
     558     */
     559    public function test_with_inviter_id_any() {
     560        $g = $this->factory->group->create();
     561        $u1 = $this->create_user();
     562        $u2 = $this->create_user();
     563        $u3 = $this->create_user();
     564        $u4 = $this->create_user();
     565        $time = time();
     566
     567        $this->add_user_to_group( $u1, $g, array(
     568            'date_modified' => gmdate( 'Y-m-d H:i:s', $time - 100 ),
     569            'inviter_id' => 0,
     570        ) );
     571
     572        $this->add_user_to_group( $u2, $g, array(
     573            'date_modified' => gmdate( 'Y-m-d H:i:s', $time - 200 ),
     574            'inviter_id' => 1,
     575        ) );
     576
     577        $this->add_user_to_group( $u3, $g, array(
     578            'date_modified' => gmdate( 'Y-m-d H:i:s', $time - 300 ),
     579            'inviter_id' => 6,
     580        ) );
     581
     582        $this->add_user_to_group( $u4, $g, array(
     583            'date_modified' => gmdate( 'Y-m-d H:i:s', $time - 400 ),
     584            'inviter_id' => 2,
     585        ) );
     586
     587        $query_members = new BP_Group_Member_Query( array(
     588            'group_id' => $g,
     589            'inviter_id' => 'any',
     590        ) );
     591
     592        $ids = wp_parse_id_list( array_keys( $query_members->results ) );
     593        $this->assertEquals( array( $u2, $u3, $u4 ), $ids );
     594    }
    425595}
Note: See TracChangeset for help on using the changeset viewer.