Merge "Improve return types in class MagicWordArray"
[lhc/web/wiklou.git] / tests / phpunit / includes / import / ImportLinkCacheIntegrationTest.php
1 <?php
2
3 use MediaWiki\MediaWikiServices;
4
5 /**
6 * Integration test that checks import success and
7 * LinkCache integration.
8 *
9 * @group large
10 * @group Database
11 * @covers ImportStreamSource
12 * @covers ImportReporter
13 *
14 * @author mwjames
15 */
16 class ImportLinkCacheIntegrationTest extends MediaWikiTestCase {
17
18 private $importStreamSource;
19
20 protected function setUp() {
21 parent::setUp();
22
23 $file = dirname( __DIR__ ) . '/../data/import/ImportLinkCacheIntegrationTest.xml';
24
25 $this->importStreamSource = ImportStreamSource::newFromFile( $file );
26
27 if ( !$this->importStreamSource->isGood() ) {
28 throw new Exception( "Import source for {$file} failed" );
29 }
30 }
31
32 public function testImportForImportSource() {
33 $this->doImport( $this->importStreamSource );
34
35 // Imported title
36 $loremIpsum = Title::newFromText( 'Lorem ipsum' );
37
38 $this->assertSame(
39 $loremIpsum->getArticleID(),
40 $loremIpsum->getArticleID( Title::GAID_FOR_UPDATE )
41 );
42
43 $categoryLoremIpsum = Title::newFromText( 'Category:Lorem ipsum' );
44
45 $this->assertSame(
46 $categoryLoremIpsum->getArticleID(),
47 $categoryLoremIpsum->getArticleID( Title::GAID_FOR_UPDATE )
48 );
49
50 $page = new WikiPage( $loremIpsum );
51 $page->doDeleteArticle( 'import test: delete page' );
52
53 $page = new WikiPage( $categoryLoremIpsum );
54 $page->doDeleteArticle( 'import test: delete page' );
55 }
56
57 /**
58 * @depends testImportForImportSource
59 */
60 public function testReImportForImportSource() {
61 $this->doImport( $this->importStreamSource );
62
63 // ReImported title
64 $loremIpsum = Title::newFromText( 'Lorem ipsum' );
65
66 $this->assertSame(
67 $loremIpsum->getArticleID(),
68 $loremIpsum->getArticleID( Title::GAID_FOR_UPDATE )
69 );
70
71 $categoryLoremIpsum = Title::newFromText( 'Category:Lorem ipsum' );
72
73 $this->assertSame(
74 $categoryLoremIpsum->getArticleID(),
75 $categoryLoremIpsum->getArticleID( Title::GAID_FOR_UPDATE )
76 );
77 }
78
79 private function doImport( $importStreamSource ) {
80 $importer = new WikiImporter(
81 $importStreamSource->value,
82 MediaWikiServices::getInstance()->getMainConfig()
83 );
84 $importer->setDebug( true );
85
86 $reporter = new ImportReporter(
87 $importer,
88 false,
89 '',
90 false
91 );
92
93 $reporter->setContext( new RequestContext() );
94 $reporter->open();
95
96 $importer->doImport();
97
98 $result = $reporter->close();
99
100 $this->assertTrue(
101 $result->isGood()
102 );
103 }
104
105 }