summaryrefslogtreecommitdiff
path: root/www/wiki/tests/phpunit/includes/linker/LinkRendererFactoryTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/tests/phpunit/includes/linker/LinkRendererFactoryTest.php')
-rw-r--r--www/wiki/tests/phpunit/includes/linker/LinkRendererFactoryTest.php82
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() );
+ }
+}