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/routing/groups.php
Boone B Gorges 0ed016254c Use static factory method throughout PHPUnit tests.
See #7620.

git-svn-id: https://buddypress.svn.wordpress.org/trunk@11737 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
2017-11-03 19:44:10 +00:00

127 lines
3.7 KiB
PHP

<?php
/**
* @group groups
* @group routing
*/
class BP_Tests_Routing_Groups extends BP_UnitTestCase {
protected $old_current_user = 0;
public function setUp() {
parent::setUp();
buddypress()->members->types = array();
$this->old_current_user = get_current_user_id();
$this->set_current_user( self::factory()->user->create( array( 'role' => 'subscriber' ) ) );
}
public function tearDown() {
parent::tearDown();
$this->set_current_user( $this->old_current_user );
}
function test_member_groups() {
$this->go_to( bp_core_get_user_domain( bp_loggedin_user_id() ) . bp_get_groups_slug() );
$this->assertTrue( bp_is_user_groups() );
}
function test_member_groups_invitations() {
$this->go_to( bp_core_get_user_domain( bp_loggedin_user_id() ) . bp_get_groups_slug() . '/invites' );
$this->assertTrue( bp_is_user_groups() && bp_is_current_action( 'invites' ) );
}
/**
* @group group_types
*/
public function test_group_directory_with_type() {
bp_groups_register_group_type( 'foo' );
$this->go_to( bp_get_groups_directory_permalink() . 'type/foo/' );
$this->assertTrue( bp_is_groups_component() && ! bp_is_group() && bp_is_current_action( bp_get_groups_group_type_base() ) && bp_is_action_variable( 'foo', 0 ) );
}
/**
* @group group_types
*/
public function test_group_directory_with_type_that_has_custom_directory_slug() {
bp_groups_register_group_type( 'foo', array( 'has_directory' => 'foos' ) );
$this->go_to( bp_get_groups_directory_permalink() . 'type/foos/' );
$this->assertTrue( bp_is_groups_component() && ! bp_is_group() && bp_is_current_action( bp_get_groups_group_type_base() ) && bp_is_action_variable( 'foos', 0 ) );
}
/**
* @group group_types
*/
public function test_group_directory_should_404_for_group_types_that_have_no_directory() {
bp_register_member_type( 'foo', array( 'has_directory' => false ) );
$this->go_to( bp_get_members_directory_permalink() . 'type/foo/' );
$this->assertTrue( is_404() );
}
/**
* @group group_types
*/
public function test_group_directory_should_404_for_invalid_group_types() {
$this->go_to( bp_get_members_directory_permalink() . 'type/foo/' );
$this->assertTrue( is_404() );
}
/**
* @group group_previous_slug
*/
public function test_group_previous_slug_current_slug_should_resolve() {
$g1 = self::factory()->group->create( array(
'slug' => 'george',
) );
groups_edit_base_group_details( array(
'group_id' => $g1,
'slug' => 'ralph',
) );
$this->go_to( bp_get_groups_directory_permalink() . 'ralph' );
$this->assertEquals( $g1, bp_get_current_group_id() );
}
/**
* @group group_previous_slug
*/
public function test_group_previous_slug_should_resolve() {
$g1 = self::factory()->group->create( array(
'slug' => 'george',
) );
groups_edit_base_group_details( array(
'group_id' => $g1,
'slug' => 'sam!',
'notify_members' => false,
) );
$this->go_to( bp_get_groups_directory_permalink() . 'george' );
$this->assertEquals( $g1, bp_get_current_group_id() );
}
/**
* @group group_previous_slug
*/
public function test_group_previous_slug_most_recent_takes_precedence() {
$g1 = self::factory()->group->create( array(
'slug' => 'george',
) );
groups_edit_base_group_details( array(
'group_id' => $g1,
'slug' => 'ralph',
'notify_members' => false,
) );
$g2 = self::factory()->group->create( array(
'slug' => 'george',
) );
groups_edit_base_group_details( array(
'group_id' => $g2,
'slug' => 'sam',
'notify_members' => false,
) );
$this->go_to( bp_get_groups_directory_permalink() . 'george' );
$this->assertEquals( $g2, bp_get_current_group_id() );
}
}