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

Reply via email to