Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F4118394
StandardTestSuiteLoader.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
StandardTestSuiteLoader.php
View Options
<?php
declare
(
strict_types
=
1
);
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace
PHPUnit\Runner
;
use
function
array_diff
;
use
function
array_values
;
use
function
basename
;
use
function
class_exists
;
use
function
get_declared_classes
;
use
function
sprintf
;
use
function
stripos
;
use
function
strlen
;
use
function
substr
;
use
PHPUnit\Framework\TestCase
;
use
PHPUnit\Util\FileLoader
;
use
ReflectionClass
;
use
ReflectionException
;
/**
* @internal This class is not covered by the backward compatibility promise for PHPUnit
*
* @deprecated see https://github.com/sebastianbergmann/phpunit/issues/4039
*/
final
class
StandardTestSuiteLoader
implements
TestSuiteLoader
{
/**
* @throws Exception
*/
public
function
load
(
string
$suiteClassFile
):
ReflectionClass
{
$suiteClassName
=
basename
(
$suiteClassFile
,
'.php'
);
$loadedClasses
=
get_declared_classes
();
if
(!
class_exists
(
$suiteClassName
,
false
))
{
/* @noinspection UnusedFunctionResultInspection */
FileLoader
::
checkAndLoad
(
$suiteClassFile
);
$loadedClasses
=
array_values
(
array_diff
(
get_declared_classes
(),
$loadedClasses
),
);
if
(
empty
(
$loadedClasses
))
{
throw
new
Exception
(
sprintf
(
'Class %s could not be found in %s'
,
$suiteClassName
,
$suiteClassFile
,
),
);
}
}
if
(!
class_exists
(
$suiteClassName
,
false
))
{
$offset
=
0
-
strlen
(
$suiteClassName
);
foreach
(
$loadedClasses
as
$loadedClass
)
{
// @see https://github.com/sebastianbergmann/phpunit/issues/5020
if
(
stripos
(
substr
(
$loadedClass
,
$offset
-
1
),
'
\\
'
.
$suiteClassName
)
===
0
||
stripos
(
substr
(
$loadedClass
,
$offset
-
1
),
'_'
.
$suiteClassName
)
===
0
)
{
$suiteClassName
=
$loadedClass
;
break
;
}
}
}
if
(!
class_exists
(
$suiteClassName
,
false
))
{
throw
new
Exception
(
sprintf
(
'Class %s could not be found in %s'
,
$suiteClassName
,
$suiteClassFile
,
),
);
}
try
{
$class
=
new
ReflectionClass
(
$suiteClassName
);
// @codeCoverageIgnoreStart
}
catch
(
ReflectionException
$e
)
{
throw
new
Exception
(
$e
->
getMessage
(),
$e
->
getCode
(),
$e
,
);
}
// @codeCoverageIgnoreEnd
if
(
$class
->
isSubclassOf
(
TestCase
::
class
))
{
if
(
$class
->
isAbstract
())
{
throw
new
Exception
(
sprintf
(
'Class %s declared in %s is abstract'
,
$suiteClassName
,
$suiteClassFile
,
),
);
}
return
$class
;
}
if
(
$class
->
hasMethod
(
'suite'
))
{
try
{
$method
=
$class
->
getMethod
(
'suite'
);
// @codeCoverageIgnoreStart
}
catch
(
ReflectionException
$e
)
{
throw
new
Exception
(
sprintf
(
'Method %s::suite() declared in %s is abstract'
,
$suiteClassName
,
$suiteClassFile
,
),
);
}
if
(!
$method
->
isPublic
())
{
throw
new
Exception
(
sprintf
(
'Method %s::suite() declared in %s is not public'
,
$suiteClassName
,
$suiteClassFile
,
),
);
}
if
(!
$method
->
isStatic
())
{
throw
new
Exception
(
sprintf
(
'Method %s::suite() declared in %s is not static'
,
$suiteClassName
,
$suiteClassFile
,
),
);
}
}
return
$class
;
}
public
function
reload
(
ReflectionClass
$aClass
):
ReflectionClass
{
return
$aClass
;
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Wed, Aug 19, 02:45 (2 w, 2 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
62/d3/fe659d26c9bcf3d02adc6a8f58b7
Default Alt Text
StandardTestSuiteLoader.php (4 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment