Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F4093374
GetFilterEvaluatorTestTrait.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
GetFilterEvaluatorTestTrait.php
View Options
<?php
namespace
MediaWiki\Extension\AbuseFilter\Tests\Unit
;
use
LanguageEn
;
use
MediaWiki\Extension\AbuseFilter\Hooks\AbuseFilterHookRunner
;
use
MediaWiki\Extension\AbuseFilter\KeywordsManager
;
use
MediaWiki\Extension\AbuseFilter\Parser\FilterEvaluator
;
use
MediaWiki\Extension\AbuseFilter\Variables\LazyVariableComputer
;
use
MediaWiki\Extension\AbuseFilter\Variables\VariablesManager
;
use
MediaWiki\Language\Language
;
use
PHPUnit\Framework\MockObject\MockObject
;
use
Psr\Log\LoggerInterface
;
use
Psr\Log\NullLogger
;
use
Wikimedia\Equivset\Equivset
;
use
Wikimedia\ObjectCache\EmptyBagOStuff
;
use
Wikimedia\Stats\NullStatsdDataFactory
;
/**
* Trait used to get an instance of the {@link FilterEvaluator} class which can be used in unit tests.
*/
trait
GetFilterEvaluatorTestTrait
{
/**
* Gets an instance of the {@link FilterEvaluator} class which can be used in unit tests.
*
* @param LoggerInterface|null $logger
* @return FilterEvaluator
*/
protected
function
getFilterEvaluator
(
?
LoggerInterface
$logger
=
null
):
FilterEvaluator
{
// We're not interested in caching or logging; tests should call respectively setCache
// and setLogger if they want to test any of those.
$keywordsManager
=
new
KeywordsManager
(
$this
->
createMock
(
AbuseFilterHookRunner
::
class
)
);
$varManager
=
new
VariablesManager
(
$keywordsManager
,
$this
->
createMock
(
LazyVariableComputer
::
class
)
);
$equivset
=
$this
->
createMock
(
Equivset
::
class
);
$equivset
->
method
(
'normalize'
)->
willReturnArgument
(
0
);
$evaluator
=
new
FilterEvaluator
(
$this
->
getLanguageMock
(),
new
EmptyBagOStuff
(),
$logger
??
new
NullLogger
(),
$keywordsManager
,
$varManager
,
new
NullStatsdDataFactory
(),
$equivset
,
1000
);
$evaluator
->
toggleConditionLimit
(
false
);
return
$evaluator
;
}
/**
* Get a mock of LanguageEn with only the methods we need in the FilterEvaluator
*
* @return Language|MockObject
*/
private
function
getLanguageMock
()
{
$lang
=
$this
->
createMock
(
LanguageEn
::
class
);
$lang
->
method
(
'uc'
)
->
willReturnCallback
(
static
function
(
$x
)
{
return
mb_strtoupper
(
$x
);
}
);
$lang
->
method
(
'lc'
)
->
willReturnCallback
(
static
function
(
$x
)
{
return
mb_strtolower
(
$x
);
}
);
return
$lang
;
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Aug 18 2026, 12:46 (4 w, 3 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
2d/bd/28f7662bdbeffd2e9138561ae3c9
Default Alt Text
GetFilterEvaluatorTestTrait.php (2 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment