jenkins-bot has submitted this change and it was merged.
Change subject: ChangesList: Use LinkRenderer instead of Linker::link()
......................................................................
ChangesList: Use LinkRenderer instead of Linker::link()
Change-Id: Iae32a9e365aad268d2671df6a0b916e4d9c0a801
---
M includes/changes/ChangesList.php
M includes/changes/EnhancedChangesList.php
M includes/changes/RCCacheEntryFactory.php
M tests/phpunit/includes/changes/RCCacheEntryFactoryTest.php
M tests/phpunit/includes/changes/TestRecentChangesHelper.php
5 files changed, 89 insertions(+), 36 deletions(-)
Approvals:
Aaron Schulz: Looks good to me, approved
Legoktm: Looks good to me, approved
jenkins-bot: Verified
diff --git a/includes/changes/ChangesList.php b/includes/changes/ChangesList.php
index b938ff0..9948040 100644
--- a/includes/changes/ChangesList.php
+++ b/includes/changes/ChangesList.php
@@ -21,6 +21,8 @@
*
* @file
*/
+use MediaWiki\Linker\LinkRenderer;
+use MediaWiki\MediaWikiServices;
class ChangesList extends ContextSource {
/**
@@ -40,6 +42,11 @@
protected $watchMsgCache;
/**
+ * @var LinkRenderer
+ */
+ protected $linkRenderer;
+
+ /**
* Changeslist constructor
*
* @param Skin|IContextSource $obj
@@ -54,6 +61,7 @@
}
$this->preCacheMessages();
$this->watchMsgCache = new HashBagOStuff( [ 'maxKeys' => 50 ] );
+ $this->linkRenderer =
MediaWikiServices::getInstance()->getLinkRenderer();
}
/**
@@ -337,8 +345,10 @@
*/
public function insertLog( &$s, $title, $logtype ) {
$page = new LogPage( $logtype );
- $logname = $page->getName()->setContext( $this->getContext()
)->escaped();
- $s .= $this->msg( 'parentheses' )->rawParams(
Linker::linkKnown( $title, $logname ) )->escaped();
+ $logname = $page->getName()->setContext( $this->getContext()
)->text();
+ $s .= $this->msg( 'parentheses' )->rawParams(
+ $this->linkRenderer->makeKnownLink( $title, $logname )
+ )->escaped();
}
/**
@@ -363,9 +373,9 @@
'oldid' => $rc->mAttribs['rc_last_oldid']
];
- $diffLink = Linker::linkKnown(
+ $diffLink = $this->linkRenderer->makeKnownLink(
$rc->getTitle(),
- $this->message['diff'],
+ new HtmlArmor( $this->message['diff'] ),
[],
$query
);
@@ -375,9 +385,9 @@
} else {
$diffhist = $diffLink .
$this->message['pipe-separator'];
# History link
- $diffhist .= Linker::linkKnown(
+ $diffhist .= $this->linkRenderer->makeKnownLink(
$rc->getTitle(),
- $this->message['hist'],
+ new HtmlArmor( $this->message['hist'] ),
[],
[
'curid' => $rc->mAttribs['rc_cur_id'],
@@ -415,7 +425,7 @@
$params = [ 'redirect' => 'no' ];
}
- $articlelink = Linker::link(
+ $articlelink = $this->linkRenderer->makeLink(
$rc->getTitle(),
null,
[ 'class' => 'mw-changeslist-title' ],
diff --git a/includes/changes/EnhancedChangesList.php
b/includes/changes/EnhancedChangesList.php
index 1070877..099a295 100644
--- a/includes/changes/EnhancedChangesList.php
+++ b/includes/changes/EnhancedChangesList.php
@@ -54,7 +54,8 @@
// message is set by the parent ChangesList class
$this->cacheEntryFactory = new RCCacheEntryFactory(
$context,
- $this->message
+ $this->message,
+ $this->linkRenderer
);
}
@@ -390,9 +391,9 @@
} elseif ( !ChangesList::userCan( $rcObj,
Revision::DELETED_TEXT, $this->getUser() ) ) {
$link = '<span class="history-deleted">' .
$rcObj->timestamp . '</span> ';
} else {
- $link = Linker::linkKnown(
+ $link = $this->linkRenderer->makeKnownLink(
$rcObj->getTitle(),
- $rcObj->timestamp,
+ new HtmlArmor( $rcObj->timestamp ),
[],
$params
);
@@ -524,26 +525,24 @@
) {
$links['total-changes'] = $nchanges[$n];
} else {
- $links['total-changes'] = Linker::link(
+ $links['total-changes'] =
$this->linkRenderer->makeKnownLink(
$block0->getTitle(),
- $nchanges[$n],
+ new HtmlArmor( $nchanges[$n] ),
[],
$queryParams + [
'diff' => $currentRevision,
'oldid' =>
$last->mAttribs['rc_last_oldid'],
- ],
- [ 'known', 'noclasses' ]
+ ]
);
if ( $sinceLast > 0 && $sinceLast < $n ) {
- $links['total-changes-since-last'] =
Linker::link(
+ $links['total-changes-since-last'] =
$this->linkRenderer->makeKnownLink(
$block0->getTitle(),
-
$sinceLastVisitMsg[$sinceLast],
+ new HtmlArmor(
$sinceLastVisitMsg[$sinceLast] ),
[],
$queryParams + [
'diff' =>
$currentRevision,
'oldid' =>
$unvisitedOldid,
- ],
- [ 'known', 'noclasses' ]
+ ]
);
}
}
@@ -558,9 +557,9 @@
$params = $queryParams;
$params['action'] = 'history';
- $links['history'] = Linker::linkKnown(
+ $links['history'] = $this->linkRenderer->makeKnownLink(
$block0->getTitle(),
- $this->message['enhancedrc-history'],
+ new HtmlArmor(
$this->message['enhancedrc-history'] ),
[],
$params
);
@@ -618,9 +617,11 @@
if ( $logType ) {
$logPage = new LogPage( $logType );
$logTitle = SpecialPage::getTitleFor( 'Log', $logType );
- $logName = $logPage->getName()->escaped();
+ $logName = $logPage->getName()->text();
$data['logLink'] = $this->msg( 'parentheses' )
- ->rawParams( Linker::linkKnown( $logTitle,
$logName ) )->escaped();
+ ->rawParams(
+ $this->linkRenderer->makeKnownLink(
$logTitle, $logName )
+ )->escaped();
} else {
$data['articleLink'] = $this->getArticleLink( $rcObj,
$rcObj->unpatrolled, $rcObj->watched );
}
@@ -710,9 +711,10 @@
}
$retVal = ' ' . $this->msg( 'parentheses' )
- ->rawParams( $rc->difflink .
$this->message['pipe-separator'] . Linker::linkKnown(
+ ->rawParams( $rc->difflink .
$this->message['pipe-separator']
+ . $this->linkRenderer->makeKnownLink(
$pageTitle,
- $this->message['hist'],
+ new HtmlArmor(
$this->message['hist'] ),
[],
$query
) )->escaped();
diff --git a/includes/changes/RCCacheEntryFactory.php
b/includes/changes/RCCacheEntryFactory.php
index 549bc37..2c5c8b1 100644
--- a/includes/changes/RCCacheEntryFactory.php
+++ b/includes/changes/RCCacheEntryFactory.php
@@ -19,6 +19,7 @@
*
* @file
*/
+use MediaWiki\Linker\LinkRenderer;
class RCCacheEntryFactory {
@@ -29,12 +30,21 @@
private $messages;
/**
+ * @var LinkRenderer
+ */
+ private $linkRenderer;
+
+ /**
* @param IContextSource $context
* @param string[] $messages
+ * @param LinkRenderer $linkRenderer
*/
- public function __construct( IContextSource $context, $messages ) {
+ public function __construct(
+ IContextSource $context, $messages, LinkRenderer $linkRenderer
+ ) {
$this->context = $context;
$this->messages = $messages;
+ $this->linkRenderer = $linkRenderer;
}
/**
@@ -99,7 +109,7 @@
// New unpatrolled pages
if ( $cacheEntry->unpatrolled && $type == RC_NEW ) {
- $clink = Linker::linkKnown( $cacheEntry->getTitle() );
+ $clink = $this->linkRenderer->makeKnownLink(
$cacheEntry->getTitle() );
// Log entries
} elseif ( $type == RC_LOG ) {
$logType = $cacheEntry->mAttribs['rc_log_type'];
@@ -108,7 +118,7 @@
$clink = $this->getLogLink( $logType );
} else {
wfDebugLog( 'recentchanges', 'Unexpected log
entry with no log type in recent changes' );
- $clink = Linker::link( $cacheEntry->getTitle()
);
+ $clink = $this->linkRenderer->makeLink(
$cacheEntry->getTitle() );
}
// Log entries (old format) and special pages
} elseif ( $cacheEntry->mAttribs['rc_namespace'] == NS_SPECIAL
) {
@@ -116,7 +126,7 @@
$clink = '';
// Edits
} else {
- $clink = Linker::linkKnown( $cacheEntry->getTitle() );
+ $clink = $this->linkRenderer->makeKnownLink(
$cacheEntry->getTitle() );
}
return $clink;
@@ -125,10 +135,12 @@
private function getLogLink( $logType ) {
$logtitle = SpecialPage::getTitleFor( 'Log', $logType );
$logpage = new LogPage( $logType );
- $logname = $logpage->getName()->escaped();
+ $logname = $logpage->getName()->text();
$logLink = $this->context->msg( 'parentheses' )
- ->rawParams( Linker::linkKnown( $logtitle, $logname )
)->escaped();
+ ->rawParams(
+ $this->linkRenderer->makeKnownLink( $logtitle,
$logname )
+ )->escaped();
return $logLink;
}
@@ -242,9 +254,9 @@
if ( !$showDiffLinks || !$lastOldid || in_array( $type,
$logTypes ) ) {
$lastLink = $lastMessage;
} else {
- $lastLink = Linker::linkKnown(
+ $lastLink = $this->linkRenderer->makeKnownLink(
$cacheEntry->getTitle(),
- $lastMessage,
+ new HtmlArmor( $lastMessage ),
[],
$this->buildDiffQueryParams( $cacheEntry )
);
diff --git a/tests/phpunit/includes/changes/RCCacheEntryFactoryTest.php
b/tests/phpunit/includes/changes/RCCacheEntryFactoryTest.php
index 9debc03..16f210b 100644
--- a/tests/phpunit/includes/changes/RCCacheEntryFactoryTest.php
+++ b/tests/phpunit/includes/changes/RCCacheEntryFactoryTest.php
@@ -1,5 +1,8 @@
<?php
+use MediaWiki\Linker\LinkRenderer;
+use MediaWiki\MediaWikiServices;
+
/**
* @covers RCCacheEntryFactory
*
@@ -14,6 +17,11 @@
*/
private $testRecentChangesHelper;
+ /**
+ * @var LinkRenderer;
+ */
+ private $linkRenderer;
+
public function __construct( $name = null, array $data = [], $dataName
= '' ) {
parent::__construct( $name, $data, $dataName );
@@ -26,6 +34,10 @@
$this->setMwGlobals( [
'wgArticlePath' => '/wiki/$1'
] );
+
+ $this->linkRenderer = new LinkRenderer(
+ MediaWikiServices::getInstance()->getTitleFormatter()
+ );
}
public function testNewFromRecentChange() {
@@ -40,7 +52,11 @@
0, // counter
0 // number of watching users
);
- $cacheEntryFactory = new RCCacheEntryFactory(
$this->getContext(), $this->getMessages() );
+ $cacheEntryFactory = new RCCacheEntryFactory(
+ $this->getContext(),
+ $this->getMessages(),
+ $this->linkRenderer
+ );
$cacheEntry = $cacheEntryFactory->newFromRecentChange(
$recentChange, false );
$this->assertInstanceOf( 'RCCacheEntry', $cacheEntry );
@@ -78,7 +94,11 @@
0, // counter
0 // number of watching users
);
- $cacheEntryFactory = new RCCacheEntryFactory(
$this->getContext(), $this->getMessages() );
+ $cacheEntryFactory = new RCCacheEntryFactory(
+ $this->getContext(),
+ $this->getMessages(),
+ $this->linkRenderer
+ );
$cacheEntry = $cacheEntryFactory->newFromRecentChange(
$recentChange, false );
$this->assertInstanceOf( 'RCCacheEntry', $cacheEntry );
@@ -108,7 +128,11 @@
0, // counter
0 // number of watching users
);
- $cacheEntryFactory = new RCCacheEntryFactory(
$this->getContext(), $this->getMessages() );
+ $cacheEntryFactory = new RCCacheEntryFactory(
+ $this->getContext(),
+ $this->getMessages(),
+ $this->linkRenderer
+ );
$cacheEntry = $cacheEntryFactory->newFromRecentChange(
$recentChange, false );
$this->assertInstanceOf( 'RCCacheEntry', $cacheEntry );
diff --git a/tests/phpunit/includes/changes/TestRecentChangesHelper.php
b/tests/phpunit/includes/changes/TestRecentChangesHelper.php
index faa1dcc..cac3d43 100644
--- a/tests/phpunit/includes/changes/TestRecentChangesHelper.php
+++ b/tests/phpunit/includes/changes/TestRecentChangesHelper.php
@@ -1,4 +1,6 @@
<?php
+use MediaWiki\Linker\LinkRenderer;
+use MediaWiki\MediaWikiServices;
/**
* Helper for generating test recent changes entries.
@@ -100,7 +102,10 @@
public function getCacheEntry( $recentChange ) {
$rcCacheFactory = new RCCacheEntryFactory(
new RequestContext(),
- [ 'diff' => 'diff', 'cur' => 'cur', 'last' => 'last' ]
+ [ 'diff' => 'diff', 'cur' => 'cur', 'last' => 'last' ],
+ new LinkRenderer(
+
MediaWikiServices::getInstance()->getTitleFormatter()
+ )
);
return $rcCacheFactory->newFromRecentChange( $recentChange,
false );
}
--
To view, visit https://gerrit.wikimedia.org/r/288579
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Iae32a9e365aad268d2671df6a0b916e4d9c0a801
Gerrit-PatchSet: 24
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Legoktm <[email protected]>
Gerrit-Reviewer: Aaron Schulz <[email protected]>
Gerrit-Reviewer: Aude <[email protected]>
Gerrit-Reviewer: Legoktm <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits