Skip to:
Content

BuddyPress.org

Ticket #6209: 6209-working-tests.02.patch

File 6209-working-tests.02.patch, 4.7 KB (added by dcavins, 5 years ago)

Add tests for group membership

  • tests/phpunit/testcases/groups/class-bp-groups-member.php

    diff --git tests/phpunit/testcases/groups/class-bp-groups-member.php tests/phpunit/testcases/groups/class-bp-groups-member.php
    index 7608130..5b1d319 100644
    class BP_Tests_BP_Groups_Member_TestCases extends BP_UnitTestCase { 
    2525                return $invite->id;
    2626        }
    2727
     28        public static function create_group_membership_request( $user_id, $group_id ) {
     29                $request                = new BP_Groups_Member;
     30                $request->group_id      = $group_id;
     31                $request->user_id       = $user_id;
     32                $request->date_modified = bp_core_current_time();
     33                $request->inviter_id    = 0;
     34                $request->is_confirmed  = 0;
     35
     36                $request->save();
     37                return $request->id;
     38        }
     39
    2840        public function test_get_recently_joined_with_filter() {
    2941                $g1 = $this->factory->group->create( array(
    3042                        'name' => 'Tab',
    class BP_Tests_BP_Groups_Member_TestCases extends BP_UnitTestCase { 
    223235
    224236                $this->set_current_user( $old_current_user );
    225237        }
     238
     239        /**
     240         * @group groups_reject_membership_request
     241         */
     242        public function test_bp_groups_reject_membership_request_remove_request() {
     243                $u1 = $this->factory->user->create();
     244                $g = $this->factory->group->create( array(
     245                        'status' => 'private',
     246                ) );
     247
     248                // Membership requests should be removed.
     249                self::create_group_membership_request( $u1, $g );
     250                groups_reject_membership_request( null, $u1, $g );
     251                $u1_has_request = groups_check_for_membership_request( $u1, $g );
     252                $this->assertEquals( $u1_has_request, 0 );
     253        }
     254
     255        /**
     256         * @group groups_delete_membership_request
     257         */
     258        public function test_bp_groups_delete_membership_request_remove_request() {
     259                $u1 = $this->factory->user->create();
     260                $g = $this->factory->group->create( array(
     261                        'status' => 'private',
     262                ) );
     263
     264                // Membership requests should be removed.
     265                self::create_group_membership_request( $u1, $g );
     266                groups_delete_membership_request( null, $u1, $g );
     267                $u1_has_request = groups_check_for_membership_request( $u1, $g );
     268                $this->assertEquals( $u1_has_request, 0 );
     269        }
     270
     271        /**
     272         * @group groups_reject_invite
     273         */
     274        public function test_bp_groups_reject_invite_remove_invite() {
     275                $u1 = $this->factory->user->create();
     276                $u2 = $this->factory->user->create();
     277                $g = $this->factory->group->create( array(
     278                        'status' => 'private',
     279                ) );
     280
     281                $now = time();
     282                $this->add_user_to_group( $u1, $g, array(
     283                        'date_modified' => date( 'Y-m-d H:i:s', $now - 60 ),
     284                ) );
     285
     286                // The invitation should be removed.
     287                self::invite_user_to_group( $u2, $g, $u1 );
     288                groups_reject_invite( $u2, $g );
     289                $u2_has_invite = groups_check_user_has_invite( $u2, $g );
     290                $this->assertEquals( $u2_has_invite, 0 );
     291        }
     292
     293        /**
     294         * @group groups_delete_invite
     295         */
     296        public function test_bp_groups_delete_invite_remove_invite() {
     297                $u1 = $this->factory->user->create();
     298                $u2 = $this->factory->user->create();
     299                $g = $this->factory->group->create( array(
     300                        'status' => 'private',
     301                ) );
     302
     303                $now = time();
     304                $this->add_user_to_group( $u1, $g, array(
     305                        'date_modified' => date( 'Y-m-d H:i:s', $now - 60 ),
     306                ) );
     307
     308                // The invitation should be removed.
     309                self::invite_user_to_group( $u2, $g, $u1 );
     310                groups_delete_invite( $u2, $g );
     311                $u2_has_invite = groups_check_user_has_invite( $u2, $g );
     312                $this->assertEquals( $u2_has_invite, 0 );
     313        }
     314
     315        /**
     316         * @group groups_delete_invite
     317         */
     318        public function test_bp_groups_delete_invite_leave_memberships_intact() {
     319                $u1 = $this->factory->user->create();
     320                $g = $this->factory->group->create( array(
     321                        'status' => 'private',
     322                ) );
     323
     324                $now = time();
     325                $this->add_user_to_group( $u1, $g, array(
     326                        'date_modified' => date( 'Y-m-d H:i:s', $now - 60 ),
     327                ) );
     328
     329                // Confirmed memberships should be left intact.
     330                $u1_is_member_before = groups_is_user_member( $u1, $g );
     331                groups_delete_invite( $u1, $g );
     332                $u1_is_member_after = groups_is_user_member( $u1, $g );
     333                // If nothing changed, the before and after values will be the same.
     334                $this->assertEquals( $u1_is_member_before, $u1_is_member_after );
     335        }
     336
     337        /**
     338         * @group groups_uninvite_user
     339         */
     340        public function test_bp_groups_uninvite_user_remove_invite() {
     341                $u1 = $this->factory->user->create();
     342                $u2 = $this->factory->user->create();
     343                $g = $this->factory->group->create( array(
     344                        'status' => 'private',
     345                ) );
     346
     347                $now = time();
     348                $this->add_user_to_group( $u1, $g, array(
     349                        'date_modified' => date( 'Y-m-d H:i:s', $now - 60 ),
     350                ) );
     351
     352                // The invitation should be removed.
     353                self::invite_user_to_group( $u2, $g, $u1 );
     354                groups_uninvite_user( $u2, $g );
     355                $u2_has_invite = groups_check_user_has_invite( $u2, $g );
     356                $this->assertEquals( $u2_has_invite, 0 );
     357        }
    226358}
    227359