diff options
author | Yaco <franco@reevo.org> | 2020-06-04 11:01:00 -0300 |
---|---|---|
committer | Yaco <franco@reevo.org> | 2020-06-04 11:01:00 -0300 |
commit | fc7369835258467bf97eb64f184b93691f9a9fd5 (patch) | |
tree | daabd60089d2dd76d9f5fb416b005fbe159c799d /www/wiki/tests/phpunit/includes/import/ImportLinkCacheIntegrationTest.php |
first commit
Diffstat (limited to 'www/wiki/tests/phpunit/includes/import/ImportLinkCacheIntegrationTest.php')
-rw-r--r-- | www/wiki/tests/phpunit/includes/import/ImportLinkCacheIntegrationTest.php | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/www/wiki/tests/phpunit/includes/import/ImportLinkCacheIntegrationTest.php b/www/wiki/tests/phpunit/includes/import/ImportLinkCacheIntegrationTest.php new file mode 100644 index 00000000..1db2215e --- /dev/null +++ b/www/wiki/tests/phpunit/includes/import/ImportLinkCacheIntegrationTest.php @@ -0,0 +1,104 @@ +<?php +use MediaWiki\MediaWikiServices; + +/** + * Integration test that checks import success and + * LinkCache integration. + * + * @group large + * @group Database + * @covers ImportStreamSource + * @covers ImportReporter + * + * @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() + ); + } + +} |