Filter.php in Zircon Profile 8
File
vendor/phpunit/phpunit/src/Util/Filter.php
View source
<?php
class PHPUnit_Util_Filter {
public static function getFilteredStacktrace(Exception $e, $asString = true) {
$prefix = false;
$script = realpath($GLOBALS['_SERVER']['SCRIPT_NAME']);
if (defined('__PHPUNIT_PHAR_ROOT__')) {
$prefix = __PHPUNIT_PHAR_ROOT__;
}
if ($asString === true) {
$filteredStacktrace = '';
}
else {
$filteredStacktrace = array();
}
if ($e instanceof PHPUnit_Framework_SyntheticError) {
$eTrace = $e
->getSyntheticTrace();
$eFile = $e
->getSyntheticFile();
$eLine = $e
->getSyntheticLine();
}
elseif ($e instanceof PHPUnit_Framework_Exception) {
$eTrace = $e
->getSerializableTrace();
$eFile = $e
->getFile();
$eLine = $e
->getLine();
}
else {
if ($e
->getPrevious()) {
$e = $e
->getPrevious();
}
$eTrace = $e
->getTrace();
$eFile = $e
->getFile();
$eLine = $e
->getLine();
}
if (!self::frameExists($eTrace, $eFile, $eLine)) {
array_unshift($eTrace, array(
'file' => $eFile,
'line' => $eLine,
));
}
$blacklist = new PHPUnit_Util_Blacklist();
foreach ($eTrace as $frame) {
if (isset($frame['file']) && is_file($frame['file']) && !$blacklist
->isBlacklisted($frame['file']) && ($prefix === false || strpos($frame['file'], $prefix) !== 0) && $frame['file'] !== $script) {
if ($asString === true) {
$filteredStacktrace .= sprintf("%s:%s\n", $frame['file'], isset($frame['line']) ? $frame['line'] : '?');
}
else {
$filteredStacktrace[] = $frame;
}
}
}
return $filteredStacktrace;
}
private static function frameExists(array $trace, $file, $line) {
foreach ($trace as $frame) {
if (isset($frame['file']) && $frame['file'] == $file && isset($frame['line']) && $frame['line'] == $line) {
return true;
}
}
return false;
}
}