MediaWiki
REL1_24
|
00001 <?php 00002 00032 class SiteListTest extends MediaWikiTestCase { 00033 00038 public function siteListProvider() { 00039 $sitesArrays = $this->siteArrayProvider(); 00040 00041 $listInstances = array(); 00042 00043 foreach ( $sitesArrays as $sitesArray ) { 00044 $listInstances[] = new SiteList( $sitesArray[0] ); 00045 } 00046 00047 return $this->arrayWrap( $listInstances ); 00048 } 00049 00054 public function siteArrayProvider() { 00055 $sites = TestSites::getSites(); 00056 00057 $siteArrays = array(); 00058 00059 $siteArrays[] = $sites; 00060 00061 $siteArrays[] = array( array_shift( $sites ) ); 00062 00063 $siteArrays[] = array( array_shift( $sites ), array_shift( $sites ) ); 00064 00065 return $this->arrayWrap( $siteArrays ); 00066 } 00067 00073 public function testIsEmpty( SiteList $sites ) { 00074 $this->assertEquals( count( $sites ) === 0, $sites->isEmpty() ); 00075 } 00076 00082 public function testGetSiteByGlobalId( SiteList $sites ) { 00086 foreach ( $sites as $site ) { 00087 $this->assertEquals( $site, $sites->getSite( $site->getGlobalId() ) ); 00088 } 00089 00090 $this->assertTrue( true ); 00091 } 00092 00098 public function testGetSiteByInternalId( $sites ) { 00102 foreach ( $sites as $site ) { 00103 if ( is_integer( $site->getInternalId() ) ) { 00104 $this->assertEquals( $site, $sites->getSiteByInternalId( $site->getInternalId() ) ); 00105 } 00106 } 00107 00108 $this->assertTrue( true ); 00109 } 00110 00116 public function testGetSiteByNavigationId( $sites ) { 00120 foreach ( $sites as $site ) { 00121 $ids = $site->getNavigationIds(); 00122 foreach ( $ids as $navId ) { 00123 $this->assertEquals( $site, $sites->getSiteByNavigationId( $navId ) ); 00124 } 00125 } 00126 00127 $this->assertTrue( true ); 00128 } 00129 00135 public function testHasGlobalId( $sites ) { 00136 $this->assertFalse( $sites->hasSite( 'non-existing-global-id' ) ); 00137 $this->assertFalse( $sites->hasInternalId( 720101010 ) ); 00138 00139 if ( !$sites->isEmpty() ) { 00143 foreach ( $sites as $site ) { 00144 $this->assertTrue( $sites->hasSite( $site->getGlobalId() ) ); 00145 } 00146 } 00147 } 00148 00154 public function testHasInternallId( $sites ) { 00158 foreach ( $sites as $site ) { 00159 if ( is_integer( $site->getInternalId() ) ) { 00160 $this->assertTrue( $site, $sites->hasInternalId( $site->getInternalId() ) ); 00161 } 00162 } 00163 00164 $this->assertFalse( $sites->hasInternalId( -1 ) ); 00165 } 00166 00172 public function testHasNavigationId( $sites ) { 00176 foreach ( $sites as $site ) { 00177 $ids = $site->getNavigationIds(); 00178 foreach ( $ids as $navId ) { 00179 $this->assertTrue( $sites->hasNavigationId( $navId ) ); 00180 } 00181 } 00182 00183 $this->assertFalse( $sites->hasNavigationId( 'non-existing-navigation-id' ) ); 00184 } 00185 00191 public function testGetGlobalIdentifiers( SiteList $sites ) { 00192 $identifiers = $sites->getGlobalIdentifiers(); 00193 00194 $this->assertTrue( is_array( $identifiers ) ); 00195 00196 $expected = array(); 00197 00201 foreach ( $sites as $site ) { 00202 $expected[] = $site->getGlobalId(); 00203 } 00204 00205 $this->assertArrayEquals( $expected, $identifiers ); 00206 } 00207 00217 public function testSerialization( SiteList $list ) { 00218 $serialization = serialize( $list ); 00222 $copy = unserialize( $serialization ); 00223 00224 $this->assertArrayEquals( $list->getGlobalIdentifiers(), $copy->getGlobalIdentifiers() ); 00225 00229 foreach ( $list as $site ) { 00230 $this->assertTrue( $copy->hasInternalId( $site->getInternalId() ) ); 00231 00232 foreach ( $site->getNavigationIds() as $navId ) { 00233 $this->assertTrue( 00234 $copy->hasNavigationId( $navId ), 00235 'unserialized data expects nav id ' . $navId . ' for site ' . $site->getGlobalId() 00236 ); 00237 } 00238 } 00239 } 00240 }