mirror of
https://github.com/buddypress/buddypress.git
synced 2026-07-22 20:56:55 +08:00
- Update PHPUnit related npm scripts for `wp-env` 9.0.0. - Create `test_multi`: a new composer script to run Multisite Unit tests. - Remove our composer dependency to `wp-phpunit/wp-phpunit`. - Update the PHPUnit tests suite so that it stops using `wp-phpunit/wp-phpunit` when it's within the `wp-env` context. - Remove no more used PHPUnit specific configuration files. Fixes #9053 Closes https://github.com/buddypress/buddypress/pull/211 git-svn-id: https://buddypress.svn.wordpress.org/trunk@13720 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
123 lines
3.8 KiB
PHP
123 lines
3.8 KiB
PHP
<?php
|
|
/**
|
|
* @group members
|
|
* @group routing
|
|
*/
|
|
class BP_Tests_Routing_Members extends BP_UnitTestCase {
|
|
protected $old_current_user = 0;
|
|
protected $permalink_structure = '';
|
|
|
|
public function set_up() {
|
|
parent::set_up();
|
|
|
|
buddypress()->members->types = array();
|
|
$this->old_current_user = get_current_user_id();
|
|
$this->permalink_structure = get_option( 'permalink_structure', '' );
|
|
$this->set_current_user( self::factory()->user->create( array( 'user_login' => 'paulgibbs', 'role' => 'subscriber' ) ) );
|
|
}
|
|
|
|
public function tear_down() {
|
|
$this->set_current_user( $this->old_current_user );
|
|
$this->set_permalink_structure( $this->permalink_structure );
|
|
parent::tear_down();
|
|
}
|
|
|
|
function test_members_directory() {
|
|
$this->set_permalink_structure( '/%postname%/' );
|
|
$this->go_to( bp_get_members_directory_permalink() );
|
|
|
|
$pages = bp_core_get_directory_pages();
|
|
$component_id = bp_current_component();
|
|
|
|
$this->assertEquals( bp_get_members_root_slug(), $pages->{$component_id}->slug );
|
|
}
|
|
|
|
function test_member_permalink() {
|
|
$this->set_permalink_structure( '/%postname%/' );
|
|
$this->go_to( bp_members_get_user_url( bp_loggedin_user_id() ) );
|
|
$this->assertTrue( bp_is_my_profile() );
|
|
}
|
|
|
|
/**
|
|
* @ticket BP6286
|
|
* @group member_types
|
|
*/
|
|
public function test_member_directory_with_member_type() {
|
|
$this->set_permalink_structure( '/%postname%/' );
|
|
bp_register_member_type( 'foo' );
|
|
$url = bp_get_member_type_directory_permalink( 'foo' );
|
|
$this->go_to( $url );
|
|
$this->assertTrue( bp_is_members_component() );
|
|
}
|
|
|
|
/**
|
|
* @ticket BP6286
|
|
* @group member_types
|
|
*/
|
|
public function test_member_directory_with_member_type_should_obey_filtered_type_slug() {
|
|
$this->set_permalink_structure( '/%postname%/' );
|
|
bp_register_member_type( 'foo' );
|
|
|
|
add_filter( 'bp_members_member_type_base', array( $this, 'filter_member_type_base' ) );
|
|
|
|
$url = bp_get_member_type_directory_permalink( 'foo' );
|
|
|
|
remove_filter( 'bp_members_member_type_base', array( $this, 'filter_member_type_base' ) );
|
|
|
|
$this->assertSame( $url, 'http://' . trailingslashit( WP_TESTS_DOMAIN ) . 'members/bp-member-type/foo/' );
|
|
}
|
|
|
|
public function filter_member_type_base( $base ) {
|
|
return 'bp-member-type';
|
|
}
|
|
|
|
/**
|
|
* @ticket BP6286
|
|
* @group member_types
|
|
*/
|
|
public function test_member_directory_with_member_type_that_has_custom_directory_slug() {
|
|
$this->set_permalink_structure( '/%postname%/' );
|
|
bp_register_member_type( 'foo', array( 'has_directory' => 'foos' ) );
|
|
$this->go_to( bp_get_members_directory_permalink() . 'type/foos/' );
|
|
$this->assertTrue( bp_is_members_component() );
|
|
}
|
|
|
|
/**
|
|
* @ticket BP6286
|
|
* @group member_types
|
|
*/
|
|
public function test_member_directory_with_member_type_should_be_overridden_by_member_with_same_nicename() {
|
|
$this->set_permalink_structure( '/%postname%/' );
|
|
$u = self::factory()->user->create( array( 'user_nicename' => 'foo' ) );
|
|
bp_register_member_type( 'foo' );
|
|
$this->go_to( bp_get_members_directory_permalink() . 'type/foo/' );
|
|
|
|
// Remove the following lines when you implement this test.
|
|
$this->markTestIncomplete(
|
|
'This test has not been implemented yet.'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @ticket BP6286
|
|
* @group member_types
|
|
*/
|
|
public function test_member_directory_should_404_for_member_types_that_have_no_directory() {
|
|
$this->set_permalink_structure( '/%postname%/' );
|
|
bp_register_member_type( 'foo', array( 'has_directory' => false ) );
|
|
$this->go_to( bp_get_members_directory_permalink() . 'type/foo/' );
|
|
$this->assertTrue( is_404() );
|
|
}
|
|
|
|
/**
|
|
* @ticket BP6325
|
|
*/
|
|
function test_members_shortlink_redirector() {
|
|
$this->set_permalink_structure( '/%postname%/' );
|
|
$shortlink_member_slug = 'me';
|
|
|
|
$this->go_to( bp_get_members_directory_permalink() . $shortlink_member_slug );
|
|
|
|
$this->assertSame( get_current_user_id(), bp_displayed_user_id() );
|
|
}
|
|
}
|