2019-08-26 13:01:09 +00:00
|
|
|
<?php
|
|
|
|
|
2021-01-03 11:12:16 +00:00
|
|
|
use MediaWiki\Extension\AbuseFilter\AbuseFilter;
|
2019-08-26 13:01:09 +00:00
|
|
|
use MediaWiki\Revision\MutableRevisionRecord;
|
|
|
|
use MediaWiki\Revision\RevisionRecord;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @group Test
|
|
|
|
* @group AbuseFilter
|
|
|
|
* @group AbuseFilterGeneric
|
|
|
|
*/
|
|
|
|
class AbuseFilterDBTest extends MediaWikiTestCase {
|
2020-01-08 16:46:24 +00:00
|
|
|
/**
|
|
|
|
* @param RevisionRecord $revRec
|
|
|
|
* @param bool $privileged
|
|
|
|
* @param bool $expected
|
|
|
|
* @dataProvider provideUserCanViewRev
|
|
|
|
* @covers AbuseFilter::userCanViewRev
|
|
|
|
*/
|
|
|
|
public function testUserCanViewRev( RevisionRecord $revRec, bool $privileged, bool $expected ) {
|
|
|
|
$user = $privileged
|
|
|
|
? $this->getTestUser( 'suppress' )->getUser()
|
|
|
|
: $this->getTestUser()->getUser();
|
|
|
|
$this->assertSame( $expected, AbuseFilter::userCanViewRev( $revRec, $user ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return Generator|array
|
|
|
|
*/
|
|
|
|
public function provideUserCanViewRev() {
|
|
|
|
$title = Title::newFromText( __METHOD__ );
|
|
|
|
|
|
|
|
$visible = new MutableRevisionRecord( $title );
|
|
|
|
yield 'Visible, not privileged' => [ $visible, false, true ];
|
|
|
|
yield 'Visible, privileged' => [ $visible, true, true ];
|
|
|
|
|
|
|
|
$userSup = new MutableRevisionRecord( $title );
|
|
|
|
$userSup->setVisibility( RevisionRecord::SUPPRESSED_USER );
|
|
|
|
yield 'User suppressed, not privileged' => [ $userSup, false, false ];
|
|
|
|
yield 'User suppressed, privileged' => [ $userSup, true, true ];
|
|
|
|
|
|
|
|
$allSupp = new MutableRevisionRecord( $title );
|
|
|
|
$allSupp->setVisibility( RevisionRecord::SUPPRESSED_ALL );
|
|
|
|
yield 'All suppressed, not privileged' => [ $allSupp, false, false ];
|
|
|
|
yield 'All suppressed, privileged' => [ $allSupp, true, true ];
|
|
|
|
}
|
2019-08-26 13:01:09 +00:00
|
|
|
}
|