Special:UserLogin: Consolidate create account buttons
[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 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 [ 'noclasses' ],
26 'getNoClasses',
27 true
28 ],
29 [
30 [ 'forcearticlepath' ],
31 'getForceArticlePath',
32 true
33 ],
34 [
35 [ 'http' ],
36 'getExpandURLs',
37 PROTO_HTTP
38 ],
39 [
40 [ 'https' ],
41 'getExpandURLs',
42 PROTO_HTTPS
43 ],
44 [
45 [ 'stubThreshold' => 150 ],
46 'getStubThreshold',
47 150
48 ],
49 ];
50 }
51
52 /**
53 * @dataProvider provideCreateFromLegacyOptions
54 */
55 public function testCreateFromLegacyOptions( $options, $func, $val ) {
56 $factory = new LinkRendererFactory( $this->titleFormatter );
57 $linkRenderer = $factory->createFromLegacyOptions(
58 $options
59 );
60 $this->assertInstanceOf( LinkRenderer::class, $linkRenderer );
61 $this->assertEquals( $val, $linkRenderer->$func(), $func );
62 }
63
64 public function testCreate() {
65 $factory = new LinkRendererFactory( $this->titleFormatter );
66 $this->assertInstanceOf( LinkRenderer::class, $factory->create() );
67 }
68
69 public function testCreateForUser() {
70 $user = $this->getMock( User::class, [ 'getStubThreshold' ] );
71 $user->expects( $this->once() )
72 ->method( 'getStubThreshold' )
73 ->willReturn( 15 );
74 $factory = new LinkRendererFactory( $this->titleFormatter );
75 $linkRenderer = $factory->createForUser( $user );
76 $this->assertInstanceOf( LinkRenderer::class, $linkRenderer );
77 $this->assertEquals( 15, $linkRenderer->getStubThreshold() );
78 }
79 }