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
|
<?php
namespace SMW\Tests\Integration\SQLStore;
use SMW\Tests\Util\PageDeleter;
use SMW\Tests\Util\PageCreator;
use SMW\Tests\Util\MwHooksHandler;
use SMW\Tests\MwDBaseUnitTestCase;
use WikiPage;
use Title;
/**
* @ingroup Test
*
* @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();
$refreshProgress = $this->getStore()->refreshData(
$refreshPosition,
1,
false,
$useJobs
);
$this->assertGreaterThan( 0, $refreshProgress );
}
public function titleProvider() {
$provider = array();
$provider[] = array( NS_MAIN, 'withInterWiki', 'foo' );
$provider[] = array( NS_MAIN, 'normalTite', '' );
$provider[] = array( NS_MAIN, 'useUpdateJobs', '' );
return $provider;
}
}
|