3 use MediaWiki\MediaWikiServices
;
6 * Integration test that checks import success and
7 * LinkCache integration.
11 * @covers ImportStreamSource
12 * @covers ImportReporter
16 class ImportLinkCacheIntegrationTest
extends MediaWikiTestCase
{
18 private $importStreamSource;
20 protected function setUp() {
23 $file = dirname( __DIR__
) . '/../data/import/ImportLinkCacheIntegrationTest.xml';
25 $this->importStreamSource
= ImportStreamSource
::newFromFile( $file );
27 if ( !$this->importStreamSource
->isGood() ) {
28 throw new Exception( "Import source for {$file} failed" );
32 public function testImportForImportSource() {
33 $this->doImport( $this->importStreamSource
);
36 $loremIpsum = Title
::newFromText( 'Lorem ipsum' );
39 $loremIpsum->getArticleID(),
40 $loremIpsum->getArticleID( Title
::GAID_FOR_UPDATE
)
43 $categoryLoremIpsum = Title
::newFromText( 'Category:Lorem ipsum' );
46 $categoryLoremIpsum->getArticleID(),
47 $categoryLoremIpsum->getArticleID( Title
::GAID_FOR_UPDATE
)
50 $page = new WikiPage( $loremIpsum );
51 $page->doDeleteArticle( 'import test: delete page' );
53 $page = new WikiPage( $categoryLoremIpsum );
54 $page->doDeleteArticle( 'import test: delete page' );
58 * @depends testImportForImportSource
60 public function testReImportForImportSource() {
61 $this->doImport( $this->importStreamSource
);
64 $loremIpsum = Title
::newFromText( 'Lorem ipsum' );
67 $loremIpsum->getArticleID(),
68 $loremIpsum->getArticleID( Title
::GAID_FOR_UPDATE
)
71 $categoryLoremIpsum = Title
::newFromText( 'Category:Lorem ipsum' );
74 $categoryLoremIpsum->getArticleID(),
75 $categoryLoremIpsum->getArticleID( Title
::GAID_FOR_UPDATE
)
79 private function doImport( $importStreamSource ) {
80 $importer = new WikiImporter(
81 $importStreamSource->value
,
82 MediaWikiServices
::getInstance()->getMainConfig()
84 $importer->setDebug( true );
86 $reporter = new ImportReporter(
93 $reporter->setContext( new RequestContext() );
96 $importer->doImport();
98 $result = $reporter->close();