From 569a80e4887a183dfeb62b5eb23fc7b45fc8dc60 Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Thu, 2 Oct 2014 21:47:25 +0000 Subject: [PATCH] Add unit tests for get_blog_details(). props jeremyfelt. fixes #29845. git-svn-id: https://develop.svn.wordpress.org/trunk@29824 602fd350-edb4-49c9-b593-d223f7449a82 --- tests/phpunit/tests/ms.php | 76 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/tests/phpunit/tests/ms.php b/tests/phpunit/tests/ms.php index 88d658f857..0bc9a60fd7 100644 --- a/tests/phpunit/tests/ms.php +++ b/tests/phpunit/tests/ms.php @@ -1434,6 +1434,82 @@ class Tests_MS extends WP_UnitTestCase { $this->assertEquals( 'bar', $details->blogname ); } + /** + * @ticket 29845 + */ + function test_get_blog_details() { + $network_ids = array( + 'wordpress.org/' => array( 'domain' => 'wordpress.org', 'path' => '/' ), + 'make.wordpress.org/' => array( 'domain' => 'make.wordpress.org', 'path' => '/' ), + ); + + foreach ( $network_ids as &$id ) { + $id = $this->factory->network->create( $id ); + } + unset( $id ); + + $ids = array( + 'wordpress.org/' => array( 'domain' => 'wordpress.org', 'path' => '/', 'title' => 'Test 1', 'site_id' => $network_ids['wordpress.org/'] ), + 'wordpress.org/foo/' => array( 'domain' => 'wordpress.org', 'path' => '/foo/', 'title' => 'Test 2', 'site_id' => $network_ids['wordpress.org/'] ), + 'wordpress.org/foo/bar/' => array( 'domain' => 'wordpress.org', 'path' => '/foo/bar/', 'title' => 'Test 3', 'site_id' => $network_ids['wordpress.org/'] ), + 'make.wordpress.org/' => array( 'domain' => 'make.wordpress.org', 'path' => '/', 'title' => 'Test 4', 'site_id' => $network_ids['make.wordpress.org/'] ), + 'make.wordpress.org/foo/' => array( 'domain' => 'make.wordpress.org', 'path' => '/foo/', 'title' => 'Test 5', 'site_id' => $network_ids['make.wordpress.org/'] ), + ); + + foreach ( $ids as &$id ) { + $id = $this->factory->blog->create( $id ); + } + unset( $id ); + + // Retrieve site details by passing only a blog ID. + $site = get_blog_details( $ids['wordpress.org/'] ); + $this->assertEquals( $ids['wordpress.org/'], $site->blog_id ); + $this->assertEquals( 'Test 1', $site->blogname ); + + $site = get_blog_details( $ids['wordpress.org/foo/'] ); + $this->assertEquals( $ids['wordpress.org/foo/'], $site->blog_id ); + $this->assertEquals( 'Test 2', $site->blogname ); + + $site = get_blog_details( 999 ); + $this->assertFalse( $site ); + + // Retrieve site details by passing an array containing blog_id. + $site = get_blog_details( array( 'blog_id' => $ids['wordpress.org/foo/bar/'] ) ); + $this->assertEquals( $ids['wordpress.org/foo/bar/'], $site->blog_id ); + $this->assertEquals( 'Test 3', $site->blogname ); + + $site = get_blog_details( array( 'blog_id' => $ids['make.wordpress.org/'] ) ); + $this->assertEquals( $ids['make.wordpress.org/'], $site->blog_id ); + $this->assertEquals( 'Test 4', $site->blogname ); + + $site = get_blog_details( array( 'blog_id' => 999 ) ); + $this->assertFalse( $site ); + + // Retrieve site details by passing an array containing domain and path. + $site = get_blog_details( array( 'domain' => 'wordpress.org', 'path' => '/' ) ); + $this->assertEquals( $ids['wordpress.org/'], $site->blog_id ); + $this->assertEquals( 'Test 1', $site->blogname ); + + $site = get_blog_details( array( 'domain' => 'wordpress.org', 'path' => '/foo/' ) ); + $this->assertEquals( $ids['wordpress.org/foo/'], $site->blog_id ); + $this->assertEquals( 'Test 2', $site->blogname ); + + $site = get_blog_details( array( 'domain' => 'wordpress.org', 'path' => '/foo/bar/' ) ); + $this->assertEquals( $ids['wordpress.org/foo/bar/'], $site->blog_id ); + $this->assertEquals( 'Test 3', $site->blogname ); + + $site = get_blog_details( array( 'domain' => 'make.wordpress.org', 'path' => '/' ) ); + $this->assertEquals( $ids['make.wordpress.org/'], $site->blog_id ); + $this->assertEquals( 'Test 4', $site->blogname ); + + $site = get_blog_details( array( 'domain' => 'make.wordpress.org', 'path' => '/foo/' ) ); + $this->assertEquals( $ids['make.wordpress.org/foo/'], $site->blog_id ); + $this->assertEquals( 'Test 5', $site->blogname ); + + $site = get_blog_details( array( 'domain' => 'wordpress.org', 'path' => '/zxy/' ) ); + $this->assertFalse( $site ); + } + /** * @ticket 27884 */