jenkins-bot has submitted this change and it was merged.

Change subject: Use rc_source column for filtering changes in client
......................................................................


Use rc_source column for filtering changes in client

Bug: T44289
Change-Id: I563ccabb52153ca88acc8b2299fabfb9ac0c2fa7
---
M client/includes/Hooks/ChangesListSpecialPageHooksHandler.php
M client/tests/phpunit/includes/Hooks/ChangesListSpecialPageHooksHandlerTest.php
2 files changed, 45 insertions(+), 3 deletions(-)

Approvals:
  Hoo man: Looks good to me, approved
  Daniel Kinzler: Looks good to me, but someone else must approve
  jenkins-bot: Verified



diff --git a/client/includes/Hooks/ChangesListSpecialPageHooksHandler.php 
b/client/includes/Hooks/ChangesListSpecialPageHooksHandler.php
index 73b83f0..8175166 100644
--- a/client/includes/Hooks/ChangesListSpecialPageHooksHandler.php
+++ b/client/includes/Hooks/ChangesListSpecialPageHooksHandler.php
@@ -5,9 +5,12 @@
 use ChangesListSpecialPage;
 use FormOptions;
 use IContextSource;
+use LoadBalancer;
+use LBFactory;
 use RequestContext;
 use User;
 use WebRequest;
+use Wikibase\Client\RecentChanges\RecentChangeFactory;
 use Wikibase\Client\WikibaseClient;
 use Wikimedia\Assert\Assert;
 
@@ -30,6 +33,11 @@
        private $user;
 
        /**
+        * @var LoadBalancer
+        */
+       private $loadBalancer;
+
+       /**
         * @var string
         */
        private $pageName;
@@ -47,17 +55,20 @@
        /**
         * @param WebRequest $request
         * @param User $user
+        * @param LoadBalancer $loadBalancer
         * @param string $pageName
         * @param bool $showExternalChanges
         */
        public function __construct(
                WebRequest $request,
                User $user,
+               LoadBalancer $loadBalancer,
                $pageName,
                $showExternalChanges
        ) {
                $this->request = $request;
                $this->user = $user;
+               $this->loadBalancer = $loadBalancer;
                $this->pageName = $pageName;
                $this->showExternalChanges = $showExternalChanges;
        }
@@ -79,6 +90,7 @@
                return new self(
                        $context->getRequest(),
                        $context->getUser(),
+                       LBFactory::singleton()->getMainLB(),
                        $specialPageName,
                        $settings->getSetting( 'showExternalRecentChanges' )
                );
@@ -184,7 +196,9 @@
                // do not include wikibase changes for activated enhanced 
watchlist
                // since we do not support that format yet
                if ( $this->shouldHideWikibaseChanges( $opts ) ) {
-                       $conds[] = 'rc_type != ' . RC_EXTERNAL;
+                       $dbr = $this->loadBalancer->getConnection( DB_SLAVE );
+                       $conds[] = 'rc_source != ' . $dbr->addQuotes( 
RecentChangeFactory::SRC_WIKIBASE );
+                       $this->loadBalancer->reuseConnection( $dbr );
                }
 
                return $conds;
diff --git 
a/client/tests/phpunit/includes/Hooks/ChangesListSpecialPageHooksHandlerTest.php
 
b/client/tests/phpunit/includes/Hooks/ChangesListSpecialPageHooksHandlerTest.php
index aebaa8c..a32497d 100644
--- 
a/client/tests/phpunit/includes/Hooks/ChangesListSpecialPageHooksHandlerTest.php
+++ 
b/client/tests/phpunit/includes/Hooks/ChangesListSpecialPageHooksHandlerTest.php
@@ -77,6 +77,7 @@
                $hookHandler = new ChangesListSpecialPageHooksHandler(
                        $this->getRequest( array() ),
                        $this->getUser( $userOptions ),
+                       $this->getLoadBalancer(),
                        'Watchlist',
                        true
                );
@@ -98,7 +99,7 @@
                                false
                        ),
                        array(
-                               array( 'rc_type != 5' ),
+                               array( "rc_source != 'wb'" ),
                                array( 'usenewrc' => 0 ),
                                true
                        )
@@ -109,6 +110,7 @@
                $hookHandler = new ChangesListSpecialPageHooksHandler(
                        $this->getRequest( array() ),
                        $this->getUser( array( 'usenewrc' => 1 ) ),
+                       $this->getLoadBalancer(),
                        'Watchlist',
                        true
                );
@@ -118,7 +120,7 @@
                $conds = array();
                $hookHandler->addWikibaseConditions( $conds, $opts );
 
-               $this->assertEquals( array( 'rc_type != 5' ), $conds );
+               $this->assertEquals( array( "rc_source != 'wb'" ), $conds );
        }
 
        /**
@@ -133,6 +135,7 @@
                $hookHandler = new ChangesListSpecialPageHooksHandler(
                        $this->getRequest( $requestParams ),
                        $this->getUser( $userOptions ),
+                       $this->getLoadBalancer(),
                        $pageName,
                        true
                );
@@ -197,6 +200,7 @@
                $hookHandler = new ChangesListSpecialPageHooksHandler(
                        $this->getRequest( $requestParams ),
                        $this->getUser( $userOptions ),
+                       $this->getLoadBalancer(),
                        $specialPageName,
                        true
                );
@@ -274,6 +278,7 @@
                $hookHandler = new ChangesListSpecialPageHooksHandler(
                        $this->getRequest( $requestParams ),
                        $this->getUser( $userOptions ),
+                       $this->getLoadBalancer(),
                        $specialPageName,
                        true
                );
@@ -338,6 +343,7 @@
                $hookHandler = new ChangesListSpecialPageHooksHandler(
                        $this->getRequest( array() ),
                        $this->getUser( array( 'usenewrc' => 0 ) ),
+                       $this->getLoadBalancer(),
                        $specialPageName,
                        false
                );
@@ -380,4 +386,26 @@
                return $user;
        }
 
+       private function getLoadBalancer() {
+               $databaseBase = $this->getMockBuilder( 'IDatabase' )
+                       ->disableOriginalConstructor()
+                       ->getMock();
+
+               $databaseBase->expects( $this->any() )
+                       ->method( 'addQuotes' )
+                       ->will( $this->returnCallback( function( $input ) {
+                               return "'$input'";
+                       } ) );
+
+               $loadBalancer = $this->getMockBuilder( 'LoadBalancer' )
+                       ->disableOriginalConstructor()
+                       ->getMock();
+
+               $loadBalancer->expects( $this->any() )
+                       ->method( 'getConnection' )
+                       ->will( $this->returnValue( $databaseBase ) );
+
+               return $loadBalancer;
+       }
+
 }

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I563ccabb52153ca88acc8b2299fabfb9ac0c2fa7
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Aude <aude.w...@gmail.com>
Gerrit-Reviewer: Aude <aude.w...@gmail.com>
Gerrit-Reviewer: Daniel Kinzler <daniel.kinz...@wikimedia.de>
Gerrit-Reviewer: Hoo man <h...@online.de>
Gerrit-Reviewer: Thiemo Mättig (WMDE) <thiemo.maet...@wikimedia.de>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to