From 764a31aaa94097561ed1b121d7759630e5743cd8 Mon Sep 17 00:00:00 2001 From: Jeremy Felt Date: Tue, 25 Oct 2016 18:02:08 +0000 Subject: [PATCH] Multisite: Introduce tests for `get_active_blog_for_user()`. Props flixos90. See #38355. git-svn-id: https://develop.svn.wordpress.org/trunk@38913 602fd350-edb4-49c9-b593-d223f7449a82 --- .../tests/user/getActiveBlogForUser.php | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 tests/phpunit/tests/user/getActiveBlogForUser.php diff --git a/tests/phpunit/tests/user/getActiveBlogForUser.php b/tests/phpunit/tests/user/getActiveBlogForUser.php new file mode 100644 index 0000000000..839c3119d7 --- /dev/null +++ b/tests/phpunit/tests/user/getActiveBlogForUser.php @@ -0,0 +1,99 @@ +user->create(); + } + + public static function wpTearDownAfterClass() { + wpmu_delete_user( self::$user_id ); + + global $wp_rewrite; + $wp_rewrite->init(); + } + + /** + * @ticket 38355 + */ + public function test_get_active_blog_for_user_with_no_sites() { + $current_site_id = get_current_blog_id(); + + remove_user_from_blog( self::$user_id, $current_site_id ); + + $result = get_active_blog_for_user( self::$user_id ); + + $this->assertNull( $result ); + } + + /** + * @ticket 38355 + */ + public function test_get_active_blog_for_user_with_primary_site() { + $site_id_one = self::factory()->blog->create( array( 'user_id' => self::$user_id ) ); + $site_id_two = self::factory()->blog->create( array( 'user_id' => self::$user_id ) ); + + $sites = get_blogs_of_user( self::$user_id ); + $site_ids = array_keys( $sites ); + $primary_site_id = $site_ids[1]; + + update_user_meta( self::$user_id, 'primary_blog', $primary_site_id ); + + $result = get_active_blog_for_user( self::$user_id ); + + wpmu_delete_blog( $site_id_one, true ); + wpmu_delete_blog( $site_id_two, true ); + + $this->assertEquals( $primary_site_id, $result->id ); + } + + /** + * @ticket 38355 + */ + public function test_get_active_blog_for_user_without_primary_site() { + $sites = get_blogs_of_user( self::$user_id ); + $site_ids = array_keys( $sites ); + $primary_site_id = $site_ids[0]; + + delete_user_meta( self::$user_id, 'primary_blog' ); + + $result = get_active_blog_for_user( self::$user_id ); + + wpmu_delete_blog( $primary_site_id, true ); + + $this->assertEquals( $primary_site_id, $result->id ); + } + + /** + * @ticket 38355 + */ + public function test_get_active_blog_for_user_with_spam_site() { + $current_site_id = get_current_blog_id(); + + $site_id = self::factory()->blog->create( array( + 'user_id' => self::$user_id, + 'meta' => array( 'spam' => 1 ), + ) ); + + add_user_to_blog( $site_id, self::$user_id, 'subscriber' ); + update_user_meta( self::$user_id, 'primary_blog', $site_id ); + + $result = get_active_blog_for_user( self::$user_id ); + + wpmu_delete_blog( $site_id, true ); + + $this->assertEquals( $current_site_id, $result->id ); + } +} + +endif ;