Merge "Add an audio file parser test"
[lhc/web/wiklou.git] / tests / phpunit / includes / linker / LinkRendererFactoryTest.php
1 <?php
2
3 use MediaWiki\Linker\LinkRenderer;
4 use MediaWiki\Linker\LinkRendererFactory;
5 use MediaWiki\MediaWikiServices;
6
7 /**
8 * @covers MediaWiki\Linker\LinkRendererFactory
9 */
10 class LinkRendererFactoryTest extends MediaWikiLangTestCase {
11
12 /**
13 * @var TitleFormatter
14 */
15 private $titleFormatter;
16
17 public function setUp() {
18 parent::setUp();
19 $this->titleFormatter = MediaWikiServices::getInstance()->getTitleFormatter();
20 }
21
22 public static function provideCreateFromLegacyOptions() {
23 return [
24 [
25 [ 'forcearticlepath' ],
26 'getForceArticlePath',
27 true
28 ],
29 [
30 [ 'http' ],
31 'getExpandURLs',
32 PROTO_HTTP
33 ],
34 [
35 [ 'https' ],
36 'getExpandURLs',
37 PROTO_HTTPS
38 ],
39 [
40 [ 'stubThreshold' => 150 ],
41 'getStubThreshold',
42 150
43 ],
44 ];
45 }
46
47 /**
48 * @dataProvider provideCreateFromLegacyOptions
49 */
50 public function testCreateFromLegacyOptions( $options, $func, $val ) {
51 $factory = new LinkRendererFactory( $this->titleFormatter );
52 $linkRenderer = $factory->createFromLegacyOptions(
53 $options
54 );
55 $this->assertInstanceOf( LinkRenderer::class, $linkRenderer );
56 $this->assertEquals( $val, $linkRenderer->$func(), $func );
57 }
58
59 public function testCreate() {
60 $factory = new LinkRendererFactory( $this->titleFormatter );
61 $this->assertInstanceOf( LinkRenderer::class, $factory->create() );
62 }
63
64 public function testCreateForUser() {
65 $user = $this->getMock( User::class, [ 'getStubThreshold' ] );
66 $user->expects( $this->once() )
67 ->method( 'getStubThreshold' )
68 ->willReturn( 15 );
69 $factory = new LinkRendererFactory( $this->titleFormatter );
70 $linkRenderer = $factory->createForUser( $user );
71 $this->assertInstanceOf( LinkRenderer::class, $linkRenderer );
72 $this->assertEquals( 15, $linkRenderer->getStubThreshold() );
73 }
74 }