Merge "Revert "Gallery: Use intrinsic width for gallery to center caption""
[lhc/web/wiklou.git] / tests / phpunit / tests / MediaWikiTestCaseTest.php
index 3361166..5d2f37e 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 use MediaWiki\Logger\LoggerFactory;
+use MediaWiki\MediaWikiServices;
+use Psr\Log\LoggerInterface;
 
 /**
  * @covers MediaWikiTestCase
@@ -9,12 +11,12 @@ class MediaWikiTestCaseTest extends MediaWikiTestCase {
 
        const GLOBAL_KEY_NONEXISTING = 'MediaWikiTestCaseTestGLOBAL-NONExisting';
 
-       private static $startGlobals = array(
+       private static $startGlobals = [
                'MediaWikiTestCaseTestGLOBAL-ExistingString' => 'foo',
                'MediaWikiTestCaseTestGLOBAL-ExistingStringEmpty' => '',
-               'MediaWikiTestCaseTestGLOBAL-ExistingArray' => array( 1, 'foo' => 'bar' ),
-               'MediaWikiTestCaseTestGLOBAL-ExistingArrayEmpty' => array(),
-       );
+               'MediaWikiTestCaseTestGLOBAL-ExistingArray' => [ 1, 'foo' => 'bar' ],
+               'MediaWikiTestCaseTestGLOBAL-ExistingArrayEmpty' => [],
+       ];
 
        public static function setUpBeforeClass() {
                parent::setUpBeforeClass();
@@ -31,10 +33,10 @@ class MediaWikiTestCaseTest extends MediaWikiTestCase {
        }
 
        public function provideExistingKeysAndNewValues() {
-               $providedArray = array();
+               $providedArray = [];
                foreach ( array_keys( self::$startGlobals ) as $key ) {
-                       $providedArray[] = array( $key, 'newValue' );
-                       $providedArray[] = array( $key, array( 'newValue' ) );
+                       $providedArray[] = [ $key, 'newValue' ];
+                       $providedArray[] = [ $key, [ 'newValue' ] ];
                }
                return $providedArray;
        }
@@ -98,6 +100,36 @@ class MediaWikiTestCaseTest extends MediaWikiTestCase {
                $this->stashMwGlobals( self::GLOBAL_KEY_NONEXISTING );
        }
 
+       public function testOverrideMwServices() {
+               $initialServices = MediaWikiServices::getInstance();
+
+               $this->overrideMwServices();
+               $this->assertNotSame( $initialServices, MediaWikiServices::getInstance() );
+
+               $this->tearDown();
+               $this->assertSame( $initialServices, MediaWikiServices::getInstance() );
+       }
+
+       public function testSetService() {
+               $initialServices = MediaWikiServices::getInstance();
+               $initialService = $initialServices->getDBLoadBalancer();
+               $mockService = $this->getMockBuilder( LoadBalancer::class )
+                       ->disableOriginalConstructor()->getMock();
+
+               $this->setService( 'DBLoadBalancer', $mockService );
+               $this->assertNotSame( $initialServices, MediaWikiServices::getInstance() );
+               $this->assertNotSame(
+                       $initialService,
+                       MediaWikiServices::getInstance()->getDBLoadBalancer()
+               );
+               $this->assertSame( $mockService, MediaWikiServices::getInstance()->getDBLoadBalancer() );
+
+               $this->tearDown();
+               $this->assertSame( $initialServices, MediaWikiServices::getInstance() );
+               $this->assertNotSame( $mockService, MediaWikiServices::getInstance()->getDBLoadBalancer() );
+               $this->assertSame( $initialService, MediaWikiServices::getInstance()->getDBLoadBalancer() );
+       }
+
        /**
         * @covers MediaWikiTestCase::setLogger
         * @covers MediaWikiTestCase::restoreLogger
@@ -105,7 +137,7 @@ class MediaWikiTestCaseTest extends MediaWikiTestCase {
        public function testLoggersAreRestoredOnTearDown() {
                // replacing an existing logger
                $logger1 = LoggerFactory::getInstance( 'foo' );
-               $this->setLogger( 'foo', $this->getMock( '\Psr\Log\LoggerInterface' ) );
+               $this->setLogger( 'foo', $this->getMock( LoggerInterface::class ) );
                $logger2 = LoggerFactory::getInstance( 'foo' );
                $this->tearDown();
                $logger3 = LoggerFactory::getInstance( 'foo' );
@@ -114,7 +146,7 @@ class MediaWikiTestCaseTest extends MediaWikiTestCase {
                $this->assertNotSame( $logger1, $logger2 );
 
                // replacing a non-existing logger
-               $this->setLogger( 'bar', $this->getMock( '\Psr\Log\LoggerInterface' ) );
+               $this->setLogger( 'foo', $this->getMock( LoggerInterface::class ) );
                $logger1 = LoggerFactory::getInstance( 'bar' );
                $this->tearDown();
                $logger2 = LoggerFactory::getInstance( 'bar' );
@@ -124,8 +156,8 @@ class MediaWikiTestCaseTest extends MediaWikiTestCase {
 
                // replacing same logger twice
                $logger1 = LoggerFactory::getInstance( 'baz' );
-               $this->setLogger( 'baz', $this->getMock( '\Psr\Log\LoggerInterface' ) );
-               $this->setLogger( 'baz', $this->getMock( '\Psr\Log\LoggerInterface' ) );
+               $this->setLogger( 'foo', $this->getMock( LoggerInterface::class ) );
+               $this->setLogger( 'foo', $this->getMock( LoggerInterface::class ) );
                $this->tearDown();
                $logger2 = LoggerFactory::getInstance( 'baz' );