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
|
<?php
use MediaWiki\MediaWikiServices;
/**
* @group GlobalFunctions
* @group Database
*/
class GlobalWithDBTest extends MediaWikiTestCase {
private function setUpBadImageTests( $name ) {
if ( in_array( $name, [
'Hook bad.jpg',
'Redirect to bad.jpg',
'Redirect_to_good.jpg',
'Redirect to hook bad.jpg',
'Redirect to hook good.jpg',
] ) ) {
$this->markTestSkipped( "Didn't get RepoGroup working properly yet" );
}
// Don't try to fetch the files from Commons or anything, please
$this->setMwGlobals( 'wgForeignFileRepos', [] );
// XXX How do we get file redirects to work?
$this->editPage( 'File:Redirect to bad.jpg', '#REDIRECT [[Bad.jpg]]' );
$this->editPage( 'File:Redirect to good.jpg', '#REDIRECT [[Good.jpg]]' );
$this->editPage( 'File:Redirect to hook bad.jpg', '#REDIRECT [[Hook bad.jpg]]' );
$this->editPage( 'File:Redirect to hook good.jpg', '#REDIRECT [[Hook good.jpg]]' );
$this->setTemporaryHook( 'BadImage', 'BadFileLookupTest::badImageHook' );
}
/**
* @dataProvider BadFileLookupTest::provideIsBadFile
* @covers ::wfIsBadImage
*/
public function testWfIsBadImage( $name, $title, $expected ) {
$this->setUpBadImageTests( $name );
$this->editPage( 'MediaWiki:Bad image list', BadFileLookupTest::BAD_FILE_LIST );
$this->resetServices();
// Enable messages from MediaWiki namespace
MediaWikiServices::getInstance()->getMessageCache()->enable();
$this->assertEquals( $expected, wfIsBadImage( $name, $title ) );
}
}
|