private function Tests::extractModules in Drupal 7 to 8/9 Module Upgrader 8
Extracts every module required by a web test by scanning its calls to parent::setUp().
Parameters
\Pharborist\Objects\ClassNode $test:
Return value
string[] Array of modules set up by this module.
1 call to Tests::extractModules()
- Tests::setModules in src/
Plugin/ DMU/ Converter/ Tests.php - Sets the test's $modules property.
File
- src/
Plugin/ DMU/ Converter/ Tests.php, line 150
Class
- Tests
- Plugin annotation @Converter( id = "tests", description = @Translation("Modifies test classes.") )
Namespace
Drupal\drupalmoduleupgrader\Plugin\DMU\ConverterCode
private function extractModules(ClassNode $test) {
$modules = [];
$test
->find(Filter::isClassMethodCall('parent', 'setUp'))
->filter(function (ClassMethodCallNode $call) {
return sizeof($call
->getArguments()) > 0;
})
->each(function (ClassMethodCallNode $call) use (&$modules) {
foreach ($call
->getArguments() as $argument) {
if ($argument instanceof StringNode) {
$modules[] = $argument
->toValue();
}
}
$call
->clearArguments();
});
return array_unique($modules);
}