Aude has uploaded a new change for review.
https://gerrit.wikimedia.org/r/185161
Change subject: Fix passing arguments in NoLangLinkHandler
......................................................................
Fix passing arguments in NoLangLinkHandler
arguments were not passed to doHandle.
also, setNoExternalLangLinks is a static method so changed
to call it statically and added test case.
Bug: T86886
Change-Id: If0449594f27d891d6895269ad7d62d137fce4f09
---
M client/includes/parserhooks/NoLangLinkHandler.php
M client/tests/phpunit/includes/Hooks/NoLangLinkHandlerTest.php
2 files changed, 24 insertions(+), 13 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/61/185161/1
diff --git a/client/includes/parserhooks/NoLangLinkHandler.php
b/client/includes/parserhooks/NoLangLinkHandler.php
index ef5e1bc..b9e15b0 100644
--- a/client/includes/parserhooks/NoLangLinkHandler.php
+++ b/client/includes/parserhooks/NoLangLinkHandler.php
@@ -33,8 +33,13 @@
* @return string
*/
public static function handle( &$parser ) {
+ $langs = func_get_args();
+
+ // Remove the first member, which is the parser.
+ array_shift( $langs );
+
$handler = self::newFromGlobalState();
- $handler->doHandle( $parser );
+ $handler->doHandle( $parser, $langs );
}
private static function newFromGlobalState() {
@@ -64,8 +69,8 @@
*/
public static function getNoExternalLangLinks( ParserOutput $out ) {
$property = $out->getProperty( 'noexternallanglinks' );
- $nel = is_string( $property ) ? unserialize( $property ) :
array();
- return $nel;
+
+ return is_string( $property ) ? unserialize( $property ) :
array();
}
/**
@@ -87,24 +92,20 @@
* @since 0.5
*
* @param \Parser &$parser
+ * @param string[] $langs
*
* @return string
*/
- public function doHandle( &$parser ) {
-
+ public function doHandle( &$parser, array $langs ) {
if ( !$this->namespaceChecker->isWikibaseEnabled(
$parser->getTitle()->getNamespace() ) ) {
// shorten out
return '';
}
- $langs = func_get_args();
- // Remove the first member, which is the parser.
- array_shift( $langs );
-
$output = $parser->getOutput();
-
$nel = array_merge( self::getNoExternalLangLinks( $output ),
$langs );
- $this->setNoExternalLangLinks( $output, $nel );
+
+ self::setNoExternalLangLinks( $output, $nel );
return '';
}
diff --git a/client/tests/phpunit/includes/Hooks/NoLangLinkHandlerTest.php
b/client/tests/phpunit/includes/Hooks/NoLangLinkHandlerTest.php
index 973fa94..4392e7c 100644
--- a/client/tests/phpunit/includes/Hooks/NoLangLinkHandlerTest.php
+++ b/client/tests/phpunit/includes/Hooks/NoLangLinkHandlerTest.php
@@ -35,13 +35,23 @@
$parser = new Parser();
$parser->startExternalParse( null, new ParserOptions(),
Parser::OT_HTML );
- $handler->doHandle( $parser, 'en', 'fr' );
+ $handler->doHandle( $parser, array( 'en', 'fr' ) );
$actual = NoLangLinkHandler::getNoExternalLangLinks(
$parser->getOutput() );
$this->assertEquals( array( 'en', 'fr' ), $actual );
- $handler->doHandle( $parser, '*', 'zh' );
+ $handler->doHandle( $parser, array( '*', 'zh' ) );
$actual = NoLangLinkHandler::getNoExternalLangLinks(
$parser->getOutput() );
$this->assertEquals( array( 'en', 'fr', '*', 'zh' ), $actual );
}
+ public function testHandle() {
+ $parser = new Parser();
+ $parser->startExternalParse( null, new ParserOptions(),
Parser::OT_HTML );
+
+ NoLangLinkHandler::handle( $parser, '*' );
+ $actual = NoLangLinkHandler::getNoExternalLangLinks(
$parser->getOutput() );
+
+ $this->assertEquals( array( '*' ), $actual );
+ }
+
}
--
To view, visit https://gerrit.wikimedia.org/r/185161
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: If0449594f27d891d6895269ad7d62d137fce4f09
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Aude <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits