Remove usage of deprecated SkinFactory::getDefaultInstance()
authorKunal Mehta <legoktm@member.fsf.org>
Mon, 3 Jun 2019 00:55:00 +0000 (20:55 -0400)
committerKunal Mehta <legoktm@member.fsf.org>
Mon, 3 Jun 2019 01:08:07 +0000 (21:08 -0400)
Change-Id: I3bd50f8ca5baabd34dbc0e3bbc2f97e94650a17a

includes/api/ApiFormatBase.php
includes/api/ApiHelp.php
includes/skins/SkinFallbackTemplate.php
maintenance/Maintenance.php
tests/phpunit/includes/OutputPageTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderFileModuleTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderOOUIImageModuleTest.php

index bff9fd0..17a9d73 100644 (file)
@@ -20,6 +20,8 @@
  * @file
  */
 
+use MediaWiki\MediaWikiServices;
+
 /**
  * This is the abstract base class for API formatters.
  *
@@ -73,7 +75,7 @@ abstract class ApiFormatBase extends ApiBase {
                } elseif ( $this->getIsHtml() ) {
                        return 'api-result.html';
                } else {
-                       $exts = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer()
+                       $exts = MediaWikiServices::getInstance()->getMimeAnalyzer()
                                ->getExtensionsForType( $this->getMimeType() );
                        $ext = $exts ? strtok( $exts, ' ' ) : strtolower( $this->mFormat );
                        return "api-result.$ext";
@@ -245,7 +247,8 @@ abstract class ApiFormatBase extends ApiBase {
                        $result = $this->getBuffer();
 
                        $context = new DerivativeContext( $this->getMain() );
-                       $context->setSkin( SkinFactory::getDefaultInstance()->makeSkin( 'apioutput' ) );
+                       $skinFactory = MediaWikiServices::getInstance()->getSkinFactory();
+                       $context->setSkin( $skinFactory->makeSkin( 'apioutput' ) );
                        $context->setTitle( SpecialPage::getTitleFor( 'ApiHelp' ) );
                        $out = new OutputPage( $context );
                        $context->setOutput( $out );
index 78efe41..cc96f90 100644 (file)
@@ -40,7 +40,8 @@ class ApiHelp extends ApiBase {
 
                // Get the help
                $context = new DerivativeContext( $this->getMain()->getContext() );
-               $context->setSkin( SkinFactory::getDefaultInstance()->makeSkin( 'apioutput' ) );
+               $skinFactory = MediaWikiServices::getInstance()->getSkinFactory();
+               $context->setSkin( $skinFactory->makeSkin( 'apioutput' ) );
                $context->setLanguage( $this->getMain()->getLanguage() );
                $context->setTitle( SpecialPage::getTitleFor( 'ApiHelp' ) );
                $out = new OutputPage( $context );
index bd02fa3..2f70c8d 100644 (file)
@@ -9,6 +9,8 @@
  * @file
  */
 
+use MediaWiki\MediaWikiServices;
+
 /**
  * BaseTemplate class for the fallback skin
  */
@@ -41,7 +43,8 @@ class SkinFallbackTemplate extends BaseTemplate {
        private function buildHelpfulInformationMessage() {
                $defaultSkin = $this->config->get( 'DefaultSkin' );
                $installedSkins = $this->findInstalledSkins();
-               $enabledSkins = SkinFactory::getDefaultInstance()->getSkinNames();
+               $skinFactory = MediaWikiServices::getInstance()->getSkinFactory();
+               $enabledSkins = $skinFactory->getSkinNames();
                $enabledSkins = array_change_key_case( $enabledSkins, CASE_LOWER );
 
                if ( $installedSkins ) {
index c88a1a0..44ce9a5 100644 (file)
@@ -358,7 +358,7 @@ abstract class Maintenance {
                        wfDeprecated( __METHOD__ . ' without an $argId', '1.33' );
                }
 
-               return $this->hasArg( $argId ) ? $this->mArgs[$argId] : $default;
+               return $this->mArgs[$argId] ?? $default;
        }
 
        /**
index ebd9f1d..1272b01 100644 (file)
@@ -1,5 +1,6 @@
 <?php
 
+use MediaWiki\MediaWikiServices;
 use Wikimedia\TestingAccessWrapper;
 
 /**
@@ -2662,7 +2663,8 @@ class OutputPageTest extends MediaWikiTestCase {
                $method = $class->getMethod( 'makeResourceLoaderLink' );
                $method->setAccessible( true );
                $ctx = new RequestContext();
-               $ctx->setSkin( SkinFactory::getDefaultInstance()->makeSkin( 'fallback' ) );
+               $skinFactory = MediaWikiServices::getInstance()->getSkinFactory();
+               $ctx->setSkin( $skinFactory->makeSkin( 'fallback' ) );
                $ctx->setLanguage( 'en' );
                $out = new OutputPage( $ctx );
                $nonce = $class->getProperty( 'CSPNonce' );
@@ -2775,7 +2777,8 @@ class OutputPageTest extends MediaWikiTestCase {
 
                // Set up stubs
                $ctx = new RequestContext();
-               $ctx->setSkin( SkinFactory::getDefaultInstance()->makeSkin( 'fallback' ) );
+               $skinFactory = MediaWikiServices::getInstance()->getSkinFactory();
+               $ctx->setSkin( $skinFactory->makeSkin( 'fallback' ) );
                $ctx->setLanguage( 'en' );
                $op = $this->getMockBuilder( OutputPage::class )
                        ->setConstructorArgs( [ $ctx ] )
index 0a4cf1e..fbef12e 100644 (file)
@@ -9,14 +9,16 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase {
        protected function setUp() {
                parent::setUp();
 
+               $skinFactory = new SkinFactory();
                // The return value of the closure shouldn't matter since this test should
                // never call it
-               SkinFactory::getDefaultInstance()->register(
+               $skinFactory->register(
                        'fakeskin',
                        'FakeSkin',
                        function () {
                        }
                );
+               $this->setService( 'SkinFactory', $skinFactory );
        }
 
        private static function getModules() {
index 30e9f30..ff09660 100644 (file)
@@ -16,12 +16,15 @@ class ResourceLoaderOOUIImageModuleTest extends ResourceLoaderTestCase {
                ] );
 
                // Pretend that 'fakemonobook' is a real skin using the Apex theme
-               SkinFactory::getDefaultInstance()->register(
+               $skinFactory = new SkinFactory();
+               $skinFactory->register(
                        'fakemonobook',
                        'FakeMonoBook',
                        function () {
                        }
                );
+               $this->setService( 'SkinFactory', $skinFactory );
+
                $r = new ReflectionMethod( ExtensionRegistry::class, 'exportExtractedData' );
                $r->setAccessible( true );
                $r->invoke( ExtensionRegistry::getInstance(), [