tests: Use TestingAccessWrapper to reload LanguageConverter tables
authorC. Scott Ananian <cscott@cscott.net>
Tue, 27 Jun 2017 21:09:12 +0000 (17:09 -0400)
committerC. Scott Ananian <cscott@cscott.net>
Tue, 27 Jun 2017 21:11:09 +0000 (17:11 -0400)
Make the LanguageConverter::reloadTables method actually private,
and use the TestingAccessWrapper to call it when running parser tests.

Follow-up to I65736520cd04bfe8949b29ade07338a6e1b88a4d.

Change-Id: I43b81b8fef6441ad50b858ff7757732ecb5eef91

languages/FakeConverter.php
languages/LanguageConverter.php
tests/parser/ParserTestRunner.php

index 0bf88c6..22377c2 100644 (file)
@@ -126,6 +126,11 @@ class FakeConverter {
        public function updateConversionTable( Title $title ) {
        }
 
-       public function reloadTables() {
+       /**
+        * Used by test suites which need to reset the converter state.
+        *
+        * @private
+        */
+       private function reloadTables() {
        }
 }
index ef88c12..2137786 100644 (file)
@@ -891,11 +891,11 @@ class LanguageConverter {
        /**
         * Reload the conversion tables.
         *
-        * Public only for use by test suites which need to reset the converter
-        * state.
+        * Also used by test suites which need to reset the converter state.
         *
+        * @private
         */
-       function reloadTables() {
+       private function reloadTables() {
                if ( $this->mTables ) {
                        unset( $this->mTables );
                }
index 26c5586..5aba371 100644 (file)
@@ -28,6 +28,7 @@
 use Wikimedia\Rdbms\IDatabase;
 use MediaWiki\MediaWikiServices;
 use Wikimedia\ScopedCallback;
+use Wikimedia\TestingAccessWrapper;
 
 /**
  * @ingroup Testing
@@ -1046,7 +1047,10 @@ class ParserTestRunner {
                $context->setLanguage( $lang );
                $teardown[] = function () use ( $context ) {
                        // Clear language conversion tables
-                       $context->getLanguage()->getConverter()->reloadTables();
+                       $wrapper = TestingAccessWrapper::newFromObject(
+                               $context->getLanguage()->getConverter()
+                       );
+                       $wrapper->reloadTables();
                        // Reset context to the restored globals
                        $context->setUser( $GLOBALS['wgUser'] );
                        $context->setLanguage( $GLOBALS['wgContLang'] );