2 use MediaWiki\MediaWikiServices
;
5 * Integration test that checks import success and
6 * LinkCache integration.
10 * @covers ImportStreamSource
11 * @covers ImportReporter
15 class ImportLinkCacheIntegrationTest
extends MediaWikiTestCase
{
17 private $importStreamSource;
19 protected function setUp() {
22 $file = dirname( __DIR__
) . '/../data/import/ImportLinkCacheIntegrationTest.xml';
24 $this->importStreamSource
= ImportStreamSource
::newFromFile( $file );
26 if ( !$this->importStreamSource
->isGood() ) {
27 throw new Exception( "Import source for {$file} failed" );
31 public function testImportForImportSource() {
32 $this->doImport( $this->importStreamSource
);
35 $loremIpsum = Title
::newFromText( 'Lorem ipsum' );
38 $loremIpsum->getArticleID(),
39 $loremIpsum->getArticleID( Title
::GAID_FOR_UPDATE
)
42 $categoryLoremIpsum = Title
::newFromText( 'Category:Lorem ipsum' );
45 $categoryLoremIpsum->getArticleID(),
46 $categoryLoremIpsum->getArticleID( Title
::GAID_FOR_UPDATE
)
49 $page = new WikiPage( $loremIpsum );
50 $page->doDeleteArticle( 'import test: delete page' );
52 $page = new WikiPage( $categoryLoremIpsum );
53 $page->doDeleteArticle( 'import test: delete page' );
57 * @depends testImportForImportSource
59 public function testReImportForImportSource() {
60 $this->doImport( $this->importStreamSource
);
63 $loremIpsum = Title
::newFromText( 'Lorem ipsum' );
66 $loremIpsum->getArticleID(),
67 $loremIpsum->getArticleID( Title
::GAID_FOR_UPDATE
)
70 $categoryLoremIpsum = Title
::newFromText( 'Category:Lorem ipsum' );
73 $categoryLoremIpsum->getArticleID(),
74 $categoryLoremIpsum->getArticleID( Title
::GAID_FOR_UPDATE
)
78 private function doImport( $importStreamSource ) {
79 $importer = new WikiImporter(
80 $importStreamSource->value
,
81 MediaWikiServices
::getInstance()->getMainConfig()
83 $importer->setDebug( true );
85 $reporter = new ImportReporter(
92 $reporter->setContext( new RequestContext() );
95 $importer->doImport();
97 $result = $reporter->close();