wiki.techinc.nl/tests/phpunit/includes/import/ImportLinkCacheIntegrationTest.php
daniel 9c1d8a9709 Avoid dumping big stack traces from unit tests.
Using assertFalse( $exception ) results in potentially very large stack
trace dumps, when $exception is an exception from deep inside MediaWiki.

Stack trace dumps include a dump of all parameters, resulting in console
output of (in my case) over 160 MB.

Change-Id: Ib78493d86531844a892586c071b2fa631ad765eb
2018-03-13 20:54:06 +01:00

102 lines
2.3 KiB
PHP

<?php
use MediaWiki\MediaWikiServices;
/**
* Integration test that checks import success and
* LinkCache integration.
*
* @group medium
* @group Database
*
* @author mwjames
*/
class ImportLinkCacheIntegrationTest extends MediaWikiTestCase {
private $importStreamSource;
protected function setUp() {
parent::setUp();
$file = dirname( __DIR__ ) . '/../data/import/ImportLinkCacheIntegrationTest.xml';
$this->importStreamSource = ImportStreamSource::newFromFile( $file );
if ( !$this->importStreamSource->isGood() ) {
throw new Exception( "Import source for {$file} failed" );
}
}
public function testImportForImportSource() {
$this->doImport( $this->importStreamSource );
// Imported title
$loremIpsum = Title::newFromText( 'Lorem ipsum' );
$this->assertSame(
$loremIpsum->getArticleID(),
$loremIpsum->getArticleID( Title::GAID_FOR_UPDATE )
);
$categoryLoremIpsum = Title::newFromText( 'Category:Lorem ipsum' );
$this->assertSame(
$categoryLoremIpsum->getArticleID(),
$categoryLoremIpsum->getArticleID( Title::GAID_FOR_UPDATE )
);
$page = new WikiPage( $loremIpsum );
$page->doDeleteArticle( 'import test: delete page' );
$page = new WikiPage( $categoryLoremIpsum );
$page->doDeleteArticle( 'import test: delete page' );
}
/**
* @depends testImportForImportSource
*/
public function testReImportForImportSource() {
$this->doImport( $this->importStreamSource );
// ReImported title
$loremIpsum = Title::newFromText( 'Lorem ipsum' );
$this->assertSame(
$loremIpsum->getArticleID(),
$loremIpsum->getArticleID( Title::GAID_FOR_UPDATE )
);
$categoryLoremIpsum = Title::newFromText( 'Category:Lorem ipsum' );
$this->assertSame(
$categoryLoremIpsum->getArticleID(),
$categoryLoremIpsum->getArticleID( Title::GAID_FOR_UPDATE )
);
}
private function doImport( $importStreamSource ) {
$importer = new WikiImporter(
$importStreamSource->value,
MediaWikiServices::getInstance()->getMainConfig()
);
$importer->setDebug( true );
$reporter = new ImportReporter(
$importer,
false,
'',
false
);
$reporter->setContext( new RequestContext() );
$reporter->open();
$importer->doImport();
$result = $reporter->close();
$this->assertTrue(
$result->isGood()
);
}
}