Ensure services are added to MediaWikiServicesTest::provideGetService
authoraddshore <addshorewiki@gmail.com>
Fri, 29 Jun 2018 09:31:27 +0000 (10:31 +0100)
committerAddshore <addshorewiki@gmail.com>
Fri, 29 Jun 2018 12:55:35 +0000 (12:55 +0000)
Change-Id: I3f6ded009ed98b615adb7c46d41bced450972b54

includes/MediaWikiServices.php
tests/phpunit/includes/MediaWikiServicesTest.php

index 8bd25d7..caaa6b3 100644 (file)
@@ -22,6 +22,8 @@ use MediaWiki\Storage\RevisionFactory;
 use MediaWiki\Storage\RevisionLookup;
 use MediaWiki\Storage\RevisionStore;
 use MediaWiki\Storage\RevisionStoreFactory;
+use OldRevisionImporter;
+use UploadRevisionImporter;
 use Wikimedia\Rdbms\LBFactory;
 use LinkCache;
 use Wikimedia\Rdbms\LoadBalancer;
@@ -838,6 +840,22 @@ class MediaWikiServices extends ServiceContainer {
                return $this->getService( 'ActorMigration' );
        }
 
+       /**
+        * @since 1.32
+        * @return UploadRevisionImporter
+        */
+       public function getUploadRevisionImporter() {
+               return $this->getService( 'UploadRevisionImporter' );
+       }
+
+       /**
+        * @since 1.32
+        * @return OldRevisionImporter
+        */
+       public function getOldRevisionImporter() {
+               return $this->getService( 'OldRevisionImporter' );
+       }
+
        ///////////////////////////////////////////////////////////////////////////
        // NOTE: When adding a service getter here, don't forget to add a test
        // case for it in MediaWikiServicesTest::provideGetters() and in
index 08cd9ed..cf48215 100644 (file)
@@ -5,6 +5,7 @@ use MediaWiki\Interwiki\InterwikiLookup;
 use MediaWiki\Linker\LinkRenderer;
 use MediaWiki\Linker\LinkRendererFactory;
 use MediaWiki\MediaWikiServices;
+use MediaWiki\Preferences\PreferencesFactory;
 use MediaWiki\Services\DestructibleService;
 use MediaWiki\Services\SalvageableService;
 use MediaWiki\Services\ServiceDisabledException;
@@ -12,6 +13,7 @@ use MediaWiki\Shell\CommandFactory;
 use MediaWiki\Storage\BlobStore;
 use MediaWiki\Storage\BlobStoreFactory;
 use MediaWiki\Storage\NameTableStore;
+use MediaWiki\Storage\RevisionFactory;
 use MediaWiki\Storage\RevisionLookup;
 use MediaWiki\Storage\RevisionStore;
 use MediaWiki\Storage\RevisionStoreFactory;
@@ -347,9 +349,21 @@ class MediaWikiServicesTest extends MediaWikiTestCase {
                        'RevisionStore' => [ 'RevisionStore', RevisionStore::class ],
                        'RevisionStoreFactory' => [ 'RevisionStoreFactory', RevisionStoreFactory::class ],
                        'RevisionLookup' => [ 'RevisionLookup', RevisionLookup::class ],
+                       'RevisionFactory' => [ 'RevisionFactory', RevisionFactory::class ],
+                       'ContentModelStore' => [ 'ContentModelStore', NameTableStore::class ],
+                       'SlotRoleStore' => [ 'SlotRoleStore', NameTableStore::class ],
                        'HttpRequestFactory' => [ 'HttpRequestFactory', HttpRequestFactory::class ],
                        'CommentStore' => [ 'CommentStore', CommentStore::class ],
                        'ChangeTagDefStore' => [ 'ChangeTagDefStore', NameTableStore::class ],
+                       'ConfiguredReadOnlyMode' => [ 'ConfiguredReadOnlyMode', ConfiguredReadOnlyMode::class ],
+                       'ReadOnlyMode' => [ 'ReadOnlyMode', ReadOnlyMode::class ],
+                       'UploadRevisionImporter' => [ 'UploadRevisionImporter', UploadRevisionImporter::class ],
+                       'OldRevisionImporter' => [ 'OldRevisionImporter', OldRevisionImporter::class ],
+                       'WikiRevisionOldRevisionImporterNoUpdates' =>
+                               [ 'WikiRevisionOldRevisionImporterNoUpdates', ImportableOldRevisionImporter::class ],
+                       'ExternalStoreFactory' => [ 'ExternalStoreFactory', ExternalStoreFactory::class ],
+                       'PreferencesFactory' => [ 'PreferencesFactory', PreferencesFactory::class ],
+                       'ActorMigration' => [ 'ActorMigration', ActorMigration::class ],
                ];
        }
 
@@ -378,4 +392,15 @@ class MediaWikiServicesTest extends MediaWikiTestCase {
                }
        }
 
+       public function testDefaultServiceWiringServicesHaveTests() {
+               global $IP;
+               $testedServices = array_keys( $this->provideGetService() );
+               $allServices = array_keys( include $IP . '/includes/ServiceWiring.php' );
+               $this->assertEquals(
+                       [],
+                       array_diff( $allServices, $testedServices ),
+                       'The following services have not been added to MediaWikiServicesTest::provideGetService'
+               );
+       }
+
 }