wordpress-develop/tests/phpunit/tests/multisite/getIdFromBlogname.php
John Blackbourn e8435082d6 Build/Test Tools: Standardise the name, signature, and usage of the wpSetUpBeforeClass() method that's used in test classes.
This brings consistency to this often-used method, and allows IDEs to provide help to developers when using its `$factory` parameter.

See #51344


git-svn-id: https://develop.svn.wordpress.org/trunk@49603 602fd350-edb4-49c9-b593-d223f7449a82
2020-11-15 13:59:32 +00:00

143 lines
3.6 KiB
PHP

<?php
if ( is_multisite() ) :
/**
* Test get_id_from_blogname() in multisite.
*
* @group blogname
* @group ms-site
* @group multisite
*/
class Tests_Multisite_Get_Id_From_Blogname extends WP_UnitTestCase {
protected static $network_ids;
protected static $site_ids;
public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
self::$network_ids = array(
'wordpress.org/' => array(
'domain' => 'wordpress.org',
'path' => '/',
),
'www.wordpress.net/' => array(
'domain' => 'www.wordpress.net',
'path' => '/',
),
);
foreach ( self::$network_ids as &$id ) {
$id = $factory->network->create( $id );
}
unset( $id );
self::$site_ids = array(
'wordpress.org/' => array(
'domain' => 'wordpress.org',
'path' => '/',
'network_id' => self::$network_ids['wordpress.org/'],
),
'foo.wordpress.org/' => array(
'domain' => 'foo.wordpress.org',
'path' => '/',
'network_id' => self::$network_ids['wordpress.org/'],
),
'wordpress.org/foo/' => array(
'domain' => 'wordpress.org',
'path' => '/foo/',
'network_id' => self::$network_ids['wordpress.org/'],
),
'www.wordpress.net/' => array(
'domain' => 'www.wordpress.net',
'path' => '/',
'network_id' => self::$network_ids['www.wordpress.net/'],
),
'foo.wordpress.net/' => array(
'domain' => 'foo.wordpress.net',
'path' => '/',
'network_id' => self::$network_ids['www.wordpress.net/'],
),
'www.wordpress.net/foo/' => array(
'domain' => 'www.wordpress.net',
'path' => '/foo/',
'network_id' => self::$network_ids['www.wordpress.net/'],
),
);
foreach ( self::$site_ids as &$id ) {
$id = $factory->blog->create( $id );
}
unset( $id );
}
public static function wpTearDownAfterClass() {
global $wpdb;
foreach ( self::$site_ids as $id ) {
wp_delete_site( $id );
}
foreach ( self::$network_ids as $id ) {
$wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->sitemeta} WHERE site_id = %d", $id ) );
$wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->site} WHERE id= %d", $id ) );
}
wp_update_network_site_counts();
}
/**
* @ticket 34450
*/
public function test_get_id_from_blogname_no_www() {
global $current_site;
$original_network = $current_site;
$current_site = get_network( self::$network_ids['wordpress.org/'] );
if ( is_subdomain_install() ) {
$expected = self::$site_ids['foo.wordpress.org/'];
} else {
$expected = self::$site_ids['wordpress.org/foo/'];
}
$result = get_id_from_blogname( 'foo' );
$current_site = $original_network;
$this->assertSame( $expected, $result );
}
/**
* @ticket 34450
*/
public function test_get_id_from_blogname_www() {
global $current_site;
$original_network = $current_site;
$current_site = get_network( self::$network_ids['www.wordpress.net/'] );
if ( is_subdomain_install() ) {
$expected = self::$site_ids['foo.wordpress.net/'];
} else {
$expected = self::$site_ids['www.wordpress.net/foo/'];
}
$result = get_id_from_blogname( 'foo' );
$current_site = $original_network;
$this->assertSame( $expected, $result );
}
public function test_get_id_from_blogname_invalid_slug() {
global $current_site;
$original_network = $current_site;
$current_site = get_network( self::$network_ids['wordpress.org/'] );
$result = get_id_from_blogname( 'bar' );
$current_site = $original_network;
$this->assertNull( $result );
}
}
endif;