X-Git-Url: https://scripts.mit.edu/gitweb/autoinstallsdev/mediawiki.git/blobdiff_plain/d57edfddd6c01f0ed6b1a84019649cdf6cddd5f8..83d871ca0d985c6d586b323bf96161afb510ebf6:/tests/phpunit/includes/linker/LinkRendererFactoryTest.php diff --git a/tests/phpunit/includes/linker/LinkRendererFactoryTest.php b/tests/phpunit/includes/linker/LinkRendererFactoryTest.php new file mode 100644 index 00000000..27e5a657 --- /dev/null +++ b/tests/phpunit/includes/linker/LinkRendererFactoryTest.php @@ -0,0 +1,82 @@ +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() ); + } +}