From: Kunal Mehta Date: Tue, 24 May 2016 02:19:14 +0000 (-0700) Subject: Remove unused MediaWikiPageLinkRenderer class and interface X-Git-Tag: 1.31.0-rc.0~6536^2 X-Git-Url: https://git.heureux-cyclage.org/?a=commitdiff_plain;h=25ea70f43735a0ae5d9c0ca8bbb339802c9b1c5e;p=lhc%2Fweb%2Fwiklou.git Remove unused MediaWikiPageLinkRenderer class and interface The MediaWikiPageLinkRenderer interface was introduced with TitleValue in 1.23, but was barely used outside of two special pages in MediaWiki core. It has now been superceded by MediaWiki\Linker\LinkRenderer and should be removed in favor of that. Change-Id: Ib56d5731d4803aa417942aced7f3dedf2104bbde --- diff --git a/autoload.php b/autoload.php index e729b6f9f1..87ba2254e6 100644 --- a/autoload.php +++ b/autoload.php @@ -791,7 +791,6 @@ $wgAutoloadLocalClasses = [ 'MediaTransformOutput' => __DIR__ . '/includes/media/MediaTransformOutput.php', 'MediaWiki' => __DIR__ . '/includes/MediaWiki.php', 'MediaWikiI18N' => __DIR__ . '/includes/skins/MediaWikiI18N.php', - 'MediaWikiPageLinkRenderer' => __DIR__ . '/includes/title/MediaWikiPageLinkRenderer.php', 'MediaWikiSite' => __DIR__ . '/includes/site/MediaWikiSite.php', 'MediaWikiTitleCodec' => __DIR__ . '/includes/title/MediaWikiTitleCodec.php', 'MediaWikiVersionFetcher' => __DIR__ . '/includes/MediaWikiVersionFetcher.php', @@ -1004,7 +1003,6 @@ $wgAutoloadLocalClasses = [ 'PageArchive' => __DIR__ . '/includes/specials/SpecialUndelete.php', 'PageExists' => __DIR__ . '/maintenance/pageExists.php', 'PageLangLogFormatter' => __DIR__ . '/includes/logging/PageLangLogFormatter.php', - 'PageLinkRenderer' => __DIR__ . '/includes/title/PageLinkRenderer.php', 'PageProps' => __DIR__ . '/includes/PageProps.php', 'PageQueryPage' => __DIR__ . '/includes/specialpage/PageQueryPage.php', 'Pager' => __DIR__ . '/includes/pager/Pager.php', diff --git a/includes/title/MediaWikiPageLinkRenderer.php b/includes/title/MediaWikiPageLinkRenderer.php deleted file mode 100644 index a565271019..0000000000 --- a/includes/title/MediaWikiPageLinkRenderer.php +++ /dev/null @@ -1,134 +0,0 @@ -formatter = $formatter; - $this->baseUrl = $baseUrl; - } - - /** - * Returns the (partial) URL for the given page (including any section identifier). - * - * @param LinkTarget $page The link's target - * @param array $params Any additional URL parameters. - * - * @return string - */ - public function getPageUrl( LinkTarget $page, $params = [] ) { - // TODO: move the code from Linker::linkUrl here! - // The below is just a rough estimation! - - $name = $this->formatter->getPrefixedText( $page ); - $name = str_replace( ' ', '_', $name ); - $name = wfUrlencode( $name ); - - $url = $this->baseUrl . $name; - - if ( $params ) { - $separator = ( strpos( $url, '?' ) ) ? '&' : '?'; - $url .= $separator . wfArrayToCgi( $params ); - } - - $fragment = $page->getFragment(); - if ( $fragment !== '' ) { - $url = $url . '#' . wfUrlencode( $fragment ); - } - - return $url; - } - - /** - * Returns an HTML link to the given page, using the given surface text. - * - * @param LinkTarget $linkTarget The link's target - * @param string $text The link's surface text (will be derived from $page if not given). - * - * @return string - */ - public function renderHtmlLink( LinkTarget $linkTarget, $text = null ) { - if ( $text === null ) { - $text = $this->formatter->getFullText( $linkTarget ); - } - - // TODO: move the logic implemented by Linker here, - // using $this->formatter and $this->baseUrl, and - // re-implement Linker to use a HtmlPageLinkRenderer. - - $title = Title::newFromLinkTarget( $linkTarget ); - $link = Linker::link( $title, htmlspecialchars( $text ) ); - - return $link; - } - - /** - * Returns a wikitext link to the given page, using the given surface text. - * - * @param LinkTarget $page The link's target - * @param string $text The link's surface text (will be derived from $page if not given). - * - * @return string - */ - public function renderWikitextLink( LinkTarget $page, $text = null ) { - if ( $text === null ) { - $text = $this->formatter->getFullText( $page ); - } - - $name = $this->formatter->getFullText( $page ); - - return '[[:' . $name . '|' . wfEscapeWikiText( $text ) . ']]'; - } -} diff --git a/includes/title/PageLinkRenderer.php b/includes/title/PageLinkRenderer.php deleted file mode 100644 index e26fe1a2d5..0000000000 --- a/includes/title/PageLinkRenderer.php +++ /dev/null @@ -1,69 +0,0 @@ -setMwGlobals( [ - 'wgContLang' => Language::factory( 'en' ), - ] ); - } - - /** - * Returns a mock GenderCache that will return "female" always. - * - * @return GenderCache - */ - private function getGenderCache() { - $genderCache = $this->getMockBuilder( 'GenderCache' ) - ->disableOriginalConstructor() - ->getMock(); - - $genderCache->expects( $this->any() ) - ->method( 'getGenderOf' ) - ->will( $this->returnValue( 'female' ) ); - - return $genderCache; - } - - public static function provideGetPageUrl() { - return [ - [ - new TitleValue( NS_MAIN, 'Foo_Bar' ), - [], - '/Foo_Bar' - ], - [ - new TitleValue( NS_USER, 'Hansi_Maier', 'stuff' ), - [ 'foo' => 'bar' ], - '/User:Hansi_Maier?foo=bar#stuff' - ], - ]; - } - - /** - * @dataProvider provideGetPageUrl - */ - public function testGetPageUrl( TitleValue $title, $params, $url ) { - // NOTE: was of Feb 2014, MediaWikiPageLinkRenderer *ignores* the - // WikitextTitleFormatter we pass here, and relies on the Linker - // class for generating the link! This may break the test e.g. - // of Linker uses a different language for the namespace names. - - $lang = Language::factory( 'en' ); - - $formatter = new MediaWikiTitleCodec( $lang, $this->getGenderCache() ); - $renderer = new MediaWikiPageLinkRenderer( $formatter, '/' ); - $actual = $renderer->getPageUrl( $title, $params ); - - $this->assertEquals( $url, $actual ); - } - - public static function provideRenderHtmlLink() { - return [ - [ - new TitleValue( NS_MAIN, 'Foo_Bar' ), - 'Foo Bar', - '!Foo Bar!' - ], - [ - // NOTE: Linker doesn't include fragments in "broken" links - // NOTE: once this no longer uses Linker, we will get "2" instead of "User" for the namespace. - new TitleValue( NS_USER, 'Hansi_Maier', 'stuff' ), - 'Hansi Maier\'s Stuff', - '!renderWikitextLink( $title, $text ); - - $this->assertEquals( $expected, $actual ); - } -}