1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
<?php
namespace MediaWiki\Tests\Maintenance;
use FindDeprecated;
use Wikimedia\TestingAccessWrapper;
/**
* Tests that a XML file exported by {@link ExportSites} can be imported by {@link ImportSites}.
*
* @covers FindDeprecated
* @covers DeprecatedInterfaceFinder
* @covers FileAwareNodeVisitor
* @group Database
* @author Dreamy Jazz
*/
class FindDeprecatedTest extends MaintenanceBaseTestCase {
private const FIXTURE_DIRECTORY = MW_INSTALL_PATH . '/tests/phpunit/data/FindDeprecated';
protected function getMaintenanceClass() {
return FindDeprecated::class;
}
protected function createMaintenance() {
// Mock ::getMwInstallPath to return our mock path
$obj = $this->getMockBuilder( $this->getMaintenanceClass() )
->onlyMethods( [ 'getMwInstallPath' ] )
->getMock();
$obj->method( 'getMwInstallPath' )
->willReturn( self::FIXTURE_DIRECTORY );
return TestingAccessWrapper::newFromObject( $obj );
}
public function testExecute() {
// Creation of dynamic property is deprecated which is done by the script being tested.
// FIXME: Make this test work in PHP 8.2 and above.
$this->markTestSkippedIfPhp( '>=', '8.2' );
$this->maintenance->execute();
$this->expectOutputRegex(
"/Deprecated since 1.42:\n.*" . preg_quote( '+ FileWithDeprecatedCodeInSubDirectory::testMethodOne' )
. "[\s\S]*" .
"Deprecated since 1.43:\n.*" . preg_quote( '- FileWithDeprecatedCode::testMethodOne' ) . "[\s\S]*" .
"Deprecated since 1.44:\n.*" . preg_quote( '+ FileWithDeprecatedCode::testMethodTwo' ) . "[\s\S]*" .
"legend:\n.*-: soft-deprecated\n.*" . preg_quote( '+: hard-deprecated' ) . "/"
);
}
}
|