Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F2750896
SpecialPageFatalTest.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
SpecialPageFatalTest.php
View Options
<?php
use
MediaWiki\MediaWikiServices
;
use
MediaWiki\Permissions\UltimateAuthority
;
use
MediaWiki\User\UserIdentityValue
;
/**
* Test that runs against all registered special pages to make sure that regular
* execution of the special page does not cause a fatal error.
*
* UltimateAuthority is used to run as much of the special page code as possible without
* actually knowing the details of the special page.
*
* @since 1.32
* @author Addshore
* @coversNothing
* @group Database
*/
class
SpecialPageFatalTest
extends
MediaWikiIntegrationTestCase
{
protected
function
setUp
():
void
{
parent
::
setUp
();
// Deprecations don't matter for what this test cares about. This made browser tests fail
// on many occasions already. (T236809)
$this
->
filterDeprecated
(
'//'
);
}
public
static
function
provideSpecialPageDoesNotFatal
()
{
$spf
=
MediaWikiServices
::
getInstance
()->
getSpecialPageFactory
();
foreach
(
$spf
->
getNames
()
as
$name
)
{
yield
$name
=>
[
$name
];
}
}
/**
* @dataProvider provideSpecialPageDoesNotFatal
*/
public
function
testSpecialPageDoesNotFatal
(
string
$name
)
{
$spf
=
$this
->
getServiceContainer
()->
getSpecialPageFactory
();
$page
=
$spf
->
getPage
(
$name
);
if
(
!
$page
)
{
$this
->
markTestSkipped
(
"Could not create special page $name"
);
}
$executor
=
new
SpecialPageExecutor
();
$authority
=
new
UltimateAuthority
(
new
UserIdentityValue
(
42
,
'SpecialPageTester'
)
);
try
{
$executor
->
executeSpecialPage
(
$page
,
''
,
null
,
'qqx'
,
$authority
);
}
catch
(
\PHPUnit\Framework\Error\Error
$error
)
{
// Let phpunit settings working:
// - convertDeprecationsToExceptions="true"
// - convertErrorsToExceptions="true"
// - convertNoticesToExceptions="true"
// - convertWarningsToExceptions="true"
throw
$error
;
}
catch
(
Exception
$e
)
{
// Other exceptions are allowed
}
// If the page fataled phpunit will have already died
$this
->
addToAssertionCount
(
1
);
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Fri, Jul 3, 17:22 (11 h, 2 m)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
72/8b/eff5a412da7c19a4769bb0befd4d
Default Alt Text
SpecialPageFatalTest.php (1 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment