]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - tests/phpunit/includes/linker/LinkRendererFactoryTest.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / 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 (file)
index 0000000..27e5a65
--- /dev/null
@@ -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() );
+       }
+}