1
0
Fork 0
mirror of https://github.com/buddypress/buddypress.git synced 2026-07-21 20:54:17 +08:00
buddypress/tests/phpunit/testcases/groups/user_can.php
Boone B Gorges 1fd253a59e Tests: MS/non-MS tests should be marked skipped.
Fixes #6162.

git-svn-id: https://buddypress.svn.wordpress.org/trunk@12244 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
2018-10-05 15:22:28 +00:00

430 lines
13 KiB
PHP

<?php
/**
* @group bp_user_can
*/
class BP_Tests_Groups_User_Can_Filter extends BP_UnitTestCase {
public function test_user_can_join_public_group() {
$g1 = $this->factory->group->create( array(
'status' => 'public'
) );
$u1 = $this->factory->user->create();
$this->assertTrue( bp_user_can( $u1, 'groups_join_group', array( 'group_id' => $g1 ) ) );
}
public function test_user_cannot_join_public_group_if_already_member() {
$g1 = $this->factory->group->create( array(
'status' => 'public'
) );
$u1 = $this->factory->user->create();
$this->add_user_to_group( $u1, $g1 );
$this->assertFalse( bp_user_can( $u1, 'groups_join_group', array( 'group_id' => $g1 ) ) );
}
/**
* @ticket BP7610
*/
public function test_user_cannot_join_public_group_if_already_member_even_superadmin() {
if ( ! is_multisite() ) {
$this->markTestSkipped();
}
$g1 = $this->factory->group->create( array(
'status' => 'public'
) );
$u1 = $this->factory->user->create();
$this->add_user_to_group( $u1, $g1 );
// Grant super admin status.
grant_super_admin( $u1 );
$this->assertFalse( bp_user_can( $u1, 'groups_join_group', array( 'group_id' => $g1 ) ) );
}
public function test_user_cannot_join_private_group() {
$g1 = $this->factory->group->create( array(
'status' => 'private'
) );
$u1 = $this->factory->user->create();
$this->assertFalse( bp_user_can( $u1, 'groups_join_group', array( 'group_id' => $g1 ) ) );
}
public function test_user_cannot_join_group_if_banned() {
$g1 = $this->factory->group->create( array(
'status' => 'public'
) );
$u1 = $this->factory->user->create();
$this->add_user_to_group( $u1, $g1 );
buddypress()->is_item_admin = true;
groups_ban_member( $u1, $g1 );
$this->assertFalse( bp_user_can( $u1, 'groups_join_group', array( 'group_id' => $g1 ) ) );
}
public function test_user_cannot_request_membership_in_public_group() {
$g1 = $this->factory->group->create( array(
'status' => 'public'
) );
$u1 = $this->factory->user->create();
$this->assertFalse( bp_user_can( $u1, 'groups_request_membership', array( 'group_id' => $g1 ) ) );
}
public function test_user_can_request_membership_in_private_group() {
$g1 = $this->factory->group->create( array(
'status' => 'private'
) );
$u1 = $this->factory->user->create();
$this->assertTrue( bp_user_can( $u1, 'groups_request_membership', array( 'group_id' => $g1 ) ) );
}
public function test_user_cannot_request_membership_in_hidden_group() {
$g1 = $this->factory->group->create( array(
'status' => 'hidden'
) );
$u1 = $this->factory->user->create();
$this->assertFalse( bp_user_can( $u1, 'groups_request_membership', array( 'group_id' => $g1 ) ) );
}
public function test_user_cannot_request_membership_in_private_group_if_already_member() {
$g1 = $this->factory->group->create( array(
'status' => 'private'
) );
$u1 = $this->factory->user->create();
$this->add_user_to_group( $u1, $g1 );
$this->assertFalse( bp_user_can( $u1, 'groups_request_membership', array( 'group_id' => $g1 ) ) );
}
public function test_user_cannot_request_membership_in_private_group_if_already_requested() {
$g1 = $this->factory->group->create( array(
'status' => 'private'
) );
$u1 = $this->factory->user->create();
groups_send_membership_request( $u1, $g1 );
$this->assertFalse( bp_user_can( $u1, 'groups_request_membership', array( 'group_id' => $g1 ) ) );
}
public function test_user_cannot_request_membership_in_private_group_if_banned() {
$g1 = $this->factory->group->create( array(
'status' => 'private'
) );
$u1 = $this->factory->user->create();
$this->add_user_to_group( $u1, $g1 );
buddypress()->is_item_admin = true;
groups_ban_member( $u1, $g1 );
$this->assertFalse( bp_user_can( $u1, 'groups_request_membership', array( 'group_id' => $g1 ) ) );
}
public function test_user_cannot_receive_invitation_to_public_group() {
$g1 = $this->factory->group->create( array(
'status' => 'public'
) );
$u1 = $this->factory->user->create();
$this->assertFalse( bp_user_can( $u1, 'groups_receive_invitation', array( 'group_id' => $g1 ) ) );
}
public function test_user_can_receive_invitation_to_private_group() {
$g1 = $this->factory->group->create( array(
'status' => 'private'
) );
$u1 = $this->factory->user->create();
$this->assertTrue( bp_user_can( $u1, 'groups_receive_invitation', array( 'group_id' => $g1 ) ) );
}
public function test_user_cannot_receive_invitation_to_private_group_if_already_member() {
$g1 = $this->factory->group->create( array(
'status' => 'private'
) );
$u1 = $this->factory->user->create();
$this->add_user_to_group( $u1, $g1 );
$this->assertFalse( bp_user_can( $u1, 'groups_receive_invitation', array( 'group_id' => $g1 ) ) );
}
/**
* @ticket BP7610
*/
public function test_user_cannot_receive_invitation_to_private_group_if_already_member_even_superadmin() {
if ( ! is_multisite() ) {
$this->markTestSkipped();
}
$g1 = $this->factory->group->create( array(
'status' => 'private'
) );
$u1 = $this->factory->user->create();
$this->add_user_to_group( $u1, $g1 );
// Grant super admin status.
grant_super_admin( $u1 );
$this->assertFalse( bp_user_can( $u1, 'groups_receive_invitation', array( 'group_id' => $g1 ) ) );
}
public function test_user_cannot_receive_invitation_to_private_group_if_banned() {
$g1 = $this->factory->group->create( array(
'status' => 'private'
) );
$u1 = $this->factory->user->create();
$this->add_user_to_group( $u1, $g1 );
buddypress()->is_item_admin = true;
groups_ban_member( $u1, $g1 );
$this->assertFalse( bp_user_can( $u1, 'groups_receive_invitation', array( 'group_id' => $g1 ) ) );
}
public function test_user_can_receive_invitation_to_hidden_group() {
$g1 = $this->factory->group->create( array(
'status' => 'hidden'
) );
$u1 = $this->factory->user->create();
$this->assertTrue( bp_user_can( $u1, 'groups_receive_invitation', array( 'group_id' => $g1 ) ) );
}
public function test_user_cannot_send_invitation_to_public_group_if_not_a_member() {
$g1 = $this->factory->group->create( array(
'status' => 'public'
) );
$u1 = $this->factory->user->create();
$this->assertFalse( bp_user_can( $u1, 'groups_send_invitation', array( 'group_id' => $g1 ) ) );
}
public function test_user_cannot_send_invitation_to_private_group_if_not_a_member() {
$g1 = $this->factory->group->create( array(
'status' => 'private'
) );
$u1 = $this->factory->user->create();
$this->assertFalse( bp_user_can( $u1, 'groups_send_invitation', array( 'group_id' => $g1 ) ) );
}
public function test_user_cannot_send_invitation_to_private_group_if_banned() {
$g1 = $this->factory->group->create( array(
'status' => 'private'
) );
groups_update_groupmeta( $g1, 'invite_status', 'members' );
$u1 = $this->factory->user->create();
$this->add_user_to_group( $u1, $g1 );
buddypress()->is_item_admin = true;
groups_ban_member( $u1, $g1 );
$this->assertFalse( bp_user_can( $u1, 'groups_send_invitation', array( 'group_id' => $g1 ) ) );
}
public function test_user_can_send_invitation_to_private_group_if_a_member() {
$g1 = $this->factory->group->create( array(
'status' => 'private',
) );
groups_update_groupmeta( $g1, 'invite_status', 'members' );
$u1 = $this->factory->user->create();
$this->add_user_to_group( $u1, $g1 );
$this->assertTrue( bp_user_can( $u1, 'groups_send_invitation', array( 'group_id' => $g1 ) ) );
}
public function test_user_can_send_invitation_to_hidden_group_if_a_member() {
$g1 = $this->factory->group->create( array(
'status' => 'hidden'
) );
$u1 = $this->factory->user->create();
$u1 = $this->factory->user->create();
$this->add_user_to_group( $u1, $g1 );
$this->assertTrue( bp_user_can( $u1, 'groups_send_invitation', array( 'group_id' => $g1 ) ) );
}
public function test_user_can_access_public_group_even_when_not_logged_in() {
$g1 = $this->factory->group->create( array(
'status' => 'public'
) );
$old_user = get_current_user_id();
$this->set_current_user( 0 );
$this->assertTrue( bp_user_can( 0, 'groups_access_group', array( 'group_id' => $g1 ) ) );
$this->set_current_user( $old_user );
}
public function test_user_can_access_public_group_if_not_a_member() {
$g1 = $this->factory->group->create( array(
'status' => 'public'
) );
$u1 = $this->factory->user->create();
$this->assertTrue( bp_user_can( $u1, 'groups_access_group', array( 'group_id' => $g1 ) ) );
}
public function test_user_cannot_access_private_group_if_not_logged_in() {
$g1 = $this->factory->group->create( array(
'status' => 'private'
) );
$old_user = get_current_user_id();
$this->set_current_user( 0 );
$this->assertFalse( bp_user_can( 0, 'groups_access_group', array( 'group_id' => $g1 ) ) );
$this->set_current_user( $old_user );
}
public function test_user_cannot_access_private_group_if_not_a_member() {
$g1 = $this->factory->group->create( array(
'status' => 'private'
) );
$u1 = $this->factory->user->create();
$this->assertFalse( bp_user_can( $u1, 'groups_access_group', array( 'group_id' => $g1 ) ) );
}
public function test_user_can_access_private_group_if_a_member() {
$g1 = $this->factory->group->create( array(
'status' => 'private'
) );
$u1 = $this->factory->user->create();
$this->add_user_to_group( $u1, $g1 );
$this->assertTrue( bp_user_can( $u1, 'groups_access_group', array( 'group_id' => $g1 ) ) );
}
public function test_user_cannot_access_hidden_group_if_not_logged_in() {
$g1 = $this->factory->group->create( array(
'status' => 'hidden'
) );
$old_user = get_current_user_id();
$this->set_current_user( 0 );
$this->assertFalse( bp_user_can( 0, 'groups_access_group', array( 'group_id' => $g1 ) ) );
$this->set_current_user( $old_user );
}
public function test_user_cannot_access_hidden_group_if_not_a_member() {
$g1 = $this->factory->group->create( array(
'status' => 'hidden'
) );
$u1 = $this->factory->user->create();
$this->assertFalse( bp_user_can( $u1, 'groups_access_group', array( 'group_id' => $g1 ) ) );
}
public function test_user_can_access_hidden_group_if_a_member() {
$g1 = $this->factory->group->create( array(
'status' => 'hidden'
) );
$u1 = $this->factory->user->create();
$this->add_user_to_group( $u1, $g1 );
$this->assertTrue( bp_user_can( $u1, 'groups_access_group', array( 'group_id' => $g1 ) ) );
}
public function test_user_can_see_public_group_even_when_not_logged_in() {
$g1 = $this->factory->group->create( array(
'status' => 'public'
) );
$old_user = get_current_user_id();
$this->set_current_user( 0 );
$this->assertTrue( bp_user_can( 0, 'groups_see_group', array( 'group_id' => $g1 ) ) );
$this->set_current_user( $old_user );
}
public function test_user_can_see_public_group() {
$g1 = $this->factory->group->create( array(
'status' => 'public'
) );
$u1 = $this->factory->user->create();
$this->assertTrue( bp_user_can( $u1, 'groups_see_group', array( 'group_id' => $g1 ) ) );
}
public function test_user_can_see_private_group_even_when_not_logged_in() {
$g1 = $this->factory->group->create( array(
'status' => 'private'
) );
$old_user = get_current_user_id();
$this->set_current_user( 0 );
$this->assertTrue( bp_user_can( 0, 'groups_see_group', array( 'group_id' => $g1 ) ) );
$this->set_current_user( $old_user );
}
public function test_user_can_see_private_group() {
$g1 = $this->factory->group->create( array(
'status' => 'private'
) );
$u1 = $this->factory->user->create();
$this->assertTrue( bp_user_can( $u1, 'groups_see_group', array( 'group_id' => $g1 ) ) );
}
public function test_user_cannot_see_hidden_group_if_not_logged_in() {
$g1 = $this->factory->group->create( array(
'status' => 'hidden'
) );
$old_user = get_current_user_id();
$this->set_current_user( 0 );
$this->assertFalse( bp_user_can( 0, 'groups_see_group', array( 'group_id' => $g1 ) ) );
$this->set_current_user( $old_user );
}
public function test_user_cannot_see_hidden_group_if_not_a_member() {
$g1 = $this->factory->group->create( array(
'status' => 'hidden'
) );
$u1 = $this->factory->user->create();
$this->assertFalse( bp_user_can( $u1, 'groups_see_group', array( 'group_id' => $g1 ) ) );
}
public function test_user_can_see_hidden_group_if_member() {
$g1 = $this->factory->group->create( array(
'status' => 'hidden'
) );
$u1 = $this->factory->user->create();
$this->add_user_to_group( $u1, $g1 );
$this->assertTrue( bp_user_can( $u1, 'groups_see_group', array( 'group_id' => $g1 ) ) );
}
/**
* @ticket BP7610
*/
public function test_user_can_groups_request_membership_for_super_admin() {
if ( ! is_multisite() ) {
$this->markTestSkipped();
}
$g1 = $this->factory->group->create( array(
'status' => 'public'
) );
$u1 = $this->factory->user->create();
$this->add_user_to_group( $u1, $g1 );
// Grant super admin status.
grant_super_admin( $u1 );
// Assert false since public groups shouldn't be able to request membership.
$this->assertFalse( bp_user_can( $u1, 'groups_request_membership', array( 'group_id' => $g1 ) ) );
}
}