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
|
<?php
/**
* Test the Upload Wizard Configuration
* @group Upload
* @covers UploadWizardConfig
*/
class UploadWizardConfigTest extends MediaWikiTestCase {
public function setUp() {
parent::setUp();
// insert a interwiki prefixes for testing inter-language links.
// This is based on ParserTestRunner::setupInterwikis, which does
// exactly the same (but with more prefixes) for parser tests.
Hooks::register( 'InterwikiLoadPrefix', function ( $prefix, &$iwData ) {
static $testInterwikis = [
'es' => [
'iw_url' => 'http://es.wikipedia.org/wiki/$1',
'iw_api' => '',
'iw_wikiid' => '',
'iw_local' => 1 ],
];
if ( array_key_exists( $prefix, $testInterwikis ) ) {
$iwData = $testInterwikis[$prefix];
}
// We only want to rely on the above fixtures
return false;
} );
}
public function tearDown() {
parent::tearDown();
Hooks::clear( 'InterwikiLoadPrefix' );
}
public function objRefProvider() {
return [
[
'',
false
],
[
'JustSomeString',
false
],
[
'notawiki|Page Title',
false
],
[
'es|Page Title',
'http://es.wikipedia.org/wiki/Page Title'
],
[
'es|Page Title|id12345',
'http://es.wikipedia.org/wiki/Page Title'
],
];
}
/**
* @dataProvider objRefProvider
*/
public function testButtonTargetIsSetToUseObjRef_buttonHrefMatchesRefPage(
$objRef, $expectedResult
) {
global $wgUploadWizardConfig;
$this->setMwGlobals( [
'wgUploadWizardConfig' => array_merge( $wgUploadWizardConfig, [
'defaults' => [ 'objref' => $objRef ],
] ),
] );
$this->assertEquals(
$expectedResult,
$this->getHomeButtonHref()
);
}
private function getHomeButtonHref() {
$campaign = new UploadWizardCampaign( Title::newFromText( 'uw-test-campaign', NS_CAMPAIGN ),
[
'enabled' => true,
'display' => [
'homeButton' => [
'label' => 'Back to that list page',
'target' => 'useObjref'
]
]
]
);
$config = $campaign->getParsedConfig();
return isset(
$config['display']['homeButton']['target']
) ? $config['display']['homeButton']['target'] : false;
}
}
|