]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blob - tests/phpunit/includes/linker/LinkRendererFactoryTest.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.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         /**
18          * @var LinkCache
19          */
20         private $linkCache;
21
22         public function setUp() {
23                 parent::setUp();
24                 $this->titleFormatter = MediaWikiServices::getInstance()->getTitleFormatter();
25                 $this->linkCache = MediaWikiServices::getInstance()->getLinkCache();
26         }
27
28         public static function provideCreateFromLegacyOptions() {
29                 return [
30                         [
31                                 [ 'forcearticlepath' ],
32                                 'getForceArticlePath',
33                                 true
34                         ],
35                         [
36                                 [ 'http' ],
37                                 'getExpandURLs',
38                                 PROTO_HTTP
39                         ],
40                         [
41                                 [ 'https' ],
42                                 'getExpandURLs',
43                                 PROTO_HTTPS
44                         ],
45                         [
46                                 [ 'stubThreshold' => 150 ],
47                                 'getStubThreshold',
48                                 150
49                         ],
50                 ];
51         }
52
53         /**
54          * @dataProvider provideCreateFromLegacyOptions
55          */
56         public function testCreateFromLegacyOptions( $options, $func, $val ) {
57                 $factory = new LinkRendererFactory( $this->titleFormatter, $this->linkCache );
58                 $linkRenderer = $factory->createFromLegacyOptions(
59                         $options
60                 );
61                 $this->assertInstanceOf( LinkRenderer::class, $linkRenderer );
62                 $this->assertEquals( $val, $linkRenderer->$func(), $func );
63         }
64
65         public function testCreate() {
66                 $factory = new LinkRendererFactory( $this->titleFormatter, $this->linkCache );
67                 $this->assertInstanceOf( LinkRenderer::class, $factory->create() );
68         }
69
70         public function testCreateForUser() {
71                 /** @var PHPUnit_Framework_MockObject_MockObject|User $user */
72                 $user = $this->getMockBuilder( User::class )
73                         ->setMethods( [ 'getStubThreshold' ] )->getMock();
74                 $user->expects( $this->once() )
75                         ->method( 'getStubThreshold' )
76                         ->willReturn( 15 );
77                 $factory = new LinkRendererFactory( $this->titleFormatter, $this->linkCache );
78                 $linkRenderer = $factory->createForUser( $user );
79                 $this->assertInstanceOf( LinkRenderer::class, $linkRenderer );
80                 $this->assertEquals( 15, $linkRenderer->getStubThreshold() );
81         }
82 }