wiki.techinc.nl/tests/phpunit/maintenance/UpdateMediaWikiTest.php
Dreamy Jazz 6e31b42512 Start on tests for update.php
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
2024-08-19 16:27:32 +00:00

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();
}
}