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