1
0
Fork 0
mirror of https://github.com/buddypress/buddypress.git synced 2026-07-23 21:06:56 +08:00
buddypress/tests/phpunit/testcases/groups/functions/groupsIsUser.php
Mathieu Viet 89a6666dc6 Fully enjoy Yoast’s PHPUnit polyfills
Using these polyfills let us use PHPUnit v9.x for our tests and add PHP 8.1 to our testing matrix. Some additional edits to our PHP unit tests suite were needed:

- Stop using PHPunit deprecated functions.
- Rename some `BP_UnitTestCase` methods to use Yoast's polyfills.
- Edit the PHP Unit test GH action and also run this action on pull requests.
- Update some composer dependencies, remove the one about `phpunit/phpunit:^7.5` and add a new composer script to use PHPUnit v9.x. 

Props renatonascalves, rafiahmedd

Closes https://github.com/buddypress/buddypress/pull/13
Fixes #8649


git-svn-id: https://buddypress.svn.wordpress.org/trunk@13314 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
2022-08-13 08:58:51 +00:00

206 lines
6.3 KiB
PHP

<?php
/**
* Tests for the `groups_is_user_*()` functions.
*
* @group groups
*/
class BP_Tests_Groups_Functions_GroupsIsUser extends BP_UnitTestCase {
static $user;
static $admin_user;
static $groups;
public static function wpSetUpBeforeClass( $f ) {
self::$user = $f->user->create( array(
'user_login' => 'groups_is_user',
'user_email' => 'groups_is_user@example.com',
) );
self::$admin_user = $f->user->create( array(
'user_login' => 'groups_is_user_admin',
'user_email' => 'groups_is_user_admin@example.com',
) );
self::$groups = $f->group->create_many( 3, array(
'creator_id' => self::$admin_user,
'status' => 'private'
) );
$now = time();
self::commit_transaction();
}
public static function tear_down_after_class() {
foreach ( self::$groups as $group ) {
groups_delete_group( $group );
}
if ( is_multisite() ) {
wpmu_delete_user( self::$user );
wpmu_delete_user( self::$admin_user );
} else {
wp_delete_user( self::$user );
wp_delete_user( self::$admin_user );
}
self::commit_transaction();
}
public function test_groups_is_user_admin_expected_true() {
$this->add_user_to_group( self::$user, self::$groups[0], array(
'is_admin' => false,
) );
$this->add_user_to_group( self::$user, self::$groups[1], array(
'is_admin' => true,
) );
$this->assertNotEmpty( groups_is_user_admin( self::$user, self::$groups[1] ) );
}
public function test_groups_is_user_admin_expected_false() {
$this->add_user_to_group( self::$user, self::$groups[0], array(
'is_admin' => false,
) );
$this->add_user_to_group( self::$user, self::$groups[1], array(
'is_admin' => true,
) );
$this->assertEquals( false, groups_is_user_admin( self::$user, self::$groups[0] ) );
}
public function test_groups_is_user_mod_expected_true() {
$this->add_user_to_group( self::$user, self::$groups[0], array(
'is_mod' => false,
) );
$this->add_user_to_group( self::$user, self::$groups[1], array(
'is_mod' => true,
) );
$this->assertNotEmpty( groups_is_user_mod( self::$user, self::$groups[1] ) );
}
public function test_groups_is_user_mod_expected_false() {
$this->add_user_to_group( self::$user, self::$groups[0], array(
'is_mod' => false,
) );
$this->add_user_to_group( self::$user, self::$groups[1], array(
'is_mod' => true,
) );
$this->assertEquals( false, groups_is_user_mod( self::$user, self::$groups[0] ) );
}
public function test_groups_is_user_mod_should_return_false_when_user_is_also_banned() {
$this->add_user_to_group( self::$user, self::$groups[0], array(
'is_mod' => false,
) );
$this->add_user_to_group( self::$user, self::$groups[1], array(
'is_mod' => true,
) );
$m = new BP_Groups_Member( self::$user, self::$groups[1] );
$m->ban();
$this->assertEquals( false, groups_is_user_mod( self::$user, self::$groups[1] ) );
}
public function test_groups_is_user_member_expected_true() {
$this->add_user_to_group( self::$user, self::$groups[1] );
$this->assertNotEmpty( groups_is_user_member( self::$user, self::$groups[1] ) );
}
public function test_groups_is_user_member_should_return_true_for_admin() {
$this->add_user_to_group( self::$user, self::$groups[1], array(
'is_admin' => true,
) );
$this->assertNotEmpty( groups_is_user_member( self::$user, self::$groups[1] ) );
}
public function test_groups_is_user_member_should_return_true_for_mod() {
$this->add_user_to_group( self::$user, self::$groups[1], array(
'is_mod' => true,
) );
$this->assertNotEmpty( groups_is_user_member( self::$user, self::$groups[1] ) );
}
public function test_groups_is_user_member_expected_false() {
$this->add_user_to_group( self::$user, self::$groups[1] );
$this->assertEquals( false, groups_is_user_member( self::$user, self::$groups[0] ) );
}
public function test_groups_is_user_member_should_return_false_when_user_is_also_banned() {
$this->add_user_to_group( self::$user, self::$groups[1] );
$m = new BP_Groups_Member( self::$user, self::$groups[1] );
$m->ban();
$this->assertEquals( false, groups_is_user_member( self::$user, self::$groups[1] ) );
}
public function test_groups_is_user_banned_should_return_false_for_non_member() {
$this->assertEquals( false, groups_is_user_banned( self::$user, self::$groups[1] ) );
}
/**
* Return values for these functions are terrible.
*/
public function test_groups_is_user_banned_should_return_false_for_non_banned_member() {
$this->add_user_to_group( self::$user, self::$groups[1] );
$this->assertEquals( 0, groups_is_user_banned( self::$user, self::$groups[1] ) );
}
public function test_groups_is_user_banned_should_return_true_for_banned_member() {
$this->add_user_to_group( self::$user, self::$groups[1] );
$m = new BP_Groups_Member( self::$user, self::$groups[1] );
$m->ban();
$this->assertNotEmpty( groups_is_user_banned( self::$user, self::$groups[1] ) );
}
public function test_groups_is_user_invited_should_return_false_for_confirmed_member() {
$this->add_user_to_group( self::$user, self::$groups[1] );
$this->assertEquals( false, groups_is_user_invited( self::$user, self::$groups[1] ) );
}
public function test_groups_is_user_invited_should_return_false_for_uninvited_member() {
$this->assertEquals( false, groups_is_user_invited( self::$user, self::$groups[1] ) );
}
public function test_groups_is_user_invited_should_return_true_for_invited_member() {
$i = groups_invite_user( array(
'user_id' => self::$user,
'group_id' => self::$groups[1],
'inviter_id' => self::$admin_user,
'send_invite' => 1,
) );
$this->assertNotEmpty( groups_is_user_invited( self::$user, self::$groups[1] ) );
}
public function test_groups_is_user_pending_should_return_false_for_invited_member() {
groups_invite_user( array(
'user_id' => self::$user,
'group_id' => self::$groups[1],
'send_invite' => 1
) );
$this->assertEquals( false, groups_is_user_pending( self::$user, self::$groups[1] ) );
}
public function test_groups_is_user_pending_should_return_false_for_member_with_no_request() {
$this->assertEquals( false, groups_is_user_pending( self::$user, self::$groups[1] ) );
}
public function test_groups_is_user_pending_should_return_true_for_pending_member() {
groups_send_membership_request( array(
'user_id' => self::$user,
'group_id' => self::$groups[1],
) );
$this->assertNotEmpty( groups_is_user_pending( self::$user, self::$groups[1] ) );
}
}