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
99
100
101
102
103
104
105
106
107
|
<?php
namespace SMW\Tests\Integration\SQLStore;
use SMW\Tests\MwDBaseUnitTestCase;
use SMW\Tests\Utils\MwHooksHandler;
use SMW\Tests\Utils\PageCreator;
use SMW\Tests\Utils\PageDeleter;
use Title;
use WikiPage;
/**
*
* @group SMW
* @group SMWExtension
* @group semantic-mediawiki-integration
* @group mediawiki-database
* @group medium
*
* @license GNU GPL v2+
* @since 1.9
*
* @author mwjames
*/
class RefreshSQLStoreDBIntegrationTest extends MwDBaseUnitTestCase {
private $title;
private $mwHooksHandler;
private $pageDeleter;
private $pageCreator;
protected function setUp() {
parent::setUp();
$this->mwHooksHandler = new MwHooksHandler();
$this->pageDeleter = new PageDeleter();
$this->pageCreator = new PageCreator();
}
public function tearDown() {
$this->mwHooksHandler->restoreListedHooks();
if ( $this->title !== null ) {
$this->pageDeleter->deletePage( $this->title );
}
parent::tearDown();
}
/**
* @dataProvider titleProvider
*/
public function testAfterPageCreation_StoreHasDataToRefreshWithoutJobs( $ns, $name, $iw ) {
$this->mwHooksHandler->deregisterListedHooks();
$this->title = Title::makeTitle( $ns, $name, '', $iw );
$this->pageCreator->createPage( $this->title );
$this->assertStoreHasDataToRefresh( false );
}
/**
* @dataProvider titleProvider
*/
public function testAfterPageCreation_StoreHasDataToRefreshWitJobs( $ns, $name, $iw ) {
$this->mwHooksHandler->deregisterListedHooks();
$this->title = Title::makeTitle( $ns, $name, '', $iw );
$this->pageCreator->createPage( $this->title );
$this->assertStoreHasDataToRefresh( true );
}
protected function assertStoreHasDataToRefresh( $useJobs ) {
$refreshPosition = $this->title->getArticleID();
$entityRebuildDispatcher = $this->getStore()->refreshData(
$refreshPosition,
1,
false,
$useJobs
);
$entityRebuildDispatcher->rebuild( $refreshPosition );
$this->assertGreaterThan(
0,
$entityRebuildDispatcher->getEstimatedProgress()
);
}
public function titleProvider() {
$provider = [];
// $provider[] = array( NS_MAIN, 'withInterWiki', 'commons' );
$provider[] = [ NS_MAIN, 'normalTite', '' ];
$provider[] = [ NS_MAIN, 'useUpdateJobs', '' ];
return $provider;
}
}
|