Why: * Maintenance scripts in core are mostly untested and testing them will help to avoid regressions. * While this script is run through setting up MediaWiki in CI, this mode of testing does not test what happens when invalid arguments or options are provided to the script. What: * Create UpdateMediaWikiTest. Bug: T371167 Change-Id: I1138031fcdec0cbc4413b08c484322249f90a1da
37 lines
1.3 KiB
PHP
37 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace MediaWiki\Tests\Maintenance;
|
|
|
|
use MediaWiki\MainConfigNames;
|
|
use UpdateMediaWiki;
|
|
|
|
// UpdateMediaWiki is not autoloaded, and therefore we need to load the file here. Using require_once should
|
|
// be enough to achieve this.
|
|
require_once MW_INSTALL_PATH . '/maintenance/update.php';
|
|
|
|
/**
|
|
* @covers \UpdateMediaWiki
|
|
* @group Database
|
|
* @author Dreamy Jazz
|
|
*/
|
|
class UpdateMediaWikiTest extends MaintenanceBaseTestCase {
|
|
public function getMaintenanceClass() {
|
|
return UpdateMediaWiki::class;
|
|
}
|
|
|
|
public function testExecuteWhenAllowSchemaUpdatesSetToFalse() {
|
|
$this->overrideConfigValue( MainConfigNames::AllowSchemaUpdates, false );
|
|
$this->expectCallToFatalError();
|
|
$this->expectOutputRegex( '/Do not run update\.php on this wiki/' );
|
|
$this->maintenance->execute();
|
|
}
|
|
|
|
public function testExecuteWhenUsingInvalidConfig() {
|
|
// Set wgAutoCreateTempUser to true to simulate that an invalid config has been set in LocalSettings.php.
|
|
// wgAutoCreateTempUser should normally be an array and a boolean value is invalid for this configuration.
|
|
$this->overrideConfigValue( MainConfigNames::AutoCreateTempUser, true );
|
|
$this->expectCallToFatalError();
|
|
$this->expectOutputRegex( '/Some of your configuration settings caused a warning[\s\S]*AutoCreateTempUser/' );
|
|
$this->maintenance->execute();
|
|
}
|
|
}
|