1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
<?php
use MediaWiki\Context\RequestContext;
use MediaWiki\Status\Status;
use MediaWiki\Title\Title;
use Wikimedia\Rdbms\IDBAccessObject;
/**
* Integration test that checks import success and
* LinkCache integration.
*
* @group large
* @group Database
* @covers \ImportStreamSource
* @covers \ImportReporter
*
* @author mwjames
*/
class ImportLinkCacheIntegrationTest extends MediaWikiIntegrationTestCase {
/** @var Status */
private $importStreamSource;
protected function setUp(): void {
parent::setUp();
$file = dirname( __DIR__ ) . '/../data/import/ImportLinkCacheIntegrationTest.xml';
$this->importStreamSource = ImportStreamSource::newFromFile( $file );
if ( !$this->importStreamSource->isGood() ) {
$this->fail( "Import source for {$file} failed" );
}
}
public function testImportForImportSource() {
$this->doImport( $this->importStreamSource );
// Imported title
$loremIpsum = Title::makeTitle( NS_MAIN, 'Lorem ipsum' );
$this->assertSame(
$loremIpsum->getArticleID(),
$loremIpsum->getArticleID( IDBAccessObject::READ_LATEST )
);
$categoryLoremIpsum = Title::makeTitle( NS_CATEGORY, 'Lorem ipsum' );
$this->assertSame(
$categoryLoremIpsum->getArticleID(),
$categoryLoremIpsum->getArticleID( IDBAccessObject::READ_LATEST )
);
}
/**
* @depends testImportForImportSource
*/
public function testReImportForImportSource() {
$this->doImport( $this->importStreamSource );
// ReImported title
$loremIpsum = Title::makeTitle( NS_MAIN, 'Lorem ipsum' );
$this->assertSame(
$loremIpsum->getArticleID(),
$loremIpsum->getArticleID( IDBAccessObject::READ_LATEST )
);
$categoryLoremIpsum = Title::makeTitle( NS_CATEGORY, 'Lorem ipsum' );
$this->assertSame(
$categoryLoremIpsum->getArticleID(),
$categoryLoremIpsum->getArticleID( IDBAccessObject::READ_LATEST )
);
}
private function doImport( $importStreamSource ) {
$importer = $this->getServiceContainer()
->getWikiImporterFactory()
->getWikiImporter( $importStreamSource->value, $this->getTestSysop()->getAuthority() );
$importer->setDebug( true );
$context = RequestContext::getMain();
$context->setUser( $this->getTestUser()->getUser() );
$reporter = new ImportReporter(
$importer,
false,
'',
false,
$context
);
$reporter->open();
$importer->doImport();
$this->assertStatusGood( $reporter->close() );
}
}
|