diff options
Diffstat (limited to 'tests')
54 files changed, 334 insertions, 121 deletions
diff --git a/tests/jest/mediawiki.special.block/BlockLog.test.js b/tests/jest/mediawiki.special.block/BlockLog.test.js index 1e9b806de19c..6c7fad5f8c16 100644 --- a/tests/jest/mediawiki.special.block/BlockLog.test.js +++ b/tests/jest/mediawiki.special.block/BlockLog.test.js @@ -65,7 +65,7 @@ describe( 'BlockLog', () => { } ); it( 'should show the active hightlighted selected row', async () => { - mockMwConfigGet( { blockTargetUser: 'ActiveBlockedUser' } ); + mockMwConfigGet( { blockTargetUser: 'ActiveBlockedUser', blockTargetExists: true, blockId: 1116 } ); const wrapper = mount( BlockLog, { propsData: { blockLogType: 'active' }, global: { plugins: [ createTestingPinia( { stubActions: false } ) ] } diff --git a/tests/jest/mediawiki.special.block/SpecialBlock.setup.js b/tests/jest/mediawiki.special.block/SpecialBlock.setup.js index 2a6268463276..7d6864c31b2a 100644 --- a/tests/jest/mediawiki.special.block/SpecialBlock.setup.js +++ b/tests/jest/mediawiki.special.block/SpecialBlock.setup.js @@ -45,7 +45,7 @@ function getSpecialBlock( config = {}, apiMocks = [] ) { function mockMwConfigGet( config = {} ) { const mockConfig = Object.assign( { blockEnableMultiblocks: true, - blockId: 1116, + blockId: null, wgNamespaceIds: { '': '(Main)', talk: 'Talk', diff --git a/tests/jest/mediawiki.special.block/SpecialBlock.test.js b/tests/jest/mediawiki.special.block/SpecialBlock.test.js index 366fdfc5142e..0ddc9ce8012a 100644 --- a/tests/jest/mediawiki.special.block/SpecialBlock.test.js +++ b/tests/jest/mediawiki.special.block/SpecialBlock.test.js @@ -35,7 +35,7 @@ describe( 'SpecialBlock', () => { await wrapper.find( '[name=wpTarget]' ).setValue( 'ExampleUser' ); await wrapper.find( '[name=wpTarget]' ).trigger( 'change' ); expect( wrapper.find( '.mw-block__block-form' ).exists() ).toBeTruthy(); - expect( wrapper.find( '.mw-block-submit' ).text() ).toStrictEqual( 'ipbsubmit' ); + expect( wrapper.find( '.mw-block-submit' ).text() ).toStrictEqual( 'block-submit' ); } ); it( 'should show a banner and "Add block" button based on if user is already blocked', () => { @@ -57,6 +57,7 @@ describe( 'SpecialBlock', () => { await wrapper.find( '[name=wpTarget]' ).setValue( 'ExampleUser' ); await wrapper.find( '[name=wpTarget]' ).trigger( 'change' ); await flushPromises(); + expect( wrapper.find( '.mw-block__block-form h2' ).text() ).toStrictEqual( 'block-create' ); await wrapper.find( '.cdx-radio__input[value=datetime]' ).setValue( true ); await wrapper.find( '[name=wpExpiry-other]' ).setValue( '2999-01-23T12:34' ); await wrapper.find( '[name=wpReason-other]' ).setValue( 'This is a test' ); @@ -87,6 +88,7 @@ describe( 'SpecialBlock', () => { wrapper = withSubmission( undefined, { block: { user: 'ExampleUser' } } ); await wrapper.find( '[name=wpTarget]' ).setValue( 'ExampleUser' ); await wrapper.find( '[name=wpTarget]' ).trigger( 'change' ); + await flushPromises(); await wrapper.find( '.cdx-radio__input[value=datetime]' ).setValue( true ); await wrapper.find( '[name=wpExpiry-other]' ).setValue( '2999-01-23T12:34' ); await wrapper.find( '[name=wpReason-other]' ).setValue( 'This is a test' ); @@ -96,7 +98,8 @@ describe( 'SpecialBlock', () => { await submitButton.trigger( 'click' ); expect( spy ).toHaveBeenCalledWith( { action: 'block', - id: 1116, + user: 'ExampleUser', + newblock: 1, expiry: '2999-01-23T12:34Z', reason: 'This is a test', nocreate: 1, @@ -116,6 +119,7 @@ describe( 'SpecialBlock', () => { wrapper = withSubmission(); await wrapper.find( '[name=wpTarget]' ).setValue( 'ExampleUser' ); await wrapper.find( '[name=wpTarget]' ).trigger( 'change' ); + await flushPromises(); await wrapper.find( '.cdx-radio__input[value=datetime]' ).setValue( true ); // Add invalid date await wrapper.find( '[name=wpExpiry-other]' ).setValue( '0000-01-23T12:34:56' ); @@ -193,7 +197,8 @@ describe( 'SpecialBlock', () => { expect( wrapper.find( '[data-test=edit-block-button]' ).exists() ).toBeTruthy(); await wrapper.find( '[data-test=edit-block-button]' ).trigger( 'click' ); expect( wrapper.find( '.mw-block__block-form' ).exists() ).toBeTruthy(); - expect( wrapper.find( '.mw-block-submit' ).text() ).toStrictEqual( 'block-update' ); + expect( wrapper.find( '.mw-block__block-form h2' ).text() ).toStrictEqual( 'block-update' ); + expect( wrapper.find( '.mw-block-submit' ).text() ).toStrictEqual( 'block-submit' ); wrapper.find( '[name=wpReason-other]' ).setValue( 'This is a test' ); expect( store.reason ).toStrictEqual( 'other' ); expect( store.reasonOther ).toStrictEqual( 'This is a test' ); @@ -226,7 +231,7 @@ describe( 'SpecialBlock', () => { } ); it( 'should show an "Add block" button in the page', async () => { - wrapper = getSpecialBlock( { blockTargetExists: true } ); + wrapper = getSpecialBlock( { blockTargetUser: 'ExampleUser', blockTargetExists: true } ); expect( wrapper.find( '.mw-block__create-button' ).exists() ).toBeTruthy(); } ); @@ -261,7 +266,8 @@ describe( 'SpecialBlock', () => { expect( wrapper.find( '[data-test=edit-block-button]' ).exists() ).toBeTruthy(); await wrapper.find( '[data-test=edit-block-button]' ).trigger( 'click' ); expect( wrapper.find( '.mw-block__block-form' ).exists() ).toBeTruthy(); - expect( wrapper.find( '.mw-block-submit' ).text() ).toStrictEqual( 'block-update' ); + expect( wrapper.find( '.mw-block__block-form h2' ).text() ).toStrictEqual( 'block-update' ); + expect( wrapper.find( '.mw-block-submit' ).text() ).toStrictEqual( 'block-submit' ); wrapper.find( '[name=wpReason-other]' ).setValue( 'This is a test' ); expect( store.reason ).toStrictEqual( 'other' ); expect( store.reasonOther ).toStrictEqual( 'This is a test' ); diff --git a/tests/jest/mediawiki.special.block/stores/block.test.js b/tests/jest/mediawiki.special.block/stores/block.test.js index 8712f99df3df..6072788fcbff 100644 --- a/tests/jest/mediawiki.special.block/stores/block.test.js +++ b/tests/jest/mediawiki.special.block/stores/block.test.js @@ -110,13 +110,12 @@ describe( 'Block API', () => { expect( spy ).toHaveBeenCalledWith( expected ); } ); - it( 'should only pass not pass the reblock param to the API if there was an "already blocked" error (Multiblocks ON)', () => { - mockMwConfigGet( { blockAlreadyBlocked: false } ); + it( 'should pass the newblock param and not the reblock param (Multiblocks ON)', () => { + mockMwConfigGet( { blockAlreadyBlocked: false, blockEnableMultiblocks: true } ); const store = useBlockStore(); store.doBlock(); const spy = jest.spyOn( mw.Api.prototype, 'postWithEditToken' ); const expected = { - id: 1116, action: 'block', allowusertalk: 1, nocreate: 1, @@ -127,8 +126,10 @@ describe( 'Block API', () => { expiry: '', format: 'json', formatversion: 2, + newblock: 1, reason: '', - uselang: 'en' + uselang: 'en', + user: '' }; expect( spy ).toHaveBeenCalledWith( expected ); store.alreadyBlocked = true; @@ -185,7 +186,7 @@ describe( 'Block API', () => { } ); it( 'should not send the allowusertalk API param when the disableUTEdit field is hidden (Multiblocks ON)', () => { - mockMwConfigGet( { blockDisableUTEditVisible: true } ); + mockMwConfigGet( { blockDisableUTEditVisible: true, blockId: 1116 } ); const store = useBlockStore(); // Sitewide block can disable user talk page editing. store.type = 'sitewide'; diff --git a/tests/parser/ParserTestRunner.php b/tests/parser/ParserTestRunner.php index 328b0c12073f..61e66d6db069 100644 --- a/tests/parser/ParserTestRunner.php +++ b/tests/parser/ParserTestRunner.php @@ -29,6 +29,7 @@ use MediaWiki\Content\WikitextContent; use MediaWiki\Context\IContextSource; use MediaWiki\Context\RequestContext; +use MediaWiki\FileRepo\RepoGroup; use MediaWiki\HookContainer\HookRunner; use MediaWiki\Html\Html; use MediaWiki\Interwiki\ClassicInterwikiLookup; diff --git a/tests/phpunit/includes/Permissions/PermissionManagerTest.php b/tests/phpunit/includes/Permissions/PermissionManagerTest.php index f9710fb7e897..8eb035ab671c 100644 --- a/tests/phpunit/includes/Permissions/PermissionManagerTest.php +++ b/tests/phpunit/includes/Permissions/PermissionManagerTest.php @@ -2,7 +2,7 @@ namespace MediaWiki\Tests\Integration\Permissions; -use Action; +use MediaWiki\Actions\Action; use MediaWiki\Api\ApiMessage; use MediaWiki\Block\AnonIpBlockTarget; use MediaWiki\Block\BlockActionInfo; diff --git a/tests/phpunit/includes/Storage/DerivedPageDataUpdaterTest.php b/tests/phpunit/includes/Storage/DerivedPageDataUpdaterTest.php index 882a0a8212b9..2338bf3ed8de 100644 --- a/tests/phpunit/includes/Storage/DerivedPageDataUpdaterTest.php +++ b/tests/phpunit/includes/Storage/DerivedPageDataUpdaterTest.php @@ -3,8 +3,6 @@ namespace MediaWiki\Tests\Storage; use DummyContentHandlerForTesting; -use LogPage; -use ManualLogEntry; use MediaWiki\CommentStore\CommentStoreComment; use MediaWiki\Config\ServiceOptions; use MediaWiki\Content\Content; @@ -18,6 +16,8 @@ use MediaWiki\Deferred\DeferredUpdates; use MediaWiki\Deferred\LinksUpdate\LinksUpdate; use MediaWiki\Deferred\MWCallableUpdate; use MediaWiki\Edit\ParsoidRenderID; +use MediaWiki\Logging\LogPage; +use MediaWiki\Logging\ManualLogEntry; use MediaWiki\MainConfigNames; use MediaWiki\Message\Message; use MediaWiki\Page\Event\PageRevisionUpdatedEvent; @@ -44,6 +44,7 @@ use MediaWikiIntegrationTestCase; use MockTitleTrait; use PHPUnit\Framework\Assert; use PHPUnit\Framework\MockObject\MockObject; +use RecentChange; use Wikimedia\ObjectCache\BagOStuff; use Wikimedia\Rdbms\Platform\ISQLPlatform; use Wikimedia\TestingAccessWrapper; @@ -1423,17 +1424,24 @@ class DerivedPageDataUpdaterTest extends MediaWikiIntegrationTestCase { public static function provideEnqueueRevertedTagUpdateJob() { return [ - 'approved' => [ true, 1 ], - 'not approved' => [ false, 0 ] + 'not patrolled' => [ true, 0, 0 ], + 'patrolled' => [ true, RecentChange::PRC_AUTOPATROLLED, 1 ], + 'autopatrolled' => [ true, RecentChange::PRC_AUTOPATROLLED, 1 ], + 'patrolling disabled' => [ false, 0, 1 ] ]; } /** * @covers \MediaWiki\Storage\DerivedPageDataUpdater::doUpdates - * @covers \MediaWiki\Storage\DerivedPageDataUpdater::maybeEnqueueRevertedTagUpdateJob + * @covers \MediaWiki\RecentChanges\ChangeTrackingEventIngress::updateRevertTagAfterPageUpdated * @dataProvider provideEnqueueRevertedTagUpdateJob */ - public function testEnqueueRevertedTagUpdateJob( bool $approved, int $queueSize ) { + public function testEnqueueRevertedTagUpdateJob( + bool $useRcPatrol, + int $rcPatrolStatus, + int $expectQueueSize + ) { + $this->overrideConfigValue( MainConfigNames::UseRCPatrol, $useRcPatrol ); $page = $this->getPage( __METHOD__ ); $content = [ SlotRecord::MAIN => new WikitextContent( '1' ) ]; @@ -1453,7 +1461,7 @@ class DerivedPageDataUpdaterTest extends MediaWikiIntegrationTestCase { $updater->prepareUpdate( $rev, [ 'editResult' => $editResult, - 'approved' => $approved + 'rcPatrolStatus' => $rcPatrolStatus, ] ); $updater->doUpdates(); @@ -1467,23 +1475,16 @@ class DerivedPageDataUpdaterTest extends MediaWikiIntegrationTestCase { ) ); - if ( $approved ) { - $this->assertNull( - $editResultCache->get( $rev->getId() ), - 'EditResult should not be cached when the revert is approved' - ); - } else { - $this->assertEquals( - $editResult, - $editResultCache->get( $rev->getId() ), - 'EditResult should be cached when the revert is not approved' - ); - } + $this->assertEquals( + $editResult, + $editResultCache->get( $rev->getId() ), + 'EditResult should be cached when the revert is not approved' + ); $jobQueueGroup = $this->getServiceContainer()->getJobQueueGroup(); $jobQueue = $jobQueueGroup->get( 'revertedTagUpdate' ); $this->assertSame( - $queueSize, + $expectQueueSize, $jobQueue->getSize() ); } diff --git a/tests/phpunit/includes/Storage/PageUpdaterTest.php b/tests/phpunit/includes/Storage/PageUpdaterTest.php index 7b4892c8f757..30cd345e604e 100644 --- a/tests/phpunit/includes/Storage/PageUpdaterTest.php +++ b/tests/phpunit/includes/Storage/PageUpdaterTest.php @@ -1418,7 +1418,9 @@ class PageUpdaterTest extends MediaWikiIntegrationTestCase { $services->getWikiPageFactory(), $services->getHookContainer(), $services->getUserNameUtils(), - $services->getTalkPageNotificationManager() + $services->getTalkPageNotificationManager(), + $services->getMainConfig(), + $services->getJobQueueGroup() ); $services->getDomainEventSource() diff --git a/tests/phpunit/includes/actions/RollbackActionTest.php b/tests/phpunit/includes/actions/RollbackActionTest.php index 8cf9557775ce..589ff979a049 100644 --- a/tests/phpunit/includes/actions/RollbackActionTest.php +++ b/tests/phpunit/includes/actions/RollbackActionTest.php @@ -4,6 +4,7 @@ namespace MediaWiki\Tests\Action; use Article; use ErrorPageError; +use MediaWiki\Actions\RollbackAction; use MediaWiki\Context\DerivativeContext; use MediaWiki\Context\RequestContext; use MediaWiki\Request\FauxRequest; @@ -11,10 +12,9 @@ use MediaWiki\Request\WebRequest; use MediaWiki\Title\Title; use MediaWiki\User\User; use MediaWikiIntegrationTestCase; -use RollbackAction; /** - * @covers \RollbackAction + * @covers \MediaWiki\Actions\RollbackAction * @group Database */ class RollbackActionTest extends MediaWikiIntegrationTestCase { diff --git a/tests/phpunit/includes/api/ApiBlockTest.php b/tests/phpunit/includes/api/ApiBlockTest.php index a702f29a256a..87fe35a794fa 100644 --- a/tests/phpunit/includes/api/ApiBlockTest.php +++ b/tests/phpunit/includes/api/ApiBlockTest.php @@ -2,12 +2,12 @@ namespace MediaWiki\Tests\Api; -use LogEntryBase; use MediaWiki\Block\DatabaseBlock; use MediaWiki\Block\DatabaseBlockStore; use MediaWiki\Block\Restriction\ActionRestriction; use MediaWiki\Block\Restriction\NamespaceRestriction; use MediaWiki\Block\Restriction\PageRestriction; +use MediaWiki\Logging\LogEntryBase; use MediaWiki\MainConfigNames; use MediaWiki\Permissions\Authority; use MediaWiki\Permissions\UltimateAuthority; diff --git a/tests/phpunit/includes/api/ApiUploadTest.php b/tests/phpunit/includes/api/ApiUploadTest.php index 6456e89be356..9821428fefe4 100644 --- a/tests/phpunit/includes/api/ApiUploadTest.php +++ b/tests/phpunit/includes/api/ApiUploadTest.php @@ -2,12 +2,12 @@ namespace MediaWiki\Tests\Api; -use LocalRepo; +use MediaWiki\FileRepo\LocalRepo; +use MediaWiki\FileRepo\RepoGroup; use MediaWiki\MainConfigNames; use MediaWiki\Permissions\Authority; use MediaWiki\Title\Title; use MediaWiki\WikiMap\WikiMap; -use RepoGroup; use Wikimedia\FileBackend\FSFileBackend; use Wikimedia\Mime\MimeAnalyzer; diff --git a/tests/phpunit/includes/api/query/ApiQueryImageInfoTest.php b/tests/phpunit/includes/api/query/ApiQueryImageInfoTest.php index 56d07f711b46..8a63da254292 100644 --- a/tests/phpunit/includes/api/query/ApiQueryImageInfoTest.php +++ b/tests/phpunit/includes/api/query/ApiQueryImageInfoTest.php @@ -2,8 +2,8 @@ namespace MediaWiki\Tests\Api\Query; -use File; use MediaWiki\Api\ApiQueryImageInfo; +use MediaWiki\FileRepo\File\File; use MediaWiki\Request\FauxRequest; use MediaWiki\Tests\Api\ApiTestCase; use MediaWiki\Tests\Unit\Permissions\MockAuthorityTrait; diff --git a/tests/phpunit/includes/auth/AuthManagerTest.php b/tests/phpunit/includes/auth/AuthManagerTest.php index aa0da5ddd1e0..534d3863917e 100644 --- a/tests/phpunit/includes/auth/AuthManagerTest.php +++ b/tests/phpunit/includes/auth/AuthManagerTest.php @@ -3,7 +3,6 @@ namespace MediaWiki\Tests\Auth; use Closure; -use DatabaseLogEntry; use DomainException; use DummySessionProvider; use DynamicPropertyTestHelper; @@ -44,6 +43,7 @@ use MediaWiki\HookContainer\StaticHookRegistry; use MediaWiki\Language\Language; use MediaWiki\Languages\LanguageConverterFactory; use MediaWiki\Logger\LoggerFactory; +use MediaWiki\Logging\DatabaseLogEntry; use MediaWiki\MainConfigNames; use MediaWiki\MediaWikiServices; use MediaWiki\Message\Message; diff --git a/tests/phpunit/includes/collation/CustomUppercaseCollationTest.php b/tests/phpunit/includes/collation/CustomUppercaseCollationTest.php index 5428153294f3..603b896bdad6 100644 --- a/tests/phpunit/includes/collation/CustomUppercaseCollationTest.php +++ b/tests/phpunit/includes/collation/CustomUppercaseCollationTest.php @@ -18,7 +18,8 @@ class CustomUppercaseCollationTest extends MediaWikiIntegrationTestCase { 'D', 'C', 'Cs', - 'B' + [ 'V', 'W' ], + 'B', ], 'en' // digital transformation language ); @@ -44,7 +45,9 @@ class CustomUppercaseCollationTest extends MediaWikiIntegrationTestCase { [ 'c', 'b', 'lowercase' ], [ 'x', 'z', 'lowercase original' ], [ 'Cz', 'Cs', 'digraphs' ], - [ 'C50D', 'C100', 'Numbers' ] + [ 'C50D', 'C100', 'Numbers' ], + [ 'V', 'b', 'Equal weight groups' ], + [ 'W', 'b', 'Equal weight groups' ], ]; } @@ -64,13 +67,17 @@ class CustomUppercaseCollationTest extends MediaWikiIntegrationTestCase { [ "\u{F3000}Foo", 'D' ], [ "\u{F3001}Foo", 'C' ], [ "\u{F3002}Foo", 'Cs' ], - [ "\u{F3003}Foo", 'B' ], - [ "\u{F3004}Foo", "\u{F3004}" ], + [ "\u{F3004}Foo", 'B' ], + [ "\u{F3005}Foo", "\u{F3005}" ], [ 'C', 'C' ], [ 'Cz', 'C' ], [ 'Cs', 'Cs' ], [ 'CS', 'Cs' ], [ 'cs', 'Cs' ], + [ 'V', 'V' ], + [ 'v', 'V' ], + [ 'w', 'V' ], + [ 'W', 'V' ], ]; } } diff --git a/tests/phpunit/includes/editpage/IntroMessageBuilderTest.php b/tests/phpunit/includes/editpage/IntroMessageBuilderTest.php index 8c8fd7b0cc91..d60bc37f8a8c 100644 --- a/tests/phpunit/includes/editpage/IntroMessageBuilderTest.php +++ b/tests/phpunit/includes/editpage/IntroMessageBuilderTest.php @@ -2,10 +2,11 @@ namespace MediaWiki\Tests\EditPage; -use File; -use FileRepo; use MediaWiki\Config\HashConfig; use MediaWiki\EditPage\IntroMessageBuilder; +use MediaWiki\FileRepo\File\File; +use MediaWiki\FileRepo\FileRepo; +use MediaWiki\FileRepo\RepoGroup; use MediaWiki\MainConfigNames; use MediaWiki\Page\ProperPageIdentity; use MediaWiki\Permissions\UltimateAuthority; @@ -16,7 +17,6 @@ use MediaWiki\User\UserFactory; use MediaWiki\User\UserIdentityValue; use MediaWikiIntegrationTestCase; use MockMessageLocalizer; -use RepoGroup; /** * @covers \MediaWiki\EditPage\IntroMessageBuilder diff --git a/tests/phpunit/includes/logging/BlockLogFormatterTest.php b/tests/phpunit/includes/logging/BlockLogFormatterTest.php index 889204d98668..b3276cf7a263 100644 --- a/tests/phpunit/includes/logging/BlockLogFormatterTest.php +++ b/tests/phpunit/includes/logging/BlockLogFormatterTest.php @@ -3,7 +3,7 @@ use MediaWiki\Title\TitleValue; /** - * @covers \BlockLogFormatter + * @covers \MediaWiki\Logging\BlockLogFormatter */ class BlockLogFormatterTest extends LogFormatterTestCase { diff --git a/tests/phpunit/includes/logging/ContentModelLogFormatterTest.php b/tests/phpunit/includes/logging/ContentModelLogFormatterTest.php index bb30f9ee337e..06cd7754fc35 100644 --- a/tests/phpunit/includes/logging/ContentModelLogFormatterTest.php +++ b/tests/phpunit/includes/logging/ContentModelLogFormatterTest.php @@ -1,7 +1,7 @@ <?php /** - * @covers \ContentModelLogFormatter + * @covers \MediaWiki\Logging\ContentModelLogFormatter */ class ContentModelLogFormatterTest extends LogFormatterTestCase { public static function provideContentModelLogDatabaseRows() { diff --git a/tests/phpunit/includes/logging/DatabaseLogEntryTest.php b/tests/phpunit/includes/logging/DatabaseLogEntryTest.php index 307de195b54e..35a8fae988cc 100644 --- a/tests/phpunit/includes/logging/DatabaseLogEntryTest.php +++ b/tests/phpunit/includes/logging/DatabaseLogEntryTest.php @@ -1,5 +1,6 @@ <?php +use MediaWiki\Logging\DatabaseLogEntry; use MediaWiki\User\ActorStore; use MediaWiki\User\UserIdentity; use MediaWiki\User\UserIdentityValue; @@ -11,8 +12,8 @@ use Wikimedia\Rdbms\IReadableDatabase; class DatabaseLogEntryTest extends MediaWikiIntegrationTestCase { /** - * @covers \DatabaseLogEntry::newFromId - * @covers \DatabaseLogEntry::getSelectQueryData + * @covers \MediaWiki\Logging\DatabaseLogEntry::newFromId + * @covers \MediaWiki\Logging\DatabaseLogEntry::getSelectQueryData * * @dataProvider provideNewFromId * @@ -33,7 +34,7 @@ class DatabaseLogEntryTest extends MediaWikiIntegrationTestCase { ->with( $selectFields['tables'], $selectFields['fields'], $selectFields['conds'], - 'DatabaseLogEntry::newFromId', + DatabaseLogEntry::class . '::newFromId', $selectFields['options'], $selectFields['join_conds'] ) @@ -140,7 +141,7 @@ class DatabaseLogEntryTest extends MediaWikiIntegrationTestCase { /** * @dataProvider provideGetPerformerIdentity - * @covers \DatabaseLogEntry::getPerformerIdentity + * @covers \MediaWiki\Logging\DatabaseLogEntry::getPerformerIdentity */ public function testGetPerformer( array $actorRowFields, UserIdentity $expected ) { $logEntry = DatabaseLogEntry::newFromRow( [ diff --git a/tests/phpunit/includes/logging/DeleteLogFormatterTest.php b/tests/phpunit/includes/logging/DeleteLogFormatterTest.php index 81bdf1379db3..d54dfd927c64 100644 --- a/tests/phpunit/includes/logging/DeleteLogFormatterTest.php +++ b/tests/phpunit/includes/logging/DeleteLogFormatterTest.php @@ -1,7 +1,7 @@ <?php /** - * @covers \DeleteLogFormatter + * @covers \MediaWiki\Logging\DeleteLogFormatter */ class DeleteLogFormatterTest extends LogFormatterTestCase { diff --git a/tests/phpunit/includes/logging/ImportLogFormatterTest.php b/tests/phpunit/includes/logging/ImportLogFormatterTest.php index cf3612d7c27a..b1c3e4d9c603 100644 --- a/tests/phpunit/includes/logging/ImportLogFormatterTest.php +++ b/tests/phpunit/includes/logging/ImportLogFormatterTest.php @@ -3,7 +3,7 @@ use MediaWiki\Tests\Unit\DummyServicesTrait; /** - * @covers \ImportLogFormatter + * @covers \MediaWiki\Logging\ImportLogFormatter */ class ImportLogFormatterTest extends LogFormatterTestCase { use DummyServicesTrait; diff --git a/tests/phpunit/includes/logging/LogFormatterTest.php b/tests/phpunit/includes/logging/LogFormatterTest.php index 268e69f69ac0..1b7aa6274d80 100644 --- a/tests/phpunit/includes/logging/LogFormatterTest.php +++ b/tests/phpunit/includes/logging/LogFormatterTest.php @@ -4,6 +4,8 @@ use MediaWiki\Api\ApiResult; use MediaWiki\Context\DerivativeContext; use MediaWiki\Context\RequestContext; use MediaWiki\Linker\Linker; +use MediaWiki\Logging\LogFormatter; +use MediaWiki\Logging\LogPage; use MediaWiki\MainConfigNames; use MediaWiki\Message\Message; use MediaWiki\Permissions\SimpleAuthority; @@ -93,7 +95,7 @@ class LogFormatterTest extends MediaWikiLangTestCase { } /** - * @covers \LogFormatter::setShowUserToolLinks + * @covers \MediaWiki\Logging\LogFormatter::setShowUserToolLinks */ public function testNormalLogParams() { $entry = $this->newLogEntry( 'test', [] ); @@ -136,7 +138,7 @@ class LogFormatterTest extends MediaWikiLangTestCase { } /** - * @covers \LogFormatter::getActionText + * @covers \MediaWiki\Logging\LogFormatter::getActionText */ public function testLogParamsTypeRaw() { $params = [ '4:raw:raw' => Linker::link( $this->title, null, [], [] ) ]; @@ -152,7 +154,7 @@ class LogFormatterTest extends MediaWikiLangTestCase { } /** - * @covers \LogFormatter::getActionText + * @covers \MediaWiki\Logging\LogFormatter::getActionText */ public function testLogParamsTypeMsg() { $params = [ '4:msg:msg' => 'log-description-phpunit' ]; @@ -168,7 +170,7 @@ class LogFormatterTest extends MediaWikiLangTestCase { } /** - * @covers \LogFormatter::getActionText + * @covers \MediaWiki\Logging\LogFormatter::getActionText */ public function testLogParamsTypeMsgContent() { $params = [ '4:msg-content:msgContent' => 'log-description-phpunit' ]; @@ -184,7 +186,7 @@ class LogFormatterTest extends MediaWikiLangTestCase { } /** - * @covers \LogFormatter::getActionText + * @covers \MediaWiki\Logging\LogFormatter::getActionText */ public function testLogParamsTypeNumber() { global $wgLang; @@ -202,7 +204,7 @@ class LogFormatterTest extends MediaWikiLangTestCase { } /** - * @covers \LogFormatter::getActionText + * @covers \MediaWiki\Logging\LogFormatter::getActionText */ public function testLogParamsTypeUserLink() { $params = [ '4:user-link:userLink' => $this->user->getName() ]; @@ -221,7 +223,7 @@ class LogFormatterTest extends MediaWikiLangTestCase { } /** - * @covers \LogFormatter::getActionText + * @covers \MediaWiki\Logging\LogFormatter::getActionText */ public function testLogParamsTypeUserLink_empty() { $params = [ '4:user-link:userLink' => ':' ]; @@ -237,7 +239,7 @@ class LogFormatterTest extends MediaWikiLangTestCase { } /** - * @covers \LogFormatter::getActionText + * @covers \MediaWiki\Logging\LogFormatter::getActionText */ public function testLogParamsTypeTitleLink() { $params = [ '4:title-link:titleLink' => $this->title->getText() ]; @@ -253,7 +255,7 @@ class LogFormatterTest extends MediaWikiLangTestCase { } /** - * @covers \LogFormatter::getActionText + * @covers \MediaWiki\Logging\LogFormatter::getActionText */ public function testLogParamsTypePlain() { $params = [ '4:plain:plain' => 'Some plain text' ]; @@ -269,7 +271,7 @@ class LogFormatterTest extends MediaWikiLangTestCase { } /** - * @covers \LogFormatter::getPerformerElement + * @covers \MediaWiki\Logging\LogFormatter::getPerformerElement * @dataProvider provideLogElement */ public function testGetPerformerElement( $deletedFlag, $allowedAction ) { @@ -318,7 +320,7 @@ class LogFormatterTest extends MediaWikiLangTestCase { } /** - * @covers \LogFormatter::getComment + * @covers \MediaWiki\Logging\LogFormatter::getComment * @dataProvider provideLogElement */ public function testLogComment( $deletedFlag, $allowedAction ) { @@ -380,8 +382,8 @@ class LogFormatterTest extends MediaWikiLangTestCase { /** * @dataProvider provideApiParamFormatting - * @covers \LogFormatter::formatParametersForApi - * @covers \LogFormatter::formatParameterValueForApi + * @covers \MediaWiki\Logging\LogFormatter::formatParametersForApi + * @covers \MediaWiki\Logging\LogFormatter::formatParameterValueForApi */ public function testApiParamFormatting( $key, $value, $expected ) { $entry = $this->newLogEntry( 'param', [ $key => $value ] ); @@ -474,8 +476,8 @@ class LogFormatterTest extends MediaWikiLangTestCase { */ /** - * @covers \LogFormatter::getIRCActionComment - * @covers \LogFormatter::getIRCActionText + * @covers \MediaWiki\Logging\LogFormatter::getIRCActionComment + * @covers \MediaWiki\Logging\LogFormatter::getIRCActionText */ public function testIrcMsgForLogTypeBlock() { $sep = $this->context->msg( 'colon-separator' )->text(); @@ -525,8 +527,8 @@ class LogFormatterTest extends MediaWikiLangTestCase { } /** - * @covers \LogFormatter::getIRCActionComment - * @covers \LogFormatter::getIRCActionText + * @covers \MediaWiki\Logging\LogFormatter::getIRCActionComment + * @covers \MediaWiki\Logging\LogFormatter::getIRCActionText */ public function testIrcMsgForLogTypeDelete() { $sep = $this->context->msg( 'colon-separator' )->text(); @@ -549,8 +551,8 @@ class LogFormatterTest extends MediaWikiLangTestCase { } /** - * @covers \LogFormatter::getIRCActionComment - * @covers \LogFormatter::getIRCActionText + * @covers \MediaWiki\Logging\LogFormatter::getIRCActionComment + * @covers \MediaWiki\Logging\LogFormatter::getIRCActionText */ public function testIrcMsgForLogTypeNewusers() { $this->assertIRCComment( @@ -576,8 +578,8 @@ class LogFormatterTest extends MediaWikiLangTestCase { } /** - * @covers \LogFormatter::getIRCActionComment - * @covers \LogFormatter::getIRCActionText + * @covers \MediaWiki\Logging\LogFormatter::getIRCActionComment + * @covers \MediaWiki\Logging\LogFormatter::getIRCActionText */ public function testIrcMsgForLogTypeMove() { $move_params = [ @@ -606,8 +608,8 @@ class LogFormatterTest extends MediaWikiLangTestCase { } /** - * @covers \LogFormatter::getIRCActionComment - * @covers \LogFormatter::getIRCActionText + * @covers \MediaWiki\Logging\LogFormatter::getIRCActionComment + * @covers \MediaWiki\Logging\LogFormatter::getIRCActionText */ public function testIrcMsgForLogTypePatrol() { # patrol/patrol @@ -623,8 +625,8 @@ class LogFormatterTest extends MediaWikiLangTestCase { } /** - * @covers \LogFormatter::getIRCActionComment - * @covers \LogFormatter::getIRCActionText + * @covers \MediaWiki\Logging\LogFormatter::getIRCActionComment + * @covers \MediaWiki\Logging\LogFormatter::getIRCActionText */ public function testIrcMsgForLogTypeProtect() { $protectParams = [ @@ -673,8 +675,8 @@ class LogFormatterTest extends MediaWikiLangTestCase { } /** - * @covers \LogFormatter::getIRCActionComment - * @covers \LogFormatter::getIRCActionText + * @covers \MediaWiki\Logging\LogFormatter::getIRCActionComment + * @covers \MediaWiki\Logging\LogFormatter::getIRCActionText */ public function testIrcMsgForLogTypeUpload() { $sep = $this->context->msg( 'colon-separator' )->text(); @@ -697,8 +699,8 @@ class LogFormatterTest extends MediaWikiLangTestCase { } /** - * @covers \LogFormatter::getIRCActionComment - * @covers \LogFormatter::getIRCActionText + * @covers \MediaWiki\Logging\LogFormatter::getIRCActionComment + * @covers \MediaWiki\Logging\LogFormatter::getIRCActionText */ public function testIrcMsgForLogTypeMerge() { $sep = $this->context->msg( 'colon-separator' )->text(); @@ -717,8 +719,8 @@ class LogFormatterTest extends MediaWikiLangTestCase { } /** - * @covers \LogFormatter::getIRCActionComment - * @covers \LogFormatter::getIRCActionText + * @covers \MediaWiki\Logging\LogFormatter::getIRCActionComment + * @covers \MediaWiki\Logging\LogFormatter::getIRCActionText */ public function testIrcMsgForLogTypeImport() { $sep = $this->context->msg( 'colon-separator' )->text(); diff --git a/tests/phpunit/includes/logging/LogFormatterTestCase.php b/tests/phpunit/includes/logging/LogFormatterTestCase.php index 83a16a02ebbf..d09c662e314e 100644 --- a/tests/phpunit/includes/logging/LogFormatterTestCase.php +++ b/tests/phpunit/includes/logging/LogFormatterTestCase.php @@ -6,6 +6,8 @@ use MediaWiki\Config\ServiceOptions; use MediaWiki\Context\RequestContext; use MediaWiki\Linker\LinkRenderer; use MediaWiki\Linker\LinkTarget; +use MediaWiki\Logging\LogEntryBase; +use MediaWiki\Logging\LogPage; use MediaWiki\Page\ExistingPageRecord; use MediaWiki\Page\PageStore; use MediaWiki\Tests\Unit\Permissions\MockAuthorityTrait; diff --git a/tests/phpunit/includes/logging/MergeLogFormatterTest.php b/tests/phpunit/includes/logging/MergeLogFormatterTest.php index 694efb7268ef..855aa0325cad 100644 --- a/tests/phpunit/includes/logging/MergeLogFormatterTest.php +++ b/tests/phpunit/includes/logging/MergeLogFormatterTest.php @@ -1,7 +1,7 @@ <?php /** - * @covers \MergeLogFormatter + * @covers \MediaWiki\Logging\MergeLogFormatter */ class MergeLogFormatterTest extends LogFormatterTestCase { diff --git a/tests/phpunit/includes/logging/MoveLogFormatterTest.php b/tests/phpunit/includes/logging/MoveLogFormatterTest.php index 719d0aa68825..913b3f3579c1 100644 --- a/tests/phpunit/includes/logging/MoveLogFormatterTest.php +++ b/tests/phpunit/includes/logging/MoveLogFormatterTest.php @@ -1,7 +1,7 @@ <?php /** - * @covers \MoveLogFormatter + * @covers \MediaWiki\Logging\MoveLogFormatter */ class MoveLogFormatterTest extends LogFormatterTestCase { diff --git a/tests/phpunit/includes/logging/NewUsersLogFormatterTest.php b/tests/phpunit/includes/logging/NewUsersLogFormatterTest.php index 60bd6f9244c2..5245b0517b67 100644 --- a/tests/phpunit/includes/logging/NewUsersLogFormatterTest.php +++ b/tests/phpunit/includes/logging/NewUsersLogFormatterTest.php @@ -1,7 +1,9 @@ <?php +use MediaWiki\Logging\NewUsersLogFormatter; + /** - * @covers \NewUsersLogFormatter + * @covers \MediaWiki\Logging\NewUsersLogFormatter * @group Database */ class NewUsersLogFormatterTest extends LogFormatterTestCase { diff --git a/tests/phpunit/includes/logging/PageLangLogFormatterTest.php b/tests/phpunit/includes/logging/PageLangLogFormatterTest.php index 79d99457db34..100e74f8870a 100644 --- a/tests/phpunit/includes/logging/PageLangLogFormatterTest.php +++ b/tests/phpunit/includes/logging/PageLangLogFormatterTest.php @@ -1,10 +1,11 @@ <?php +use MediaWiki\Logging\PageLangLogFormatter; use MediaWiki\MainConfigNames; use MediaWiki\MainConfigSchema; /** - * @covers \PageLangLogFormatter + * @covers \MediaWiki\Logging\PageLangLogFormatter */ class PageLangLogFormatterTest extends LogFormatterTestCase { diff --git a/tests/phpunit/includes/logging/PatrolLogFormatterTest.php b/tests/phpunit/includes/logging/PatrolLogFormatterTest.php index 5c0137b2abaa..98629bee75bf 100644 --- a/tests/phpunit/includes/logging/PatrolLogFormatterTest.php +++ b/tests/phpunit/includes/logging/PatrolLogFormatterTest.php @@ -1,7 +1,7 @@ <?php /** - * @covers \PatrolLogFormatter + * @covers \MediaWiki\Logging\PatrolLogFormatter */ class PatrolLogFormatterTest extends LogFormatterTestCase { diff --git a/tests/phpunit/includes/logging/ProtectLogFormatterTest.php b/tests/phpunit/includes/logging/ProtectLogFormatterTest.php index ecdb77583f7b..64bd55461af9 100644 --- a/tests/phpunit/includes/logging/ProtectLogFormatterTest.php +++ b/tests/phpunit/includes/logging/ProtectLogFormatterTest.php @@ -11,7 +11,7 @@ use Wikimedia\Rdbms\IDatabase; use Wikimedia\Rdbms\LBFactory; /** - * @covers \ProtectLogFormatter + * @covers \MediaWiki\Logging\ProtectLogFormatter */ class ProtectLogFormatterTest extends LogFormatterTestCase { @@ -466,7 +466,7 @@ class ProtectLogFormatterTest extends LogFormatterTestCase { * @param string[] $permissions * @param bool $shouldMatch * @dataProvider provideGetActionLinks - * @covers \ProtectLogFormatter::getActionLinks + * @covers \MediaWiki\Logging\ProtectLogFormatter::getActionLinks */ public function testGetActionLinks( array $permissions, $shouldMatch ) { RequestContext::resetMain(); diff --git a/tests/phpunit/includes/logging/RightsLogFormatterTest.php b/tests/phpunit/includes/logging/RightsLogFormatterTest.php index 5fe31e6dc5eb..83a007236b6a 100644 --- a/tests/phpunit/includes/logging/RightsLogFormatterTest.php +++ b/tests/phpunit/includes/logging/RightsLogFormatterTest.php @@ -4,7 +4,7 @@ use Wikimedia\Rdbms\IDatabase; use Wikimedia\Rdbms\LBFactory; /** - * @covers \RightsLogFormatter + * @covers \MediaWiki\Logging\RightsLogFormatter */ class RightsLogFormatterTest extends LogFormatterTestCase { diff --git a/tests/phpunit/includes/logging/UploadLogFormatterTest.php b/tests/phpunit/includes/logging/UploadLogFormatterTest.php index b5199588af32..0e2722a90432 100644 --- a/tests/phpunit/includes/logging/UploadLogFormatterTest.php +++ b/tests/phpunit/includes/logging/UploadLogFormatterTest.php @@ -1,7 +1,7 @@ <?php /** - * @covers \UploadLogFormatter + * @covers \MediaWiki\Logging\UploadLogFormatter */ class UploadLogFormatterTest extends LogFormatterTestCase { diff --git a/tests/phpunit/includes/media/BmpHandlerTest.php b/tests/phpunit/includes/media/BmpHandlerTest.php index 86ba6ad3bcee..64448141550d 100644 --- a/tests/phpunit/includes/media/BmpHandlerTest.php +++ b/tests/phpunit/includes/media/BmpHandlerTest.php @@ -22,8 +22,8 @@ namespace MediaWiki\Tests\Media; use BmpHandler; -use File; use MediaHandlerState; +use MediaWiki\FileRepo\File\File; use MediaWikiMediaTestCase; /** diff --git a/tests/phpunit/includes/pager/HistoryPagerTest.php b/tests/phpunit/includes/pager/HistoryPagerTest.php index 709e1c5029db..94455968de01 100644 --- a/tests/phpunit/includes/pager/HistoryPagerTest.php +++ b/tests/phpunit/includes/pager/HistoryPagerTest.php @@ -1,5 +1,6 @@ <?php +use MediaWiki\Actions\HistoryAction; use MediaWiki\Context\RequestContext; use MediaWiki\Output\OutputPage; use MediaWiki\Pager\HistoryPager; diff --git a/tests/phpunit/includes/recentchanges/ChangesListTest.php b/tests/phpunit/includes/recentchanges/ChangesListTest.php index 1d077e7be3e0..3df3cc6af587 100644 --- a/tests/phpunit/includes/recentchanges/ChangesListTest.php +++ b/tests/phpunit/includes/recentchanges/ChangesListTest.php @@ -1,5 +1,6 @@ <?php +use MediaWiki\Logging\DatabaseLogEntry; use MediaWiki\User\UserIdentity; use Wikimedia\Parsoid\Utils\DOMCompat; use Wikimedia\Parsoid\Utils\DOMUtils; diff --git a/tests/phpunit/includes/recentchanges/rcfeed/RCFeedIntegrationTest.php b/tests/phpunit/includes/recentchanges/rcfeed/RCFeedIntegrationTest.php index b923508f72e2..c96e198ce1e2 100644 --- a/tests/phpunit/includes/recentchanges/rcfeed/RCFeedIntegrationTest.php +++ b/tests/phpunit/includes/recentchanges/rcfeed/RCFeedIntegrationTest.php @@ -1,5 +1,6 @@ <?php +use MediaWiki\Logging\LogEntryBase; use MediaWiki\MainConfigNames; use MediaWiki\RCFeed\FormattedRCFeed; use MediaWiki\RCFeed\JSONRCFeedFormatter; diff --git a/tests/phpunit/includes/specials/SpecialBlockTest.php b/tests/phpunit/includes/specials/SpecialBlockTest.php index 2ad9c89f4926..d29c855091ab 100644 --- a/tests/phpunit/includes/specials/SpecialBlockTest.php +++ b/tests/phpunit/includes/specials/SpecialBlockTest.php @@ -945,6 +945,33 @@ class SpecialBlockTest extends SpecialPageTestBase { ]; } + /** + * @covers ::validateTarget + * @covers ::getTargetInternal + */ + public function testValidateTargetFromId(): void { + $badActor = $this->getTestUser()->getUser(); + $block = $this->blockStore->insertBlockWithParams( [ + 'targetUser' => $badActor, + 'by' => $this->getTestSysop()->getUser(), + 'expiry' => 'infinity', + 'sitewide' => 1, + ] ); + + $wrappedPage = TestingAccessWrapper::newFromObject( $this->newSpecialPage() ); + $target = $wrappedPage->getTargetInternal( '', new FauxRequest( [ + 'id' => $block->getId(), + ] ) ); + $this->assertSame( $badActor->getName(), $target->toString() ); + + // Invalid ID. + $fauxRequest = new FauxRequest( [ 'id' => 999999 ] ); + $target = $wrappedPage->getTargetInternal( null, $fauxRequest ); + $this->assertNull( $target ); + $wrappedPage->validateTarget( $fauxRequest ); + $this->assertSame( 'block-invalid-id', $wrappedPage->preErrors[ 0 ]->getKey() ); + } + protected function insertBlock() { $badActor = $this->getTestUser()->getUser(); $sysop = $this->getTestSysop()->getUser(); diff --git a/tests/phpunit/includes/user/UserGroupManagerTest.php b/tests/phpunit/includes/user/UserGroupManagerTest.php index bf2e350d80b5..61ca2d7479d6 100644 --- a/tests/phpunit/includes/user/UserGroupManagerTest.php +++ b/tests/phpunit/includes/user/UserGroupManagerTest.php @@ -21,12 +21,12 @@ namespace MediaWiki\Tests\User; use InvalidArgumentException; -use LogEntryBase; use LogicException; use MediaWiki\Block\DatabaseBlock; use MediaWiki\Config\ServiceOptions; use MediaWiki\Config\SiteConfiguration; use MediaWiki\Context\RequestContext; +use MediaWiki\Logging\LogEntryBase; use MediaWiki\MainConfigNames; use MediaWiki\Permissions\SimpleAuthority; use MediaWiki\Request\WebRequest; diff --git a/tests/phpunit/integration/includes/CommentFormatter/CommentParserTest.php b/tests/phpunit/integration/includes/CommentFormatter/CommentParserTest.php index 0eb4fcb66931..ca7f78d8c7a0 100644 --- a/tests/phpunit/integration/includes/CommentFormatter/CommentParserTest.php +++ b/tests/phpunit/integration/includes/CommentFormatter/CommentParserTest.php @@ -9,12 +9,12 @@ use MediaWiki\CommentFormatter\CommentParserFactory; use MediaWiki\CommentStore\CommentStoreComment; use MediaWiki\Config\SiteConfiguration; use MediaWiki\Context\RequestContext; +use MediaWiki\FileRepo\RepoGroup; use MediaWiki\MainConfigNames; use MediaWiki\Revision\MutableRevisionRecord; use MediaWiki\Revision\RevisionRecord; use MediaWiki\Tests\Unit\DummyServicesTrait; use MediaWiki\Title\Title; -use RepoGroup; /** * @group Database diff --git a/tests/phpunit/integration/includes/Storage/UndoIntegrationTest.php b/tests/phpunit/integration/includes/Storage/UndoIntegrationTest.php index cce9e809c9ca..a36720ab1091 100644 --- a/tests/phpunit/integration/includes/Storage/UndoIntegrationTest.php +++ b/tests/phpunit/integration/includes/Storage/UndoIntegrationTest.php @@ -3,7 +3,7 @@ namespace MediaWiki\Tests\Storage; use Article; -use McrUndoAction; +use MediaWiki\Actions\McrUndoAction; use MediaWiki\Content\WikitextContent; use MediaWiki\Context\DerivativeContext; use MediaWiki\Context\IContextSource; @@ -26,7 +26,7 @@ use WikiPage; * Integration tests for undos. * TODO: This should also test edits with multiple slots. * - * @covers \McrUndoAction + * @covers \MediaWiki\Actions\McrUndoAction * @covers \MediaWiki\Page\WikiPage * @covers \MediaWiki\EditPage\EditPage * diff --git a/tests/phpunit/integration/includes/logging/LogPageTest.php b/tests/phpunit/integration/includes/logging/LogPageTest.php index 364d2206fa95..77c9a697815e 100644 --- a/tests/phpunit/integration/includes/logging/LogPageTest.php +++ b/tests/phpunit/integration/includes/logging/LogPageTest.php @@ -2,15 +2,15 @@ namespace MediaWiki\Tests\Log; -use DatabaseLogEntry; -use LogPage; +use MediaWiki\Logging\DatabaseLogEntry; +use MediaWiki\Logging\LogPage; use MediaWiki\MainConfigNames; use MediaWiki\User\UserIdentityValue; use MockTitleTrait; /** * @group Database - * @coversDefaultClass \LogPage + * @coversDefaultClass \MediaWiki\Logging\LogPage */ class LogPageTest extends \MediaWikiIntegrationTestCase { use MockTitleTrait; diff --git a/tests/phpunit/integration/includes/page/RollbackPageTest.php b/tests/phpunit/integration/includes/page/RollbackPageTest.php index 7d7decff95be..7d3de17e7278 100644 --- a/tests/phpunit/integration/includes/page/RollbackPageTest.php +++ b/tests/phpunit/integration/includes/page/RollbackPageTest.php @@ -3,11 +3,11 @@ namespace MediaWiki\Tests\Page; use ChangeTags; -use DatabaseLogEntry; use MediaWiki\Content\Content; use MediaWiki\Content\JavaScriptContent; use MediaWiki\Content\JsonContent; use MediaWiki\Content\WikitextContent; +use MediaWiki\Logging\DatabaseLogEntry; use MediaWiki\MainConfigNames; use MediaWiki\Page\Event\PageRevisionUpdatedEvent; use MediaWiki\Page\PageIdentity; diff --git a/tests/phpunit/integration/includes/parser/Parsoid/Config/DataAccessTest.php b/tests/phpunit/integration/includes/parser/Parsoid/Config/DataAccessTest.php index 2363783007ba..17cdd1debf3c 100644 --- a/tests/phpunit/integration/includes/parser/Parsoid/Config/DataAccessTest.php +++ b/tests/phpunit/integration/includes/parser/Parsoid/Config/DataAccessTest.php @@ -6,6 +6,7 @@ use MediaWiki\Cache\LinkBatchFactory; use MediaWiki\Category\TrackingCategories; use MediaWiki\Config\ServiceOptions; use MediaWiki\Content\Transform\ContentTransformer; +use MediaWiki\FileRepo\RepoGroup; use MediaWiki\HookContainer\HookContainer; use MediaWiki\MainConfigNames; use MediaWiki\Page\File\BadFileLookup; @@ -14,7 +15,6 @@ use MediaWiki\Parser\ParserOutput; use MediaWiki\Parser\Parsoid\Config\SiteConfig; use MediaWiki\Title\TitleValue; use MediaWikiIntegrationTestCase; -use RepoGroup; use Wikimedia\Parsoid\Config\PageConfig; use Wikimedia\Rdbms\ReadOnlyMode; diff --git a/tests/phpunit/maintenance/BackupDumperLoggerTest.php b/tests/phpunit/maintenance/BackupDumperLoggerTest.php index c7a606e9ae8f..c08c2629cafb 100644 --- a/tests/phpunit/maintenance/BackupDumperLoggerTest.php +++ b/tests/phpunit/maintenance/BackupDumperLoggerTest.php @@ -4,7 +4,7 @@ namespace MediaWiki\Tests\Maintenance; use DumpBackup; use Exception; -use ManualLogEntry; +use MediaWiki\Logging\ManualLogEntry; use MediaWiki\MediaWikiServices; use MediaWiki\Title\Title; use MediaWiki\User\User; diff --git a/tests/phpunit/maintenance/CleanupBlocksTest.php b/tests/phpunit/maintenance/CleanupBlocksTest.php new file mode 100644 index 000000000000..1d4f4f417a6b --- /dev/null +++ b/tests/phpunit/maintenance/CleanupBlocksTest.php @@ -0,0 +1,145 @@ +<?php + +namespace MediaWiki\Tests\Maintenance; + +use MediaWiki\Block\DatabaseBlock; +use MediaWiki\User\UserIdentityValue; + +/** + * @covers CleanupBlocks + * @group Database + */ +class CleanupBlocksTest extends MaintenanceBaseTestCase { + public function assertPreConditions(): void { + if ( $this->getDb()->getType() === 'postgres' ) { + $this->markTestSkipped( 'cleanupBlocks does not support postgres' ); + } + } + + protected function getMaintenanceClass() { + return \CleanupBlocks::class; + } + + private function insertBlock( $options = [] ) { + $options += [ + 'by' => new UserIdentityValue( 100, 'Admin' ), + 'address' => '127.0.0.1', + ]; + return $this->getServiceContainer()->getDatabaseBlockStore() + ->insertBlockWithParams( $options ); + } + + private function getBlockTargetId( DatabaseBlock $block ) { + return (int)$this->getDb()->newSelectQueryBuilder() + ->select( 'bl_target' ) + ->from( 'block' ) + ->where( [ 'bl_id' => $block->getId() ] ) + ->fetchField(); + } + + public function testDeleteOrphanBlockTargets() { + $block1 = $this->insertBlock(); + $bt1 = $this->getBlockTargetId( $block1 ); + $block2 = $this->insertBlock( [ 'address' => '127.0.0.2' ] ); + $this->getDb()->newDeleteQueryBuilder() + ->deleteFrom( 'block' ) + ->where( [ 'bl_id' => $block2->getId() ] ) + ->caller( __METHOD__ )->execute(); + + $this->maintenance->execute(); + $this->newSelectQueryBuilder() + ->select( 'bt_id' ) + ->from( 'block_target' ) + ->assertFieldValues( [ (string)$bt1 ] ); + } + + public function testDeleteTargetlessBlocks() { + $block1 = $this->insertBlock(); + $this->insertBlock( [ 'address' => '127.0.0.2' ] ); + $this->getDb()->newDeleteQueryBuilder() + ->deleteFrom( 'block_target' ) + ->where( [ 'bt_address' => '127.0.0.2' ] ) + ->execute(); + + $this->maintenance->execute(); + $this->newSelectQueryBuilder() + ->select( 'bl_id' ) + ->from( 'block' ) + ->assertFieldValues( [ (string)$block1->getId() ] ); + } + + public function testMergeDuplicateBlockTargets() { + $block1 = $this->insertBlock(); + $b1 = $block1->getId(); + $bt1 = $this->getBlockTargetId( $block1 ); + $dbw = $this->getDb(); + $dbw->insertSelect( + 'block_target', 'block_target', + [ + 'bt_address' => 'bt_address', + 'bt_user' => 'bt_user', + 'bt_user_text' => 'bt_user_text', + 'bt_auto' => 'bt_auto', + 'bt_range_end' => 'bt_range_end', + 'bt_ip_hex' => 'bt_ip_hex', + 'bt_count' => 'bt_count' + ], + [ 'bt_id' => $bt1 ] + ); + $bt2 = $dbw->insertId(); + $dbw->insertSelect( + 'block', 'block', + [ + 'bl_target' => $dbw->addQuotes( $bt2 ), + 'bl_by_actor' => 'bl_by_actor', + 'bl_reason_id' => 'bl_reason_id', + 'bl_timestamp' => 'bl_timestamp', + 'bl_anon_only' => 'bl_anon_only', + 'bl_create_account' => 'bl_create_account', + 'bl_enable_autoblock' => '0', + 'bl_expiry' => 'bl_expiry', + 'bl_deleted' => 'bl_deleted', + ], + [ 'bl_id' => $block1->getId() ] + ); + $b2 = $dbw->insertId(); + + $this->maintenance->execute(); + + $this->newSelectQueryBuilder() + ->select( [ 'bt_id', 'bt_count' ] ) + ->from( 'block_target' ) + ->assertResultSet( [ + [ (string)$bt1, '2' ] + ] ); + + $this->newSelectQueryBuilder() + ->select( [ 'bl_id', 'bl_target' ] ) + ->from( 'block' ) + ->assertResultSet( [ + [ (string)$b1, (string)$bt1 ], + [ (string)$b2, (string)$bt1 ] + ] ); + } + + public function testFixTargetCounts() { + $block1 = $this->insertBlock(); + $bt1 = $this->getBlockTargetId( $block1 ); + $block2 = $this->insertBlock( [ 'address' => '127.0.0.2' ] ); + $bt2 = $this->getBlockTargetId( $block2 ); + $dbw = $this->getDb(); + $dbw->newUpdateQueryBuilder() + ->update( 'block_target' ) + ->set( [ 'bt_count' => 2 ] ) + ->where( [ 'bt_id' => $bt1 ] ) + ->execute(); + + $this->maintenance->execute(); + + $this->newSelectQueryBuilder() + ->select( 'bt_count' ) + ->from( 'block_target' ) + ->where( [ 'bt_id' => [ $bt1, $bt2 ] ] ) + ->assertFieldValues( [ '1', '1' ] ); + } +} diff --git a/tests/phpunit/maintenance/FixAutoblockLogTitlesTest.php b/tests/phpunit/maintenance/FixAutoblockLogTitlesTest.php index a48a621156c7..b473462aa7f9 100644 --- a/tests/phpunit/maintenance/FixAutoblockLogTitlesTest.php +++ b/tests/phpunit/maintenance/FixAutoblockLogTitlesTest.php @@ -2,8 +2,8 @@ namespace MediaWiki\Tests\Maintenance; -use ManualLogEntry; use MediaWiki\Linker\LinkTarget; +use MediaWiki\Logging\ManualLogEntry; use MediaWiki\Maintenance\FixAutoblockLogTitles; use MediaWiki\Title\TitleValue; diff --git a/tests/phpunit/mocks/filerepo/TestRepoTrait.php b/tests/phpunit/mocks/filerepo/TestRepoTrait.php index 4e68f5f75f1d..3c9dd7a054b0 100644 --- a/tests/phpunit/mocks/filerepo/TestRepoTrait.php +++ b/tests/phpunit/mocks/filerepo/TestRepoTrait.php @@ -3,13 +3,13 @@ namespace MediaWiki\Tests\FileRepo; use InvalidArgumentException; -use LocalRepo; use LogicException; use MediaWiki\FileBackend\FileBackendGroup; +use MediaWiki\FileRepo\LocalRepo; +use MediaWiki\FileRepo\RepoGroup; use MediaWiki\MediaWikiServices; use MediaWiki\Title\Title; use PHPUnit\Framework\Assert; -use RepoGroup; use Wikimedia\FileBackend\FileBackend; use Wikimedia\FileBackend\FSFileBackend; diff --git a/tests/phpunit/unit/includes/CommentFormatter/CommentParserFactoryTest.php b/tests/phpunit/unit/includes/CommentFormatter/CommentParserFactoryTest.php index b966f73b30f7..e945293771ce 100644 --- a/tests/phpunit/unit/includes/CommentFormatter/CommentParserFactoryTest.php +++ b/tests/phpunit/unit/includes/CommentFormatter/CommentParserFactoryTest.php @@ -24,13 +24,13 @@ use MediaWiki\Cache\LinkBatchFactory; use MediaWiki\Cache\LinkCache; use MediaWiki\CommentFormatter\CommentParser; use MediaWiki\CommentFormatter\CommentParserFactory; +use MediaWiki\FileRepo\RepoGroup; use MediaWiki\HookContainer\HookContainer; use MediaWiki\Language\Language; use MediaWiki\Linker\LinkRenderer; use MediaWiki\Title\NamespaceInfo; use MediaWiki\Title\TitleParser; use MediaWikiUnitTestCase; -use RepoGroup; /** * @group CommentFormatter diff --git a/tests/phpunit/unit/includes/DomainEvent/EventDispatchEngineTest.php b/tests/phpunit/unit/includes/DomainEvent/EventDispatchEngineTest.php index 6893059dfea9..4ac3026e5104 100644 --- a/tests/phpunit/unit/includes/DomainEvent/EventDispatchEngineTest.php +++ b/tests/phpunit/unit/includes/DomainEvent/EventDispatchEngineTest.php @@ -281,7 +281,7 @@ class EventDispatchEngineTest extends MediaWikiUnitTestCase { $this->trace =& $trace; } - public function handleFooCompleteEventAfterCommit() { + public function handleFooCompleteEvent() { $this->trace[] = 'afterFooComplete'; } }; diff --git a/tests/phpunit/unit/includes/Rest/Handler/MediaTestTrait.php b/tests/phpunit/unit/includes/Rest/Handler/MediaTestTrait.php index 426cff12df56..3cc5065f451d 100644 --- a/tests/phpunit/unit/includes/Rest/Handler/MediaTestTrait.php +++ b/tests/phpunit/unit/includes/Rest/Handler/MediaTestTrait.php @@ -2,13 +2,13 @@ namespace MediaWiki\Tests\Rest\Handler; -use LocalFile; -use LocalRepo; +use MediaWiki\FileRepo\File\LocalFile; +use MediaWiki\FileRepo\LocalRepo; +use MediaWiki\FileRepo\RepoGroup; use MediaWiki\Page\PageReference; use MediaWiki\User\UserIdentityValue; use MockTitleTrait; use PHPUnit\Framework\MockObject\MockObject; -use RepoGroup; use ThumbnailImage; /** diff --git a/tests/phpunit/unit/includes/Rest/Handler/PageHandlerTestTrait.php b/tests/phpunit/unit/includes/Rest/Handler/PageHandlerTestTrait.php index 8e0ebfa4f865..2c3323c9dcb0 100644 --- a/tests/phpunit/unit/includes/Rest/Handler/PageHandlerTestTrait.php +++ b/tests/phpunit/unit/includes/Rest/Handler/PageHandlerTestTrait.php @@ -2,9 +2,10 @@ namespace MediaWiki\Tests\Rest\Handler; -use File; -use FileRepo; use MediaWiki\Config\ServiceOptions; +use MediaWiki\FileRepo\File\File; +use MediaWiki\FileRepo\FileRepo; +use MediaWiki\FileRepo\RepoGroup; use MediaWiki\MainConfigNames; use MediaWiki\MainConfigSchema; use MediaWiki\Parser\Parsoid\ParsoidParser; @@ -24,7 +25,6 @@ use MediaWiki\Rest\RequestInterface; use MediaWiki\Rest\ResponseFactory; use MediaWiki\Rest\Router; use PHPUnit\Framework\MockObject\MockObject; -use RepoGroup; use Wikimedia\ObjectCache\WANObjectCache; use Wikimedia\Parsoid\Parsoid; use Wikimedia\Stats\StatsFactory; diff --git a/tests/phpunit/unit/includes/SetupDynamicConfigTest.php b/tests/phpunit/unit/includes/SetupDynamicConfigTest.php index ccdddbbf812e..86acf2f51762 100644 --- a/tests/phpunit/unit/includes/SetupDynamicConfigTest.php +++ b/tests/phpunit/unit/includes/SetupDynamicConfigTest.php @@ -1,6 +1,13 @@ <?php +use MediaWiki\FileRepo\FileRepo; +use MediaWiki\FileRepo\ForeignAPIRepo; +use MediaWiki\FileRepo\ForeignDBRepo; +use MediaWiki\FileRepo\LocalRepo; use MediaWiki\Language\LanguageCode; +use MediaWiki\Logging\LogFormatter; +use MediaWiki\Logging\NewUsersLogFormatter; +use MediaWiki\Logging\PageLangLogFormatter; use MediaWiki\MainConfigNames; use MediaWiki\MainConfigSchema; use MediaWiki\Registration\ExtensionRegistry; diff --git a/tests/phpunit/unit/includes/actions/ActionFactoryTest.php b/tests/phpunit/unit/includes/actions/ActionFactoryTest.php index 09fbd501b781..9e31236e53b2 100644 --- a/tests/phpunit/unit/includes/actions/ActionFactoryTest.php +++ b/tests/phpunit/unit/includes/actions/ActionFactoryTest.php @@ -1,7 +1,11 @@ <?php +use MediaWiki\Actions\Action; use MediaWiki\Actions\ActionFactory; +use MediaWiki\Actions\EditAction; +use MediaWiki\Actions\InfoAction; use MediaWiki\Context\IContextSource; +use MediaWiki\Page\Article; use MediaWiki\Request\FauxRequest; use MediaWiki\Tests\Unit\DummyServicesTrait; use PHPUnit\Framework\MockObject\MockObject; diff --git a/tests/phpunit/unit/includes/page/RedirectStoreUnitTest.php b/tests/phpunit/unit/includes/page/RedirectStoreUnitTest.php index 38dc0826f710..e2ac66f13499 100644 --- a/tests/phpunit/unit/includes/page/RedirectStoreUnitTest.php +++ b/tests/phpunit/unit/includes/page/RedirectStoreUnitTest.php @@ -1,7 +1,8 @@ <?php namespace MediaWiki\Tests\Unit\Page; -use File; +use MediaWiki\FileRepo\File\File; +use MediaWiki\FileRepo\RepoGroup; use MediaWiki\Page\PageIdentityValue; use MediaWiki\Page\PageLookup; use MediaWiki\Page\PageStoreRecord; @@ -10,7 +11,6 @@ use MediaWiki\Title\TitleParser; use MediaWiki\Title\TitleValue; use MediaWikiUnitTestCase; use Psr\Log\NullLogger; -use RepoGroup; use Wikimedia\Rdbms\IConnectionProvider; /** diff --git a/tests/phpunit/unit/includes/page/UndeletePageTest.php b/tests/phpunit/unit/includes/page/UndeletePageTest.php index 542911750aa1..ead7f8429b66 100644 --- a/tests/phpunit/unit/includes/page/UndeletePageTest.php +++ b/tests/phpunit/unit/includes/page/UndeletePageTest.php @@ -6,6 +6,7 @@ use Generator; use JobQueueGroup; use MediaWiki\Config\ServiceOptions; use MediaWiki\Content\IContentHandlerFactory; +use MediaWiki\FileRepo\RepoGroup; use MediaWiki\Linker\LinkTarget; use MediaWiki\Page\PageIdentity; use MediaWiki\Page\PageIdentityValue; @@ -20,7 +21,6 @@ use MediaWiki\Title\NamespaceInfo; use MediaWiki\Title\Title; use MediaWikiUnitTestCase; use Psr\Log\NullLogger; -use RepoGroup; use Wikimedia\Message\ITextFormatter; use Wikimedia\Rdbms\IConnectionProvider; use Wikimedia\Rdbms\ReadOnlyMode; diff --git a/tests/phpunit/unit/includes/watchlist/WatchedItemQueryServiceUnitTest.php b/tests/phpunit/unit/includes/watchlist/WatchedItemQueryServiceUnitTest.php index 10160d84f7c4..bb67daf83c93 100644 --- a/tests/phpunit/unit/includes/watchlist/WatchedItemQueryServiceUnitTest.php +++ b/tests/phpunit/unit/includes/watchlist/WatchedItemQueryServiceUnitTest.php @@ -1,6 +1,7 @@ <?php use MediaWiki\CommentStore\CommentStore; +use MediaWiki\Logging\LogPage; use MediaWiki\Revision\RevisionRecord; use MediaWiki\Title\TitleValue; use MediaWiki\User\Options\UserOptionsLookup; |