Seb35 has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/380394 )
Change subject: New function readAnyFile to read a file with any extension ...................................................................... New function readAnyFile to read a file with any extension This is mainly used for the main config file farms.yml/.php/.json and will be useful to implement T162737. Also starting with this commit I will try to tag new tests (and possibly some old tests) with “[unit]” when it is clearly a unit test (=assumes the underlying functions are blackboxes and supposed to work as described) and “[integration]” when it clearly test an entire stack. This is a step forward to separate unit and integration tests (T162686). Also starting with this commit it is recommended to use "@uses ClassName" instead of "@uses ClassName::methodName" to reduce the burden of maintenance on the tests. This does not cover "@covers" annotations, which must stay "@covers ClassName::methodName". I will document these test-related changes on https://www.mediawiki.org/wiki/Extension:MediaWikiFarm and subpages. Change-Id: If01341da9fd6d099baadb61bf51d86eadbbfc919 --- M src/MediaWikiFarm.php M src/Utils.php M tests/phpunit/ConfigurationTest.php M tests/phpunit/ConstructionTest.php M tests/phpunit/InstallationIndependantTest.php M tests/phpunit/LoadingTest.php M tests/phpunit/LoggingTest.php M tests/phpunit/MediaWikiFarmTestCase.php M tests/phpunit/MonoversionInstallationTest.php M tests/phpunit/MultiversionInstallationTest.php M tests/phpunit/bin/MediaWikiFarmScriptTest.php A tests/phpunit/data/readAnyFile/success.json A tests/phpunit/data/readAnyFile/success.php 13 files changed, 215 insertions(+), 65 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MediaWikiFarm refs/changes/94/380394/1 diff --git a/src/MediaWikiFarm.php b/src/MediaWikiFarm.php index 7b6cb5e..365cbf8 100644 --- a/src/MediaWikiFarm.php +++ b/src/MediaWikiFarm.php @@ -837,17 +837,12 @@ # Read the farms configuration if( !$farms ) { - // @codingStandardsIgnoreStart MediaWiki.ControlStructures.AssignmentInControlStructures.AssignmentInControlStructures - if( $farms = $this->readFile( 'farms.yml', $this->configDir ) ) { - $this->farmConfig['coreconfig'][] = 'farms.yml'; - } elseif( $farms = $this->readFile( 'farms.php', $this->configDir ) ) { - $this->farmConfig['coreconfig'][] = 'farms.php'; - } elseif( $farms = $this->readFile( 'farms.json', $this->configDir ) ) { - $this->farmConfig['coreconfig'][] = 'farms.json'; + list( $farms, $file ) = MediaWikiFarmUtils::readAnyFile( 'farms', $this->configDir, $this->cacheDir, $this->log ); + if( $file ) { + $this->farmConfig['coreconfig'][] = $file; } else { return array( 'host' => $host, 'farm' => false, 'config' => false, 'variables' => false, 'farms' => false, 'redirects' => $redirects ); } - // @codingStandardsIgnoreEnd MediaWiki.ControlStructures.AssignmentInControlStructures.AssignmentInControlStructures } # For each proposed farm, check if the host matches diff --git a/src/Utils.php b/src/Utils.php index 46a1ea9..dcb31ff 100644 --- a/src/Utils.php +++ b/src/Utils.php @@ -194,6 +194,36 @@ } /** + * Read a file with any of the listed extensions. + * + * If multiple files exist with different extensions, the first (without syntax error) + * in the extensions list is returned. If some previous files had syntax errors, these + * syntax errors appear in the log. + * + * The available extensions are listed in the function MediaWikiFarmUtils::readFile. + * + * @param string $filename File name without the extension. + * @param string $directory Directory containing the file. + * @param string $cacheDir Cache directory. + * @param string[] $log Error log. + * @param string[] $formats List of possible extensions of the file. + * @param bool $cache The successfully file read must be cached. + * @return array 2-tuple with the result (array) and file read (string); in case no files were found, the second value is an empty string. + */ + static function readAnyFile( $filename, $directory, $cacheDir, array &$log, $formats = array( 'yml', 'php', 'json' ), $cache = true ) { + + foreach( $formats as $format ) { + + $array = self::readFile( $filename . '.' . $format, $cacheDir, $log, $directory, $cache ); + if( is_array( $array ) ) { + return array( $array, $filename . '.' . $format ); + } + } + + return array( array(), '' ); + } + + /** * Guess if a given directory contains MediaWiki. * * This heuristic (presence of [dir]/includes/DefaultSettings.php) has no false negatives diff --git a/tests/phpunit/ConfigurationTest.php b/tests/phpunit/ConfigurationTest.php index 7ca59f1..56c8d88 100644 --- a/tests/phpunit/ConfigurationTest.php +++ b/tests/phpunit/ConfigurationTest.php @@ -48,10 +48,8 @@ * @uses MediaWikiFarmConfiguration::__construct * @uses MediaWikiFarmConfiguration::getConfiguration * @uses MediaWikiFarmConfiguration::setEnvironment - * @uses AbstractMediaWikiFarmScript::rmdirr - * @uses MediaWikiFarmUtils::arrayMerge - * @uses MediaWikiFarmUtils::cacheFile - * @uses MediaWikiFarmUtils::readFile + * @uses AbstractMediaWikiFarmScript + * @uses MediaWikiFarmUtils */ function testHighlevelConfiguration() { @@ -166,8 +164,7 @@ * @uses MediaWikiFarmConfiguration::__construct * @uses MediaWikiFarmConfiguration::getConfiguration * @uses MediaWikiFarmConfiguration::composerKey - * @uses MediaWikiFarmUtils::isMediaWiki - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils */ function testLoadingMechanisms() { @@ -347,9 +344,8 @@ * @uses MediaWikiFarmConfiguration::setEnvironment * @uses MediaWikiFarmConfiguration::sortExtensions * @uses MediaWikiFarmConfiguration::composerKey - * @uses AbstractMediaWikiFarmScript::rmdirr - * @uses MediaWikiFarmUtils::arrayMerge - * @uses MediaWikiFarmUtils::readFile + * @uses AbstractMediaWikiFarmScript + * @uses MediaWikiFarmUtils */ function testLoadMediaWikiConfigMonoversion() { @@ -397,10 +393,8 @@ * @uses MediaWikiFarm::replaceVariables * @uses MediaWikiFarm::readFile * @uses MediaWikiFarmConfiguration::__construct - * @uses AbstractMediaWikiFarmScript::rmdirr - * @uses MediaWikiFarmUtils::cacheFile - * @uses MediaWikiFarmUtils::isMediaWiki - * @uses MediaWikiFarmUtils::readFile + * @uses AbstractMediaWikiFarmScript + * @uses MediaWikiFarmUtils */ function testSort() { diff --git a/tests/phpunit/ConstructionTest.php b/tests/phpunit/ConstructionTest.php index 5da9da6..40c61b4 100644 --- a/tests/phpunit/ConstructionTest.php +++ b/tests/phpunit/ConstructionTest.php @@ -26,7 +26,7 @@ * @covers MediaWikiFarm::getFarmConfiguration * @covers MediaWikiFarm::getVariable * @uses MediaWikiFarm::readFile - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils */ function testSuccessfulConstructionMultiversion() { @@ -83,7 +83,7 @@ * @covers MediaWikiFarm::getFarmConfiguration * @covers MediaWikiFarm::getVariable * @uses MediaWikiFarm::readFile - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils */ function testSuccessfulConstructionMonoversion() { @@ -152,7 +152,7 @@ * @covers MediaWikiFarm::getFarmConfiguration * @covers MediaWikiFarm::getVariable * @uses MediaWikiFarm::readFile - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils */ function testSuccessfulConstructionMultiversionSubdirectories() { @@ -206,7 +206,7 @@ * @covers MediaWikiFarm::__construct * @covers MediaWikiFarm::selectFarm * @uses MediaWikiFarm::readFile - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils * * @expectedException MWFConfigurationException * @expectedExceptionMessage No configuration file found @@ -479,7 +479,7 @@ * @covers MediaWikiFarm::selectFarm * @covers MediaWikiFarm::getVariable * @uses MediaWikiFarm::readFile - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils */ function testSuccessfulConstructionWithGlobalVariable() { @@ -505,7 +505,7 @@ * @covers MediaWikiFarm::selectFarm * @covers MediaWikiFarm::getVariable * @uses MediaWikiFarm::readFile - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils */ function testSuccessfulConstructionWithGlobalVariable2() { @@ -531,7 +531,7 @@ * @covers MediaWikiFarm::selectFarm * @covers MediaWikiFarm::getVariable * @uses MediaWikiFarm::readFile - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils */ function testSuccessfulConstructionWithGlobalVariable3() { @@ -557,7 +557,7 @@ * @covers MediaWikiFarm::selectFarm * @uses MediaWikiFarm::getVariable * @uses MediaWikiFarm::readFile - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils */ function testNormalPath() { @@ -579,7 +579,7 @@ * @covers MediaWikiFarm::selectFarm * @uses MediaWikiFarm::getVariable * @uses MediaWikiFarm::readFile - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils */ function testNormalPath2() { @@ -600,7 +600,7 @@ * @covers MediaWikiFarm::__construct * @covers MediaWikiFarm::selectFarm * @uses MediaWikiFarm::readFile - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils * * @expectedException MWFConfigurationException * @expectedExceptionMessage No farm corresponding to this host @@ -622,7 +622,7 @@ * @covers MediaWikiFarm::__construct * @covers MediaWikiFarm::selectFarm * @uses MediaWikiFarm::readFile - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils * * @expectedException MWFConfigurationException * @expectedExceptionMessage No farm corresponding to this host @@ -644,7 +644,7 @@ * @covers MediaWikiFarm::__construct * @covers MediaWikiFarm::selectFarm * @uses MediaWikiFarm::readFile - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils * * @expectedException MWFConfigurationException * @expectedExceptionMessage No farm corresponding to this host @@ -667,9 +667,8 @@ * @covers MediaWikiFarm::selectFarm * @covers MediaWikiFarm::getCacheDir * @uses MediaWikiFarm::readFile - * @uses AbstractMediaWikiFarmScript::rmdirr - * @uses MediaWikiFarmUtils::cacheFile - * @uses MediaWikiFarmUtils::readFile + * @uses AbstractMediaWikiFarmScript + * @uses MediaWikiFarmUtils */ function testCacheDirectoryCreation() { @@ -698,7 +697,7 @@ * @covers MediaWikiFarmConfiguration::__construct * @covers MediaWikiFarmConfiguration::getConfiguration * @uses MediaWikiFarm::readFile - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils */ function testCheckBasicObjectPropertiesMultiversion() { @@ -744,7 +743,7 @@ * @covers MediaWikiFarm::getConfigFile * @covers MediaWikiFarm::isLocalSettingsFresh * @uses MediaWikiFarm::readFile - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils */ function testCheckBasicObjectPropertiesMonoversion() { @@ -773,7 +772,7 @@ * @covers MediaWikiFarm::selectFarm * @covers MediaWikiFarm::getVariable * @uses MediaWikiFarm::readFile - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils */ function testNormalRedirect() { @@ -794,7 +793,7 @@ * @covers MediaWikiFarm::__construct * @covers MediaWikiFarm::selectFarm * @uses MediaWikiFarm::readFile - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils * * @expectedException MWFConfigurationException * @expectedExceptionMessage Infinite or too long redirect detected @@ -816,7 +815,7 @@ * @covers MediaWikiFarm::__construct * @covers MediaWikiFarm::selectFarm * @uses MediaWikiFarm::readFile - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils * * @expectedException MWFConfigurationException * @expectedExceptionMessage No farm corresponding to this host @@ -863,9 +862,7 @@ * @uses MediaWikiFarmConfiguration::detectComposer * @uses MediaWikiFarmConfiguration::setEnvironment * @uses MediaWikiFarmConfiguration::getConfiguration - * @uses MediaWikiFarmUtils::arrayMerge - * @uses MediaWikiFarmUtils::isMediaWiki - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils */ function testLoadingCorrect() { @@ -918,7 +915,7 @@ * @uses MediaWikiFarmConfiguration::sortExtensions * @uses MediaWikiFarmConfiguration::setEnvironment * @uses MediaWikiFarmConfiguration::getConfiguration - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils */ function testLoadingSoftMissingError() { @@ -956,7 +953,7 @@ * @uses MediaWikiFarm::readFile * @uses MediaWikiFarm::prepareLog * @uses MediaWikiFarm::issueLog - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils */ function testLoadingHardMissingError() { @@ -978,8 +975,8 @@ * @covers MediaWikiFarm::selectFarm * @uses MediaWikiFarm::__construct * @uses MediaWikiFarm::readFile - * @uses MediaWikiFarmUtils::readFile - * @uses MediaWikiFarmUtils5_3::readYAML + * @uses MediaWikiFarmUtils + * @uses MediaWikiFarmUtils5_3 * * @expectedException MWFConfigurationException * @expectedExceptionMessage Infinite or too long redirect detected @@ -1001,7 +998,7 @@ * @covers MediaWikiFarm::selectFarm * @uses MediaWikiFarm::__construct * @uses MediaWikiFarm::readFile - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils * * @expectedException MWFConfigurationException * @expectedExceptionMessage Infinite or too long redirect detected diff --git a/tests/phpunit/InstallationIndependantTest.php b/tests/phpunit/InstallationIndependantTest.php index ea1b88a..e2aafd6 100644 --- a/tests/phpunit/InstallationIndependantTest.php +++ b/tests/phpunit/InstallationIndependantTest.php @@ -44,6 +44,29 @@ } /** + * Create a PHP file with a bad syntax. + */ + static function setUpBeforeClass() { + + parent::setUpBeforeClass(); + + # Dynamically create this file to avoid CI error reports + file_put_contents( self::$wgMediaWikiFarmTestDataDir . '/readAnyFile/badsyntax.php', "<?php\nreturn array()\n" ); + } + + /** + * Remove the previously-created file. + */ + static function tearDownAfterClass() { + + if( is_file( self::$wgMediaWikiFarmTestDataDir . '/readAnyFile/badsyntax.php' ) ) { + unlink( self::$wgMediaWikiFarmTestDataDir . '/readAnyFile/badsyntax.php' ); + } + + parent::tearDownAfterClass(); + } + + /** * Set up the default MediaWikiFarm object with a sample correct configuration file. */ protected function setUp() { @@ -66,6 +89,7 @@ * @covers MediaWikiFarmUtils5_3::readYAML * @uses MediaWikiFarm::__construct * @uses MediaWikiFarm::selectFarm + * @uses MediaWikiFarmUtils::readAnyFile */ function testSuccessfulReadingYAML() { @@ -91,6 +115,7 @@ * @covers MediaWikiFarmUtils::readFile * @uses MediaWikiFarm::__construct * @uses MediaWikiFarm::selectFarm + * @uses MediaWikiFarmUtils::readAnyFile */ function testSuccessfulReadingPHP() { @@ -110,6 +135,7 @@ * @covers MediaWikiFarmUtils::readFile * @uses MediaWikiFarm::__construct * @uses MediaWikiFarm::selectFarm + * @uses MediaWikiFarmUtils::readAnyFile */ function testSuccessfulReadingJSON() { @@ -129,6 +155,7 @@ * @covers MediaWikiFarmUtils::readFile * @uses MediaWikiFarm::__construct * @uses MediaWikiFarm::selectFarm + * @uses MediaWikiFarmUtils::readAnyFile */ function testSuccessfulReadingSER() { @@ -148,6 +175,7 @@ * @covers MediaWikiFarmUtils::readFile * @uses MediaWikiFarm::__construct * @uses MediaWikiFarm::selectFarm + * @uses MediaWikiFarmUtils::readAnyFile */ function testSuccessfulReadingDblist() { @@ -167,6 +195,7 @@ * @covers MediaWikiFarmUtils::readFile * @uses MediaWikiFarm::__construct * @uses MediaWikiFarm::selectFarm + * @uses MediaWikiFarmUtils::readAnyFile */ function testReadMissingFile() { @@ -181,6 +210,7 @@ * @covers MediaWikiFarmUtils::readFile * @uses MediaWikiFarm::__construct * @uses MediaWikiFarm::selectFarm + * @uses MediaWikiFarmUtils::readAnyFile */ function testUnrecognisedFormatReadFile() { @@ -198,6 +228,7 @@ * @covers MediaWikiFarmUtils::readFile * @uses MediaWikiFarm::__construct * @uses MediaWikiFarm::selectFarm + * @uses MediaWikiFarmUtils::readAnyFile */ function testBadArgumentReadFile() { @@ -213,6 +244,7 @@ * @uses MediaWikiFarm::__construct * @uses MediaWikiFarm::selectFarm * @uses MediaWikiFarmUtils5_3::readYAML + * @uses MediaWikiFarmUtils::readAnyFile */ function testBadSyntaxFileReadingYAML() { @@ -234,6 +266,7 @@ * @covers MediaWikiFarmUtils::readFile * @uses MediaWikiFarm::__construct * @uses MediaWikiFarm::selectFarm + * @uses MediaWikiFarmUtils::readAnyFile */ function testBadSyntaxFileReadingJSON() { @@ -249,6 +282,7 @@ * @covers MediaWikiFarmUtils::readFile * @uses MediaWikiFarm::__construct * @uses MediaWikiFarm::selectFarm + * @uses MediaWikiFarmUtils::readAnyFile */ function testBadSyntaxFileReadingPHP() { @@ -264,6 +298,7 @@ * @uses MediaWikiFarm::__construct * @uses MediaWikiFarm::selectFarm * @uses MediaWikiFarmUtils5_3::readYAML + * @uses MediaWikiFarmUtils::readAnyFile */ function testEmptyFileReadingYAML() { @@ -284,6 +319,7 @@ * @covers MediaWikiFarmUtils::readFile * @uses MediaWikiFarm::__construct * @uses MediaWikiFarm::selectFarm + * @uses MediaWikiFarmUtils::readAnyFile */ function testEmptyFileReadingJSON() { @@ -298,6 +334,7 @@ * @covers MediaWikiFarmUtils::readFile * @uses MediaWikiFarm::__construct * @uses MediaWikiFarm::selectFarm + * @uses MediaWikiFarmUtils::readAnyFile */ function testEmptyFileReadingSER() { @@ -312,6 +349,7 @@ * @covers MediaWikiFarmUtils::readFile * @uses MediaWikiFarm::__construct * @uses MediaWikiFarm::selectFarm + * @uses MediaWikiFarmUtils::readAnyFile */ function testBadContentReadFile() { @@ -330,6 +368,7 @@ * @uses MediaWikiFarm::readFile * @uses MediaWikiFarm::getCacheDir * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils::readAnyFile */ function testNoCache() { @@ -352,6 +391,7 @@ * @uses MediaWikiFarm::__construct * @uses MediaWikiFarm::selectFarm * @uses AbstractMediaWikiFarmScript::rmdirr + * @uses MediaWikiFarmUtils::readAnyFile */ function testCacheFile() { @@ -396,6 +436,86 @@ } /** + * [unit] Test reading an extension-less file. + * + * @covers MediaWikiFarmUtils::readAnyFile + * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarm // should be removed: only used in setUp + */ + function testReadAnyFileSuccess() { + + $log = array(); + $result = MediaWikiFarmUtils::readAnyFile( 'success', self::$wgMediaWikiFarmTestDataDir . '/readAnyFile', false, $log ); + + $this->assertEquals( + true, + is_array( $result ) && array_keys( $result ) === array( 0, 1 ), + 'The returned value should be a list with two elements.' + ); + $this->assertEquals( 'success.php', $result[1], 'The read file should be the PHP file.' ); + $this->assertEquals( + array( + 0 => 'element1', + 1 => array( + 'element2' => 'element3', + ), + ), + $result[0], + 'The result should be the specified array.' + ); + } + + /** + * [unit] Test reading an extension-less file but non-existant file. + * + * @covers MediaWikiFarmUtils::readAnyFile + * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarm // should be removed: only used in setUp + */ + function testReadAnyFileNonExistant() { + + $log = array(); + $result = MediaWikiFarmUtils::readAnyFile( 'nonexistant', self::$wgMediaWikiFarmTestDataDir . '/readAnyFile', false, $log ); + + $this->assertEquals( + true, + is_array( $result ) && array_keys( $result ) === array( 0, 1 ), + 'The returned value should be a list with two elements.' + ); + $this->assertEquals( '', $result[1], 'There should be no read file.' ); + $this->assertEquals( + array(), + $result[0], + 'The result should be an empty array.' + ); + } + + /** + * [unit] Test reading an extension-less file with a bad syntax. + * + * @covers MediaWikiFarmUtils::readAnyFile + * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarm // should be removed: only used in setUp + */ + function testReadAnyFileBadSyntax() { + + $log = array(); + $result = MediaWikiFarmUtils::readAnyFile( 'badsyntax', self::$wgMediaWikiFarmTestDataDir . '/readAnyFile', false, $log ); + + $this->assertEquals( + true, + is_array( $result ) && array_keys( $result ) === array( 0, 1 ), + 'The returned value should be a list with two elements.' + ); + $this->assertEquals( '', $result[1], 'There should be no read file because the only file has a syntax error.' ); + $this->assertEquals( + array(), + $result[0], + 'The result should be an empty array.' + ); + } + + /** * Test a farm with a badly-formatted ‘variables’ file. * * This test is mainly used to add code coverage; the assertion is tested elsewhere. @@ -408,6 +528,7 @@ * @uses MediaWikiFarm::setVariable * @uses MediaWikiFarm::replaceVariables * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils::readAnyFile * * @expectedException MWFConfigurationException * @expectedExceptionMessage Missing or badly formatted file 'badsyntax.json' defining existing values for variable 'wiki' @@ -426,6 +547,7 @@ * @uses MediaWikiFarm::selectFarm * @uses MediaWikiFarm::readFile * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils::readAnyFile * * @expectedException InvalidArgumentException * @expectedExceptionMessage Argument of MediaWikiFarm->replaceVariables() must be a string or an array. @@ -445,6 +567,7 @@ * @uses MediaWikiFarm::getCodeDir * @uses MediaWikiFarm::readFile * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils::readAnyFile */ function testCreateLocalSettings() { @@ -565,6 +688,7 @@ * @uses MediaWikiFarm::selectFarm * @uses MediaWikiFarm::readFile * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils::readAnyFile */ function testComposerKey() { diff --git a/tests/phpunit/LoadingTest.php b/tests/phpunit/LoadingTest.php index 6549363..cef98d3 100644 --- a/tests/phpunit/LoadingTest.php +++ b/tests/phpunit/LoadingTest.php @@ -100,9 +100,7 @@ * @uses MediaWikiFarmConfiguration::populateSettings * @uses MediaWikiFarmConfiguration::detectComposer * @uses MediaWikiFarmConfiguration::getConfiguration - * @uses MediaWikiFarmUtils::arrayMerge - * @uses MediaWikiFarmUtils::isMediaWiki - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils */ function testAllLoadingMechanisms() { @@ -270,9 +268,7 @@ * @uses MediaWikiFarmConfiguration::setEnvironment * @uses MediaWikiFarmConfiguration::sortExtensions * @uses MediaWikiFarmConfiguration::getConfiguration - * @uses MediaWikiFarmUtils::arrayMerge - * @uses MediaWikiFarmUtils::isMediaWiki - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils */ function testExceptionsLoadingMechanisms() { diff --git a/tests/phpunit/LoggingTest.php b/tests/phpunit/LoggingTest.php index 7b03845..7a8015d 100644 --- a/tests/phpunit/LoggingTest.php +++ b/tests/phpunit/LoggingTest.php @@ -61,7 +61,7 @@ * @uses MediaWikiFarm::__construct * @uses MediaWikiFarm::selectFarm * @uses MediaWikiFarm::readFile - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils */ function testLoggingAMessage() { @@ -86,7 +86,7 @@ * @uses MediaWikiFarm::__construct * @uses MediaWikiFarm::selectFarm * @uses MediaWikiFarm::readFile - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils */ function testLoggingAMessageAndAnException() { diff --git a/tests/phpunit/MediaWikiFarmTestCase.php b/tests/phpunit/MediaWikiFarmTestCase.php index 6b21161..7355e9b 100644 --- a/tests/phpunit/MediaWikiFarmTestCase.php +++ b/tests/phpunit/MediaWikiFarmTestCase.php @@ -50,6 +50,9 @@ /** @var string Farm code directory. */ public static $wgMediaWikiFarmFarmDir = ''; + /** @var string Data directory for tests. */ + public static $wgMediaWikiFarmTestDataDir = ''; + /** @var string Configuration directory for tests. */ public static $wgMediaWikiFarmConfigDir = ''; @@ -114,6 +117,7 @@ # Set test configuration parameters self::$wgMediaWikiFarmFarmDir = dirname( dirname( dirname( __FILE__ ) ) ); + self::$wgMediaWikiFarmTestDataDir = dirname( __FILE__ ) . '/data'; self::$wgMediaWikiFarmConfigDir = dirname( __FILE__ ) . '/data/config'; self::$wgMediaWikiFarmCodeDir = dirname( __FILE__ ) . '/data/mediawiki'; self::$wgMediaWikiFarmCacheDir = dirname( __FILE__ ) . '/data/cache'; diff --git a/tests/phpunit/MonoversionInstallationTest.php b/tests/phpunit/MonoversionInstallationTest.php index eb6af33..baf9435 100644 --- a/tests/phpunit/MonoversionInstallationTest.php +++ b/tests/phpunit/MonoversionInstallationTest.php @@ -18,6 +18,7 @@ * @group MediaWikiFarm * @covers MediaWikiFarm * @covers MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils::readAnyFile */ class MonoversionInstallationTest extends MediaWikiFarmTestCase { diff --git a/tests/phpunit/MultiversionInstallationTest.php b/tests/phpunit/MultiversionInstallationTest.php index 5ff1323..ca41658 100644 --- a/tests/phpunit/MultiversionInstallationTest.php +++ b/tests/phpunit/MultiversionInstallationTest.php @@ -19,6 +19,7 @@ * @covers MediaWikiFarmUtils::isMediaWiki * @covers MediaWikiFarmUtils::cacheFile * @covers MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils::readAnyFile */ class MultiversionInstallationTest extends MediaWikiFarmTestCase { diff --git a/tests/phpunit/bin/MediaWikiFarmScriptTest.php b/tests/phpunit/bin/MediaWikiFarmScriptTest.php index 50e0370..a63fddb 100644 --- a/tests/phpunit/bin/MediaWikiFarmScriptTest.php +++ b/tests/phpunit/bin/MediaWikiFarmScriptTest.php @@ -325,7 +325,7 @@ * @uses MediaWikiFarmConfiguration::setEnvironment * @uses MediaWikiFarmConfiguration::sortExtensions * @uses MediaWikiFarmConfiguration::getConfiguration - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils */ function testMissingHost() { @@ -367,7 +367,7 @@ * @uses MediaWikiFarm::readFile * @uses MediaWikiFarm::prepareLog * @uses MediaWikiFarm::issueLog - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils */ function testInternalProblem() { @@ -425,7 +425,7 @@ * @uses MediaWikiFarmConfiguration::sortExtensions * @uses MediaWikiFarmConfiguration::getConfiguration * @uses MediaWikiFarmUtils::arrayMerge - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils */ function testMissingScript() { @@ -487,9 +487,7 @@ * @uses MediaWikiFarmConfiguration::setEnvironment * @uses MediaWikiFarmConfiguration::sortExtensions * @uses MediaWikiFarmConfiguration::getConfiguration - * @uses MediaWikiFarmUtils::arrayMerge - * @uses MediaWikiFarmUtils::isMediaWiki - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils */ function testSuccessfulLoading() { @@ -567,8 +565,7 @@ * @uses MediaWikiFarmConfiguration::setEnvironment * @uses MediaWikiFarmConfiguration::sortExtensions * @uses MediaWikiFarmConfiguration::getConfiguration - * @uses MediaWikiFarmUtils::arrayMerge - * @uses MediaWikiFarmUtils::readFile + * @uses MediaWikiFarmUtils */ function testRestInPeace() { diff --git a/tests/phpunit/data/readAnyFile/success.json b/tests/phpunit/data/readAnyFile/success.json new file mode 100644 index 0000000..16774d1 --- /dev/null +++ b/tests/phpunit/data/readAnyFile/success.json @@ -0,0 +1,3 @@ +[ + "element1" +] diff --git a/tests/phpunit/data/readAnyFile/success.php b/tests/phpunit/data/readAnyFile/success.php new file mode 100644 index 0000000..933e950 --- /dev/null +++ b/tests/phpunit/data/readAnyFile/success.php @@ -0,0 +1,8 @@ +<?php + +return array( + 0 => 'element1', + 1 => array( + 'element2' => 'element3', + ), +); -- To view, visit https://gerrit.wikimedia.org/r/380394 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: If01341da9fd6d099baadb61bf51d86eadbbfc919 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/MediaWikiFarm Gerrit-Branch: master Gerrit-Owner: Seb35 <se...@seb35.fr> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits