Thiemo Mättig (WMDE) has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/165440

Change subject: Workaround for invalid ParserAfterParse hook call
......................................................................

Workaround for invalid ParserAfterParse hook call

Bug: 71772
Change-Id: I70a9542a0f2c25139e4d7d464c93228f27157974
---
M client/includes/hooks/SidebarHookHandlers.php
M client/tests/phpunit/includes/hooks/SidebarHookHandlersTest.php
2 files changed, 20 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/40/165440/1

diff --git a/client/includes/hooks/SidebarHookHandlers.php 
b/client/includes/hooks/SidebarHookHandlers.php
index 95e2b74..94127d0 100644
--- a/client/includes/hooks/SidebarHookHandlers.php
+++ b/client/includes/hooks/SidebarHookHandlers.php
@@ -114,13 +114,13 @@
        /**
         * Static handler for the ParserAfterParse hook.
         *
-        * @param Parser &$parser
-        * @param string &$text
-        * @param StripState $stripState
+        * @param Parser|null &$parser
+        * @param string|null &$text Unused.
+        * @param StripState|null $stripState Unused.
         *
         * @return bool
         */
-       public static function onParserAfterParse( Parser &$parser, &$text, 
StripState $stripState ) {
+       public static function onParserAfterParse( Parser &$parser = null, 
&$text = null, StripState $stripState = null ) {
                // this hook tries to access repo SiteLinkTable
                // it interferes with any test that parses something, like a 
page or a message
                if ( defined( 'MW_PHPUNIT_TEST' ) ) {
@@ -197,13 +197,17 @@
         * Hook runs after internal parsing
         * @see https://www.mediawiki.org/wiki/Manual:Hooks/ParserAfterParse
         *
-        * @param Parser &$parser
-        * @param string &$text
-        * @param StripState $stripState
+        * @param Parser|null &$parser
+        * @param string|null &$text Unused.
+        * @param StripState|null $stripState Unused.
         *
         * @return bool
         */
-       public function doParserAfterParse( Parser &$parser, &$text, StripState 
$stripState ) {
+       public function doParserAfterParse( Parser &$parser = null, &$text = 
null, StripState $stripState = null ) {
+               if ( $parser === null ) {
+                       return true;
+               }
+
                $title = $parser->getTitle();
 
                if ( !$this->namespaceChecker->isWikibaseEnabled( 
$title->getNamespace() ) ) {
diff --git a/client/tests/phpunit/includes/hooks/SidebarHookHandlersTest.php 
b/client/tests/phpunit/includes/hooks/SidebarHookHandlersTest.php
index 71f38b9..43fd22a 100644
--- a/client/tests/phpunit/includes/hooks/SidebarHookHandlersTest.php
+++ b/client/tests/phpunit/includes/hooks/SidebarHookHandlersTest.php
@@ -15,10 +15,10 @@
 use SiteStore;
 use StripState;
 use Title;
-use Wikibase\Client\WikibaseClient;
 use Wikibase\Client\Hooks\LanguageLinkBadgeDisplay;
 use Wikibase\Client\Hooks\OtherProjectsSidebarGenerator;
 use Wikibase\Client\Hooks\SidebarHookHandlers;
+use Wikibase\Client\WikibaseClient;
 use Wikibase\DataModel\Entity\Item;
 use Wikibase\DataModel\Entity\ItemId;
 use Wikibase\DataModel\SiteLink;
@@ -362,6 +362,13 @@
                }
        }
 
+       /**
+        * @see https://bugzilla.wikimedia.org/show_bug.cgi?id=71772
+        */
+       public function testOnParserAfterParse_withoutParameters() {
+               $this->assertTrue( SidebarHookHandlers::onParserAfterParse() );
+       }
+
        public function testDoOutputPageParserOutput() {
                $title = Title::makeTitle( NS_MAIN, 'Oxygen' );
 

-- 
To view, visit https://gerrit.wikimedia.org/r/165440
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I70a9542a0f2c25139e4d7d464c93228f27157974
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Thiemo Mättig (WMDE) <thiemo.maet...@wikimedia.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to