Changeset 42343 for trunk/tests/phpunit/tests/multisite/getBlogDetails.php
- Timestamp:
- 11/30/2017 11:09:33 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/phpunit/tests/multisite/getBlogDetails.php
r40317 r42343 3 3 if ( is_multisite() ) : 4 4 5 /** 6 * @ticket 29845 7 * @group ms-site 8 * @group multisite 9 */ 10 class Tests_Multisite_Get_Blog_Details extends WP_UnitTestCase { 11 protected static $network_ids; 12 protected static $site_ids; 13 14 public static function wpSetUpBeforeClass( $factory ) { 15 self::$site_ids = array( 16 WP_TESTS_DOMAIN . '/foo/' => array( 'domain' => WP_TESTS_DOMAIN, 'path' => '/foo/'), 17 'foo.' . WP_TESTS_DOMAIN . '/' => array( 'domain' => 'foo.' . WP_TESTS_DOMAIN, 'path' => '/' ), 18 'wordpress.org/' => array( 'domain' => 'wordpress.org', 'path' => '/' ), 19 ); 20 21 foreach ( self::$site_ids as &$id ) { 22 $id = $factory->blog->create( $id ); 23 } 24 unset( $id ); 5 /** 6 * @ticket 29845 7 * @group ms-site 8 * @group multisite 9 */ 10 class Tests_Multisite_Get_Blog_Details extends WP_UnitTestCase { 11 protected static $network_ids; 12 protected static $site_ids; 13 14 public static function wpSetUpBeforeClass( $factory ) { 15 self::$site_ids = array( 16 WP_TESTS_DOMAIN . '/foo/' => array( 17 'domain' => WP_TESTS_DOMAIN, 18 'path' => '/foo/', 19 ), 20 'foo.' . WP_TESTS_DOMAIN . '/' => array( 21 'domain' => 'foo.' . WP_TESTS_DOMAIN, 22 'path' => '/', 23 ), 24 'wordpress.org/' => array( 25 'domain' => 'wordpress.org', 26 'path' => '/', 27 ), 28 ); 29 30 foreach ( self::$site_ids as &$id ) { 31 $id = $factory->blog->create( $id ); 32 } 33 unset( $id ); 34 } 35 36 public static function wpTearDownAfterClass() { 37 foreach ( self::$site_ids as $id ) { 38 wpmu_delete_blog( $id, true ); 39 } 40 41 wp_update_network_site_counts(); 42 } 43 44 public function test_get_blog_details_with_no_arguments_returns_current_site() { 45 $site = get_blog_details(); 46 $this->assertEquals( get_current_blog_id(), $site->blog_id ); 47 } 48 49 public function test_get_blog_details_with_site_name_string_subdirectory() { 50 if ( is_subdomain_install() ) { 51 $this->markTestSkipped( 'This test is only valid in a subdirectory configuration.' ); 52 } 53 54 $site = get_blog_details( 'foo' ); 55 $this->assertEquals( self::$site_ids[ WP_TESTS_DOMAIN . '/foo/' ], $site->blog_id ); 56 } 57 58 public function test_get_blog_details_with_site_name_string_subdomain() { 59 if ( ! is_subdomain_install() ) { 60 $this->markTestSkipped( 'This test is only valid in a subdomain configuration.' ); 61 } 62 63 $site = get_blog_details( 'foo' ); 64 $this->assertEquals( self::$site_ids[ 'foo.' . WP_TESTS_DOMAIN . '/' ], $site->blog_id ); 65 } 66 67 public function test_get_blog_details_with_invalid_site_name_string() { 68 $site = get_blog_details( 'invalid' ); 69 $this->assertFalse( $site ); 70 } 71 72 public function test_get_blog_details_with_site_id_int() { 73 $site = get_blog_details( self::$site_ids['wordpress.org/'] ); 74 $this->assertEquals( self::$site_ids['wordpress.org/'], $site->blog_id ); 75 } 76 77 public function test_get_blog_details_with_invalid_site_id_int() { 78 $site = get_blog_details( 99999 ); 79 $this->assertFalse( $site ); 80 } 81 82 public function test_get_blog_details_with_blog_id_in_fields() { 83 $site = get_blog_details( array( 'blog_id' => self::$site_ids['wordpress.org/'] ) ); 84 $this->assertEquals( self::$site_ids['wordpress.org/'], $site->blog_id ); 85 } 86 87 public function test_get_blog_details_with_invalid_blog_id_in_fields() { 88 $site = get_blog_details( array( 'blog_id' => 88888 ) ); 89 $this->assertFalse( $site ); 90 } 91 92 public function test_get_blog_details_with_domain_and_path_in_fields() { 93 $site = get_blog_details( 94 array( 95 'domain' => 'wordpress.org', 96 'path' => '/', 97 ) 98 ); 99 $this->assertEquals( self::$site_ids['wordpress.org/'], $site->blog_id ); 100 } 101 102 public function test_get_blog_details_with_domain_and_invalid_path_in_fields() { 103 $site = get_blog_details( 104 array( 105 'domain' => 'wordpress.org', 106 'path' => '/zxy/', 107 ) 108 ); 109 $this->assertFalse( $site ); 110 } 111 112 public function test_get_blog_details_with_path_and_invalid_domain_in_fields() { 113 $site = get_blog_details( 114 array( 115 'domain' => 'invalid.org', 116 'path' => '/foo/', 117 ) 118 ); 119 $this->assertFalse( $site ); 120 } 121 122 public function test_get_blog_details_with_only_domain_in_fields_subdomain() { 123 if ( ! is_subdomain_install() ) { 124 $this->markTestSkipped( 'This test is only valid in a subdomain configuration.' ); 125 } 126 127 $site = get_blog_details( array( 'domain' => 'wordpress.org' ) ); 128 $this->assertEquals( self::$site_ids['wordpress.org/'], $site->blog_id ); 129 } 130 131 public function test_get_blog_details_with_only_domain_in_fields_subdirectory() { 132 if ( is_subdomain_install() ) { 133 $this->markTestSkipped( 'This test is only valid in a subdirectory configuration.' ); 134 } 135 136 $site = get_blog_details( array( 'domain' => 'wordpress.org' ) ); 137 $this->assertFalse( $site ); 138 } 139 140 public function test_get_blog_details_with_only_path_in_fields() { 141 $site = get_blog_details( array( 'path' => '/foo/' ) ); 142 $this->assertFalse( $site ); 143 } 144 145 /** 146 * @dataProvider data_get_all 147 * 148 * @ticket 40228 149 */ 150 public function test_get_blog_details_get_object_vars( $get_all ) { 151 $site = get_blog_details( 152 array( 153 'domain' => 'wordpress.org', 154 'path' => '/', 155 ), $get_all 156 ); 157 158 $result = array_keys( get_object_vars( $site ) ); 159 160 $this->assertEqualSets( $this->get_fields( $get_all ), $result ); 161 } 162 163 /** 164 * @dataProvider data_get_all 165 * 166 * @ticket 40228 167 */ 168 public function test_get_blog_details_iterate_over_result( $get_all ) { 169 $site = get_blog_details( 170 array( 171 'domain' => 'wordpress.org', 172 'path' => '/', 173 ), $get_all 174 ); 175 176 $result = array(); 177 foreach ( $site as $key => $value ) { 178 $result[] = $key; 179 } 180 181 $this->assertEqualSets( $this->get_fields( $get_all ), $result ); 182 } 183 184 public function data_get_all() { 185 return array( 186 array( false ), 187 array( true ), 188 ); 189 } 190 191 protected function get_fields( $all = false ) { 192 $fields = array( 193 'blog_id', 194 'domain', 195 'path', 196 'site_id', 197 'registered', 198 'last_updated', 199 'public', 200 'archived', 201 'mature', 202 'spam', 203 'deleted', 204 'lang_id', 205 ); 206 207 if ( $all ) { 208 $fields = array_merge( 209 $fields, array( 210 'blogname', 211 'siteurl', 212 'post_count', 213 'home', 214 ) 215 ); 216 } 217 218 return $fields; 219 } 25 220 } 26 221 27 public static function wpTearDownAfterClass() {28 foreach( self::$site_ids as $id ) {29 wpmu_delete_blog( $id, true );30 }31 32 wp_update_network_site_counts();33 }34 35 public function test_get_blog_details_with_no_arguments_returns_current_site() {36 $site = get_blog_details();37 $this->assertEquals( get_current_blog_id(), $site->blog_id );38 }39 40 public function test_get_blog_details_with_site_name_string_subdirectory() {41 if ( is_subdomain_install() ) {42 $this->markTestSkipped( 'This test is only valid in a subdirectory configuration.' );43 }44 45 $site = get_blog_details( 'foo' );46 $this->assertEquals( self::$site_ids[ WP_TESTS_DOMAIN . '/foo/'], $site->blog_id );47 }48 49 public function test_get_blog_details_with_site_name_string_subdomain() {50 if ( ! is_subdomain_install() ) {51 $this->markTestSkipped( 'This test is only valid in a subdomain configuration.' );52 }53 54 $site = get_blog_details( 'foo' );55 $this->assertEquals( self::$site_ids[ 'foo.' . WP_TESTS_DOMAIN . '/' ], $site->blog_id );56 }57 58 public function test_get_blog_details_with_invalid_site_name_string() {59 $site = get_blog_details( 'invalid' );60 $this->assertFalse( $site );61 }62 63 public function test_get_blog_details_with_site_id_int() {64 $site = get_blog_details( self::$site_ids['wordpress.org/'] );65 $this->assertEquals( self::$site_ids['wordpress.org/'], $site->blog_id );66 }67 68 public function test_get_blog_details_with_invalid_site_id_int() {69 $site = get_blog_details( 99999 );70 $this->assertFalse( $site );71 }72 73 public function test_get_blog_details_with_blog_id_in_fields() {74 $site = get_blog_details( array( 'blog_id' => self::$site_ids['wordpress.org/'] ) );75 $this->assertEquals( self::$site_ids['wordpress.org/'], $site->blog_id );76 }77 78 public function test_get_blog_details_with_invalid_blog_id_in_fields() {79 $site = get_blog_details( array( 'blog_id' => 88888 ) );80 $this->assertFalse( $site );81 }82 83 public function test_get_blog_details_with_domain_and_path_in_fields() {84 $site = get_blog_details( array( 'domain' => 'wordpress.org', 'path' => '/' ) );85 $this->assertEquals( self::$site_ids['wordpress.org/'], $site->blog_id );86 }87 88 public function test_get_blog_details_with_domain_and_invalid_path_in_fields() {89 $site = get_blog_details( array( 'domain' => 'wordpress.org', 'path' => '/zxy/' ) );90 $this->assertFalse( $site );91 }92 93 public function test_get_blog_details_with_path_and_invalid_domain_in_fields() {94 $site = get_blog_details( array( 'domain' => 'invalid.org', 'path' => '/foo/' ) );95 $this->assertFalse( $site );96 }97 98 public function test_get_blog_details_with_only_domain_in_fields_subdomain() {99 if ( ! is_subdomain_install() ) {100 $this->markTestSkipped( 'This test is only valid in a subdomain configuration.' );101 }102 103 $site = get_blog_details( array( 'domain' => 'wordpress.org' ) );104 $this->assertEquals( self::$site_ids['wordpress.org/'], $site->blog_id );105 }106 107 public function test_get_blog_details_with_only_domain_in_fields_subdirectory() {108 if ( is_subdomain_install() ) {109 $this->markTestSkipped( 'This test is only valid in a subdirectory configuration.' );110 }111 112 $site = get_blog_details( array( 'domain' => 'wordpress.org' ) );113 $this->assertFalse( $site );114 }115 116 public function test_get_blog_details_with_only_path_in_fields() {117 $site = get_blog_details( array( 'path' => '/foo/' ) );118 $this->assertFalse( $site );119 }120 121 /**122 * @dataProvider data_get_all123 *124 * @ticket 40228125 */126 public function test_get_blog_details_get_object_vars( $get_all ) {127 $site = get_blog_details( array( 'domain' => 'wordpress.org', 'path' => '/' ), $get_all );128 129 $result = array_keys( get_object_vars( $site ) );130 131 $this->assertEqualSets( $this->get_fields( $get_all ), $result );132 }133 134 /**135 * @dataProvider data_get_all136 *137 * @ticket 40228138 */139 public function test_get_blog_details_iterate_over_result( $get_all ) {140 $site = get_blog_details( array( 'domain' => 'wordpress.org', 'path' => '/' ), $get_all );141 142 $result = array();143 foreach ( $site as $key => $value ) {144 $result[] = $key;145 }146 147 $this->assertEqualSets( $this->get_fields( $get_all ), $result );148 }149 150 public function data_get_all() {151 return array(152 array( false ),153 array( true ),154 );155 }156 157 protected function get_fields( $all = false ) {158 $fields = array(159 'blog_id',160 'domain',161 'path',162 'site_id',163 'registered',164 'last_updated',165 'public',166 'archived',167 'mature',168 'spam',169 'deleted',170 'lang_id',171 );172 173 if ( $all ) {174 $fields = array_merge( $fields, array(175 'blogname',176 'siteurl',177 'post_count',178 'home',179 ) );180 }181 182 return $fields;183 }184 }185 186 222 endif;
Note: See TracChangeset
for help on using the changeset viewer.