diff options
Diffstat (limited to 'www/wiki/tests/phpunit/includes/linker/LinkRendererFactoryTest.php')
-rw-r--r-- | www/wiki/tests/phpunit/includes/linker/LinkRendererFactoryTest.php | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/www/wiki/tests/phpunit/includes/linker/LinkRendererFactoryTest.php b/www/wiki/tests/phpunit/includes/linker/LinkRendererFactoryTest.php new file mode 100644 index 00000000..27e5a657 --- /dev/null +++ b/www/wiki/tests/phpunit/includes/linker/LinkRendererFactoryTest.php @@ -0,0 +1,82 @@ +<?php + +use MediaWiki\Linker\LinkRenderer; +use MediaWiki\Linker\LinkRendererFactory; +use MediaWiki\MediaWikiServices; + +/** + * @covers MediaWiki\Linker\LinkRendererFactory + */ +class LinkRendererFactoryTest extends MediaWikiLangTestCase { + + /** + * @var TitleFormatter + */ + private $titleFormatter; + + /** + * @var LinkCache + */ + private $linkCache; + + public function setUp() { + parent::setUp(); + $this->titleFormatter = MediaWikiServices::getInstance()->getTitleFormatter(); + $this->linkCache = MediaWikiServices::getInstance()->getLinkCache(); + } + + public static function provideCreateFromLegacyOptions() { + return [ + [ + [ 'forcearticlepath' ], + 'getForceArticlePath', + true + ], + [ + [ 'http' ], + 'getExpandURLs', + PROTO_HTTP + ], + [ + [ 'https' ], + 'getExpandURLs', + PROTO_HTTPS + ], + [ + [ 'stubThreshold' => 150 ], + 'getStubThreshold', + 150 + ], + ]; + } + + /** + * @dataProvider provideCreateFromLegacyOptions + */ + public function testCreateFromLegacyOptions( $options, $func, $val ) { + $factory = new LinkRendererFactory( $this->titleFormatter, $this->linkCache ); + $linkRenderer = $factory->createFromLegacyOptions( + $options + ); + $this->assertInstanceOf( LinkRenderer::class, $linkRenderer ); + $this->assertEquals( $val, $linkRenderer->$func(), $func ); + } + + public function testCreate() { + $factory = new LinkRendererFactory( $this->titleFormatter, $this->linkCache ); + $this->assertInstanceOf( LinkRenderer::class, $factory->create() ); + } + + public function testCreateForUser() { + /** @var PHPUnit_Framework_MockObject_MockObject|User $user */ + $user = $this->getMockBuilder( User::class ) + ->setMethods( [ 'getStubThreshold' ] )->getMock(); + $user->expects( $this->once() ) + ->method( 'getStubThreshold' ) + ->willReturn( 15 ); + $factory = new LinkRendererFactory( $this->titleFormatter, $this->linkCache ); + $linkRenderer = $factory->createForUser( $user ); + $this->assertInstanceOf( LinkRenderer::class, $linkRenderer ); + $this->assertEquals( 15, $linkRenderer->getStubThreshold() ); + } +} |