@since Method available since Release 3.4.0
DOMElement $testSuiteNode:
protected function getTestSuite(DOMElement $testSuiteNode, $testSuiteFilter = null) {
if ($testSuiteNode
->hasAttribute('name')) {
$suite = new PHPUnit_Framework_TestSuite((string) $testSuiteNode
->getAttribute('name'));
}
else {
$suite = new PHPUnit_Framework_TestSuite();
}
$exclude = array();
foreach ($testSuiteNode
->getElementsByTagName('exclude') as $excludeNode) {
$exclude[] = (string) $excludeNode->nodeValue;
}
$fileIteratorFacade = new File_Iterator_Facade();
foreach ($testSuiteNode
->getElementsByTagName('directory') as $directoryNode) {
if ($testSuiteFilter && $directoryNode->parentNode
->getAttribute('name') != $testSuiteFilter) {
continue;
}
$directory = (string) $directoryNode->nodeValue;
if (empty($directory)) {
continue;
}
if ($directoryNode
->hasAttribute('phpVersion')) {
$phpVersion = (string) $directoryNode
->getAttribute('phpVersion');
}
else {
$phpVersion = PHP_VERSION;
}
if ($directoryNode
->hasAttribute('phpVersionOperator')) {
$phpVersionOperator = (string) $directoryNode
->getAttribute('phpVersionOperator');
}
else {
$phpVersionOperator = '>=';
}
if (!version_compare(PHP_VERSION, $phpVersion, $phpVersionOperator)) {
continue;
}
if ($directoryNode
->hasAttribute('prefix')) {
$prefix = (string) $directoryNode
->getAttribute('prefix');
}
else {
$prefix = '';
}
if ($directoryNode
->hasAttribute('suffix')) {
$suffix = (string) $directoryNode
->getAttribute('suffix');
}
else {
$suffix = 'Test.php';
}
$files = $fileIteratorFacade
->getFilesAsArray($this
->toAbsolutePath($directory), $suffix, $prefix, $exclude);
$suite
->addTestFiles($files);
}
foreach ($testSuiteNode
->getElementsByTagName('file') as $fileNode) {
if ($testSuiteFilter && $fileNode->parentNode
->getAttribute('name') != $testSuiteFilter) {
continue;
}
$file = (string) $fileNode->nodeValue;
if (empty($file)) {
continue;
}
// Get the absolute path to the file
$file = $fileIteratorFacade
->getFilesAsArray($file);
if (!isset($file[0])) {
continue;
}
$file = $file[0];
if ($fileNode
->hasAttribute('phpVersion')) {
$phpVersion = (string) $fileNode
->getAttribute('phpVersion');
}
else {
$phpVersion = PHP_VERSION;
}
if ($fileNode
->hasAttribute('phpVersionOperator')) {
$phpVersionOperator = (string) $fileNode
->getAttribute('phpVersionOperator');
}
else {
$phpVersionOperator = '>=';
}
if (!version_compare(PHP_VERSION, $phpVersion, $phpVersionOperator)) {
continue;
}
$suite
->addTestFile($file);
}
return $suite;
}