From a3e18c36704d641f83153f2b3094cd17c6389d16 Mon Sep 17 00:00:00 2001 From: Kunal Mehta Date: Sat, 23 Aug 2014 14:11:43 -0700 Subject: [PATCH] Improve GlobalVarConfigTest Should bring includes/config to 100% coverage :D Change-Id: I929448b7a306fb1efb8b523d16305a7666f78fd0 --- .../includes/config/GlobalVarConfigTest.php | 44 +++++++++++++++++-- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/tests/phpunit/includes/config/GlobalVarConfigTest.php b/tests/phpunit/includes/config/GlobalVarConfigTest.php index 662f268615..a99908155a 100644 --- a/tests/phpunit/includes/config/GlobalVarConfigTest.php +++ b/tests/phpunit/includes/config/GlobalVarConfigTest.php @@ -8,6 +8,34 @@ class GlobalVarConfigTest extends MediaWikiTestCase { public function testNewInstance() { $config = GlobalVarConfig::newInstance(); $this->assertInstanceOf( 'GlobalVarConfig', $config ); + $this->maybeStashGlobal( 'wgBaz' ); + $GLOBALS['wgBaz'] = 'somevalue'; + // Check prefix is set to 'wg' + $this->assertEquals( 'somevalue', $config->get( 'Baz' ) ); + } + + /** + * @covers GlobalVarConfig::__construct + * @dataProvider provideConstructor + */ + public function testConstructor( $prefix ) { + $var = $prefix . 'GlobalVarConfigTest'; + $rand = wfRandomString(); + $this->maybeStashGlobal( $var ); + $GLOBALS[$var] = $rand; + $config = new GlobalVarConfig( $prefix ); + $this->assertInstanceOf( 'GlobalVarConfig', $config ); + $this->assertEquals( $rand, $config->get( 'GlobalVarConfigTest' ) ); + } + + public static function provideConstructor() { + return array( + array( 'wg' ), + array( 'ef' ), + array( 'smw' ), + array( 'blahblahblahblah' ), + array( '' ), + ); } public function provideGet() { @@ -27,6 +55,7 @@ class GlobalVarConfigTest extends MediaWikiTestCase { array( 'Foo', 'wg', 'default2' ), array( 'Variable', 'ef', 'default3' ), array( 'BAR', '', 'default4' ), + array( 'ThisGlobalWasNotSetAbove', 'wg', false ) ); } @@ -40,6 +69,9 @@ class GlobalVarConfigTest extends MediaWikiTestCase { */ public function testGet( $name, $prefix, $expected ) { $config = new GlobalVarConfig( $prefix ); + if ( $expected === false ) { + $this->setExpectedException( 'ConfigException', 'GlobalVarConfig::getWithPrefix: undefined variable:' ); + } $this->assertEquals( $config->get( $name ), $expected ); } @@ -52,16 +84,20 @@ class GlobalVarConfigTest extends MediaWikiTestCase { ); } + private function maybeStashGlobal( $var ) { + if ( array_key_exists( $var, $GLOBALS ) ) { + // Will be reset after this test is over + $this->stashMwGlobals( $var ); + } + } + /** * @dataProvider provideSet * @covers GlobalVarConfig::set * @covers GlobalVarConfig::setWithPrefix */ public function testSet( $name, $prefix, $var ) { - if ( array_key_exists( $var, $GLOBALS ) ) { - // Will be reset after this test is over - $this->stashMwGlobals( $var ); - } + $this->maybeStashGlobal( $var ); $config = new GlobalVarConfig( $prefix ); $random = wfRandomString(); $config->set( $name, $random ); -- 2.20.1