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