mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/AbuseFilter.git
synced 2024-09-24 10:48:17 +00:00
Remove a remaining use of Revision objects
Remove use of Title::getFirstRevision and Revision::getUserText Bug: T249393 Bug: T250579 Change-Id: I0f77b124a0c7de1dec6baf4c997e0997ecdd55f8
This commit is contained in:
parent
d49d44681f
commit
1b65bd1862
|
@ -378,9 +378,10 @@ class AFComputedVariable {
|
|||
case 'load-first-author':
|
||||
$title = $this->buildTitle( $parameters['namespace'], $parameters['title'] );
|
||||
|
||||
$revision = $title->getFirstRevision();
|
||||
$revision = $services->getRevisionLookup()->getFirstRevision( $title );
|
||||
if ( $revision ) {
|
||||
$result = $revision->getUserText();
|
||||
$user = $revision->getUser();
|
||||
$result = $user === null ? '' : $user->getName();
|
||||
} else {
|
||||
$result = '';
|
||||
}
|
||||
|
|
|
@ -2,8 +2,10 @@
|
|||
|
||||
use MediaWiki\Extension\AbuseFilter\VariableGenerator\VariableGenerator;
|
||||
use MediaWiki\Revision\MutableRevisionRecord;
|
||||
use MediaWiki\Revision\RevisionLookup;
|
||||
use MediaWiki\Revision\RevisionRecord;
|
||||
use MediaWiki\Revision\SlotRecord;
|
||||
use MediaWiki\User\UserIdentityValue;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
|
||||
/**
|
||||
|
@ -465,6 +467,49 @@ class AbuseFilterDBTest extends MediaWikiTestCase {
|
|||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for the page_first_contributor variable.
|
||||
*
|
||||
* @covers AbuseFilter::generateGenericVars
|
||||
* @covers AFComputedVariable::compute
|
||||
*/
|
||||
public function testFirstContributorVar() {
|
||||
$username = 'foobar';
|
||||
|
||||
$fakeUser = $this->getMockBuilder( UserIdentityValue::class )
|
||||
->disableOriginalConstructor()
|
||||
->setMethods( [ 'getName' ] )
|
||||
->getMock();
|
||||
$fakeUser->method( 'getName' )->willReturn( $username );
|
||||
|
||||
$fakeRevRecord = $this->getMockBuilder( RevisionRecord::class )
|
||||
->disableOriginalConstructor()
|
||||
->setMethods( [ 'getUser' ] )
|
||||
->getMockForAbstractClass();
|
||||
$fakeRevRecord->method( 'getUser' )->willReturn( $fakeUser );
|
||||
|
||||
$fakeRevLookup = $this->getMockBuilder( RevisionLookup::class )
|
||||
->setMethods( [ 'getFirstRevision' ] )
|
||||
->getMockForAbstractClass();
|
||||
$fakeRevLookup->method( 'getFirstRevision' )->willReturn( $fakeRevRecord );
|
||||
|
||||
$this->setService( 'RevisionLookup', $fakeRevLookup );
|
||||
|
||||
$vars = new AbuseFilterVariableHolder();
|
||||
$vars->setLazyLoadVar(
|
||||
'page_first_contributor',
|
||||
'load-first-author',
|
||||
[
|
||||
'namespace' => 0,
|
||||
'title' => 'pageName',
|
||||
]
|
||||
);
|
||||
$this->assertSame(
|
||||
$username,
|
||||
$vars->getVar( 'page_first_contributor' )->toNative()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for the wiki_name variable.
|
||||
*
|
||||
|
|
|
@ -197,17 +197,7 @@ class AbuseFilterTest extends MediaWikiUnitTestCase {
|
|||
$title = $this->getTitleWithMockedMethod( 'getRestrictions', $result );
|
||||
break;
|
||||
// case '_recent_contributors' handled in AbuseFilterDBTest
|
||||
case '_first_contributor':
|
||||
$result = 'Fake username';
|
||||
$revision = $this->getMockBuilder( Revision::class )
|
||||
->disableOriginalConstructor()
|
||||
->setMethods( [ 'getUserText' ] )
|
||||
->getMock();
|
||||
$revision->expects( $this->atLeastOnce() )
|
||||
->method( 'getUserText' )
|
||||
->willReturn( $result );
|
||||
$title = $this->getTitleWithMockedMethod( 'getFirstRevision', $revision );
|
||||
break;
|
||||
// case '_first_contributor' is handled in AbuseFilterDBTest
|
||||
case '_age':
|
||||
$result = 123;
|
||||
MWTimestamp::setFakeTime( self::FAKE_TIME );
|
||||
|
@ -274,7 +264,6 @@ class AbuseFilterTest extends MediaWikiUnitTestCase {
|
|||
'_restrictions_edit',
|
||||
'_restrictions_move',
|
||||
'_restrictions_upload',
|
||||
'_first_contributor',
|
||||
'_age'
|
||||
];
|
||||
foreach ( $prefixes as $prefix ) {
|
||||
|
|
Loading…
Reference in a new issue