Ticket #21837: 21837.with-unit-tests.diff
| File 21837.with-unit-tests.diff, 3.5 KB (added by , 10 years ago) |
|---|
-
src/wp-includes/ms-blogs.php
124 124 $nowww = substr( $fields['domain'], 4 ); 125 125 $blog = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->blogs WHERE domain IN (%s,%s) AND path = %s ORDER BY CHAR_LENGTH(domain) DESC", $nowww, $fields['domain'], $fields['path'] ) ); 126 126 } else { 127 $blog = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->blogs WHERE domain = %s AND path = %s", $fields['domain'], $fields['path'] ) ); 127 $www = "www.{$fields['domain']}"; 128 $blog = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->blogs WHERE domain IN (%s,%s) AND path = %s ORDER BY CHAR_LENGTH(domain) ASC", $fields['domain'], $www, $fields['path'] ) ); 128 129 } 129 130 if ( $blog ) { 130 131 wp_cache_set($blog->blog_id . 'short', $blog, 'blog-details'); … … 141 142 $nowww = substr( $fields['domain'], 4 ); 142 143 $blog = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->blogs WHERE domain IN (%s,%s) ORDER BY CHAR_LENGTH(domain) DESC", $nowww, $fields['domain'] ) ); 143 144 } else { 144 $blog = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->blogs WHERE domain = %s", $fields['domain'] ) ); 145 $www = "www.{$fields['domain']}"; 146 $blog = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->blogs WHERE domain IN (%s,%s) ORDER BY CHAR_LENGTH(domain) ASC", $fields['domain'], $www ) ); 145 147 } 146 148 if ( $blog ) { 147 149 wp_cache_set($blog->blog_id . 'short', $blog, 'blog-details'); -
tests/phpunit/tests/multisite/site.php
770 770 } 771 771 772 772 /** 773 * Ensure that we find the blog we want, regardless of www. prefix. 774 * 775 * @ticket 21837 776 */ 777 function test_get_blog_details_www_nowww() { 778 $network_ids = array( 779 'example.test/' => array( 780 'domain' => 'example.test', 781 'path' => '/', 782 ), 783 ); 784 785 foreach ( $network_ids as &$id ) { 786 $id = $this->factory->network->create( $id ); 787 } 788 unset( $id ); 789 790 $ids = array( 791 'no-www.test/' => array( 'domain' => 'no-www.test', 'path' => '/', 'title' => 'No WWW', 'site_id' => $network_ids['example.test/'] ), 792 'www.with.test/' => array( 'domain' => 'www.with.test', 'path' => '/', 'title' => 'With WWW', 'site_id' => $network_ids['example.test/'] ), 793 ); 794 795 foreach ( $ids as &$id ) { 796 $id = $this->factory->blog->create( $id ); 797 } 798 unset( $id ); 799 800 $site = get_blog_details( array( 'domain' => 'no-www.test' ) ); 801 $this->assertEquals( $ids['no-www.test/'], $site->blog_id ); 802 $this->assertEquals( 'No WWW', $site->blogname ); 803 804 $site = get_blog_details( array( 'domain' => 'www.no-www.test' ) ); 805 $this->assertEquals( $ids['no-www.test/'], $site->blog_id ); 806 $this->assertEquals( 'No WWW', $site->blogname ); 807 808 $site = get_blog_details( array( 'domain' => 'with.test' ) ); 809 $this->assertEquals( $ids['www.with.test/'], $site->blog_id ); 810 $this->assertEquals( 'With WWW', $site->blogname ); 811 812 $site = get_blog_details( array( 'domain' => 'www.with.test' ) ); 813 $this->assertEquals( $ids['www.with.test/'], $site->blog_id ); 814 $this->assertEquals( 'With WWW', $site->blogname ); 815 } 816 817 /** 773 818 * Test the original and cached responses for a created and then deleted site when 774 819 * the blog ID is requested through get_blog_id_from_url(). 775 820 */