1<?php 2 3use MediaWiki\MediaWikiServices; 4use MediaWiki\Revision\SlotRecord; 5use Psr\Log\NullLogger; 6 7/** 8 * @group Database 9 * @coversDefaultClass ImportableOldRevisionImporter 10 */ 11class ImportableOldRevisionImporterTest extends MediaWikiIntegrationTestCase { 12 13 protected function setUp() : void { 14 parent::setUp(); 15 16 $this->tablesUsed[] = 'change_tag'; 17 $this->tablesUsed[] = 'change_tag_def'; 18 19 ChangeTags::defineTag( 'tag1' ); 20 } 21 22 public function provideTestCases() { 23 yield [ [] ]; 24 yield [ [ "tag1" ] ]; 25 } 26 27 /** 28 * @covers ::import 29 * @dataProvider provideTestCases 30 */ 31 public function testImport( $expectedTags ) { 32 $services = MediaWikiServices::getInstance(); 33 34 $title = Title::newFromText( __CLASS__ . rand() ); 35 $revision = new WikiRevision( $services->getMainConfig() ); 36 $revision->setTitle( $title ); 37 $revision->setTags( $expectedTags ); 38 $content = ContentHandler::makeContent( 'dummy edit', $title ); 39 $revision->setContent( SlotRecord::MAIN, $content ); 40 41 $importer = new ImportableOldRevisionImporter( 42 true, 43 new NullLogger(), 44 $services->getDBLoadBalancer(), 45 $services->getRevisionStore(), 46 $services->getSlotRoleRegistry(), 47 $services->getWikiPageFactory() 48 ); 49 $result = $importer->import( $revision ); 50 $this->assertTrue( $result ); 51 52 $page = WikiPage::factory( $title ); 53 $tags = ChangeTags::getTags( 54 $services->getDBLoadBalancer()->getConnection( DB_MASTER ), 55 null, 56 $page->getLatest() 57 ); 58 $this->assertSame( $expectedTags, $tags ); 59 } 60} 61