X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=tests%2Fphpunit%2Fincludes%2FSiteConfigurationTest.php;h=bdd4b1e53b4dd0bf1cd40c78bc94fdfbab0424cc;hb=5f22cbca947d0b1aeeeadc0c05b9e651cede68cd;hp=053d8a7d26a6ba971b8aaa44176a9c17594c74d4;hpb=49109173b4ad5fafb24688457e35b3c71d330346;p=lhc%2Fweb%2Fwiklou.git diff --git a/tests/phpunit/includes/SiteConfigurationTest.php b/tests/phpunit/includes/SiteConfigurationTest.php index 053d8a7d26..bdd4b1e53b 100644 --- a/tests/phpunit/includes/SiteConfigurationTest.php +++ b/tests/phpunit/includes/SiteConfigurationTest.php @@ -1,28 +1,5 @@ suffixes as $suffix ) { - if ( substr( $wiki, -strlen( $suffix ) ) == $suffix ) { - $site = $suffix; - $lang = substr( $wiki, 0, -strlen( $suffix ) ); - break; - } - } - - return array( - 'suffix' => $site, - 'lang' => $lang, - 'params' => array( - 'lang' => $lang, - 'site' => $site, - 'wiki' => $wiki, - ), - 'tags' => array( 'tag' ), - ); -} - class SiteConfigurationTest extends MediaWikiTestCase { /** @@ -35,68 +12,94 @@ class SiteConfigurationTest extends MediaWikiTestCase { $this->mConf = new SiteConfiguration; - $this->mConf->suffixes = array( 'wikipedia' => 'wiki' ); - $this->mConf->wikis = array( 'enwiki', 'dewiki', 'frwiki' ); - $this->mConf->settings = array( - 'simple' => array( + $this->mConf->suffixes = [ 'wikipedia' => 'wiki' ]; + $this->mConf->wikis = [ 'enwiki', 'dewiki', 'frwiki' ]; + $this->mConf->settings = [ + 'simple' => [ 'wiki' => 'wiki', 'tag' => 'tag', 'enwiki' => 'enwiki', 'dewiki' => 'dewiki', 'frwiki' => 'frwiki', - ), + ], - 'fallback' => array( + 'fallback' => [ 'default' => 'default', 'wiki' => 'wiki', 'tag' => 'tag', - ), + ], - 'params' => array( + 'params' => [ 'default' => '$lang $site $wiki', - ), + ], - '+global' => array( - 'wiki' => array( + '+global' => [ + 'wiki' => [ 'wiki' => 'wiki', - ), - 'tag' => array( + ], + 'tag' => [ 'tag' => 'tag', - ), - 'enwiki' => array( + ], + 'enwiki' => [ 'enwiki' => 'enwiki', - ), - 'dewiki' => array( + ], + 'dewiki' => [ 'dewiki' => 'dewiki', - ), - 'frwiki' => array( + ], + 'frwiki' => [ 'frwiki' => 'frwiki', - ), - ), + ], + ], - 'merge' => array( - '+wiki' => array( + 'merge' => [ + '+wiki' => [ 'wiki' => 'wiki', - ), - '+tag' => array( + ], + '+tag' => [ 'tag' => 'tag', - ), - 'default' => array( + ], + 'default' => [ 'default' => 'default', - ), - '+enwiki' => array( + ], + '+enwiki' => [ 'enwiki' => 'enwiki', - ), - '+dewiki' => array( + ], + '+dewiki' => [ 'dewiki' => 'dewiki', - ), - '+frwiki' => array( + ], + '+frwiki' => [ 'frwiki' => 'frwiki', - ), - ), - ); + ], + ], + ]; - $GLOBALS['global'] = array( 'global' => 'global' ); + $GLOBALS['global'] = [ 'global' => 'global' ]; + } + + /** + * This function is used as a callback within the tests below + */ + public static function getSiteParamsCallback( $conf, $wiki ) { + $site = null; + $lang = null; + foreach ( $conf->suffixes as $suffix ) { + if ( substr( $wiki, -strlen( $suffix ) ) == $suffix ) { + $site = $suffix; + $lang = substr( $wiki, 0, -strlen( $suffix ) ); + break; + } + } + + return [ + 'suffix' => $site, + 'lang' => $lang, + 'params' => [ + 'lang' => $lang, + 'site' => $site, + 'wiki' => $wiki, + ], + 'tags' => [ 'tag' ], + ]; } /** @@ -104,24 +107,24 @@ class SiteConfigurationTest extends MediaWikiTestCase { */ public function testSiteFromDb() { $this->assertEquals( - array( 'wikipedia', 'en' ), + [ 'wikipedia', 'en' ], $this->mConf->siteFromDB( 'enwiki' ), 'siteFromDB()' ); $this->assertEquals( - array( 'wikipedia', '' ), + [ 'wikipedia', '' ], $this->mConf->siteFromDB( 'wiki' ), 'siteFromDB() on a suffix' ); $this->assertEquals( - array( null, null ), + [ null, null ], $this->mConf->siteFromDB( 'wikien' ), 'siteFromDB() on a non-existing wiki' ); - $this->mConf->suffixes = array( 'wiki', '' ); + $this->mConf->suffixes = [ 'wiki', '' ]; $this->assertEquals( - array( '', 'wikien' ), + [ '', 'wikien' ], $this->mConf->siteFromDB( 'wikien' ), 'siteFromDB() on a non-existing wiki (2)' ); @@ -132,7 +135,7 @@ class SiteConfigurationTest extends MediaWikiTestCase { */ public function testGetLocalDatabases() { $this->assertEquals( - array( 'enwiki', 'dewiki', 'frwiki' ), + [ 'enwiki', 'dewiki', 'frwiki' ], $this->mConf->getLocalDatabases(), 'getLocalDatabases()' ); @@ -175,7 +178,7 @@ class SiteConfigurationTest extends MediaWikiTestCase { ); $this->assertEquals( 'tag', - $this->mConf->get( 'fallback', 'dewiki', 'wiki', array(), array( 'tag' ) ), + $this->mConf->get( 'fallback', 'dewiki', 'wiki', [], [ 'tag' ] ), 'get(): fallback setting on an existing wiki (with wiki tag)' ); $this->assertEquals( @@ -185,7 +188,7 @@ class SiteConfigurationTest extends MediaWikiTestCase { ); $this->assertEquals( 'wiki', - $this->mConf->get( 'fallback', 'wiki', 'wiki', array(), array( 'tag' ) ), + $this->mConf->get( 'fallback', 'wiki', 'wiki', [], [ 'tag' ] ), 'get(): fallback setting on an suffix (with wiki tag)' ); $this->assertEquals( @@ -195,50 +198,50 @@ class SiteConfigurationTest extends MediaWikiTestCase { ); $this->assertEquals( 'tag', - $this->mConf->get( 'fallback', 'eswiki', 'wiki', array(), array( 'tag' ) ), + $this->mConf->get( 'fallback', 'eswiki', 'wiki', [], [ 'tag' ] ), 'get(): fallback setting on an non-existing wiki (with wiki tag)' ); - $common = array( 'wiki' => 'wiki', 'default' => 'default' ); - $commonTag = array( 'tag' => 'tag', 'wiki' => 'wiki', 'default' => 'default' ); + $common = [ 'wiki' => 'wiki', 'default' => 'default' ]; + $commonTag = [ 'tag' => 'tag', 'wiki' => 'wiki', 'default' => 'default' ]; $this->assertEquals( - array( 'enwiki' => 'enwiki' ) + $common, + [ 'enwiki' => 'enwiki' ] + $common, $this->mConf->get( 'merge', 'enwiki', 'wiki' ), 'get(): merging setting on an existing wiki' ); $this->assertEquals( - array( 'enwiki' => 'enwiki' ) + $commonTag, - $this->mConf->get( 'merge', 'enwiki', 'wiki', array(), array( 'tag' ) ), + [ 'enwiki' => 'enwiki' ] + $commonTag, + $this->mConf->get( 'merge', 'enwiki', 'wiki', [], [ 'tag' ] ), 'get(): merging setting on an existing wiki (with tag)' ); $this->assertEquals( - array( 'dewiki' => 'dewiki' ) + $common, + [ 'dewiki' => 'dewiki' ] + $common, $this->mConf->get( 'merge', 'dewiki', 'wiki' ), 'get(): merging setting on an existing wiki (2)' ); $this->assertEquals( - array( 'dewiki' => 'dewiki' ) + $commonTag, - $this->mConf->get( 'merge', 'dewiki', 'wiki', array(), array( 'tag' ) ), + [ 'dewiki' => 'dewiki' ] + $commonTag, + $this->mConf->get( 'merge', 'dewiki', 'wiki', [], [ 'tag' ] ), 'get(): merging setting on an existing wiki (2) (with tag)' ); $this->assertEquals( - array( 'frwiki' => 'frwiki' ) + $common, + [ 'frwiki' => 'frwiki' ] + $common, $this->mConf->get( 'merge', 'frwiki', 'wiki' ), 'get(): merging setting on an existing wiki (3)' ); $this->assertEquals( - array( 'frwiki' => 'frwiki' ) + $commonTag, - $this->mConf->get( 'merge', 'frwiki', 'wiki', array(), array( 'tag' ) ), + [ 'frwiki' => 'frwiki' ] + $commonTag, + $this->mConf->get( 'merge', 'frwiki', 'wiki', [], [ 'tag' ] ), 'get(): merging setting on an existing wiki (3) (with tag)' ); $this->assertEquals( - array( 'wiki' => 'wiki' ) + $common, + [ 'wiki' => 'wiki' ] + $common, $this->mConf->get( 'merge', 'wiki', 'wiki' ), 'get(): merging setting on an suffix' ); $this->assertEquals( - array( 'wiki' => 'wiki' ) + $commonTag, - $this->mConf->get( 'merge', 'wiki', 'wiki', array(), array( 'tag' ) ), + [ 'wiki' => 'wiki' ] + $commonTag, + $this->mConf->get( 'merge', 'wiki', 'wiki', [], [ 'tag' ] ), 'get(): merging setting on an suffix (with tag)' ); $this->assertEquals( @@ -248,7 +251,7 @@ class SiteConfigurationTest extends MediaWikiTestCase { ); $this->assertEquals( $commonTag, - $this->mConf->get( 'merge', 'eswiki', 'wiki', array(), array( 'tag' ) ), + $this->mConf->get( 'merge', 'eswiki', 'wiki', [], [ 'tag' ] ), 'get(): merging setting on an non-existing wiki (with tag)' ); } @@ -257,20 +260,20 @@ class SiteConfigurationTest extends MediaWikiTestCase { * @covers SiteConfiguration::siteFromDB */ public function testSiteFromDbWithCallback() { - $this->mConf->siteParamsCallback = 'getSiteParams'; + $this->mConf->siteParamsCallback = 'SiteConfigurationTest::getSiteParamsCallback'; $this->assertEquals( - array( 'wiki', 'en' ), + [ 'wiki', 'en' ], $this->mConf->siteFromDB( 'enwiki' ), 'siteFromDB() with callback' ); $this->assertEquals( - array( 'wiki', '' ), + [ 'wiki', '' ], $this->mConf->siteFromDB( 'wiki' ), 'siteFromDB() with callback on a suffix' ); $this->assertEquals( - array( null, null ), + [ null, null ], $this->mConf->siteFromDB( 'wikien' ), 'siteFromDB() with callback on a non-existing wiki' ); @@ -280,7 +283,7 @@ class SiteConfigurationTest extends MediaWikiTestCase { * @covers SiteConfiguration::get */ public function testParameterReplacement() { - $this->mConf->siteParamsCallback = 'getSiteParams'; + $this->mConf->siteParamsCallback = 'SiteConfigurationTest::getSiteParamsCallback'; $this->assertEquals( 'en wiki enwiki', @@ -313,23 +316,48 @@ class SiteConfigurationTest extends MediaWikiTestCase { * @covers SiteConfiguration::getAll */ public function testGetAllGlobals() { - $this->mConf->siteParamsCallback = 'getSiteParams'; + $this->mConf->siteParamsCallback = 'SiteConfigurationTest::getSiteParamsCallback'; - $getall = array( + $getall = [ 'simple' => 'enwiki', 'fallback' => 'tag', 'params' => 'en wiki enwiki', - 'global' => array( 'enwiki' => 'enwiki' ) + $GLOBALS['global'], - 'merge' => array( 'enwiki' => 'enwiki', 'tag' => 'tag', 'wiki' => 'wiki', 'default' => 'default' ), - ); + 'global' => [ 'enwiki' => 'enwiki' ] + $GLOBALS['global'], + 'merge' => [ + 'enwiki' => 'enwiki', + 'tag' => 'tag', + 'wiki' => 'wiki', + 'default' => 'default' + ], + ]; $this->assertEquals( $getall, $this->mConf->getAll( 'enwiki' ), 'getAll()' ); $this->mConf->extractAllGlobals( 'enwiki', 'wiki' ); - $this->assertEquals( $getall['simple'], $GLOBALS['simple'], 'extractAllGlobals(): simple setting' ); - $this->assertEquals( $getall['fallback'], $GLOBALS['fallback'], 'extractAllGlobals(): fallback setting' ); - $this->assertEquals( $getall['params'], $GLOBALS['params'], 'extractAllGlobals(): parameter replacement' ); - $this->assertEquals( $getall['global'], $GLOBALS['global'], 'extractAllGlobals(): merging with global' ); - $this->assertEquals( $getall['merge'], $GLOBALS['merge'], 'extractAllGlobals(): merging setting' ); + $this->assertEquals( + $getall['simple'], + $GLOBALS['simple'], + 'extractAllGlobals(): simple setting' + ); + $this->assertEquals( + $getall['fallback'], + $GLOBALS['fallback'], + 'extractAllGlobals(): fallback setting' + ); + $this->assertEquals( + $getall['params'], + $GLOBALS['params'], + 'extractAllGlobals(): parameter replacement' + ); + $this->assertEquals( + $getall['global'], + $GLOBALS['global'], + 'extractAllGlobals(): merging with global' + ); + $this->assertEquals( + $getall['merge'], + $GLOBALS['merge'], + 'extractAllGlobals(): merging setting' + ); } }