Merge "SECURITY: Do not allow users to undelete a page they can't edit or create"
[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 /**
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->getMock( User::class, [ 'getStubThreshold' ] );
73 $user->expects( $this->once() )
74 ->method( 'getStubThreshold' )
75 ->willReturn( 15 );
76 $factory = new LinkRendererFactory( $this->titleFormatter, $this->linkCache );
77 $linkRenderer = $factory->createForUser( $user );
78 $this->assertInstanceOf( LinkRenderer::class, $linkRenderer );
79 $this->assertEquals( 15, $linkRenderer->getStubThreshold() );
80 }
81 }