public function TestSubContext::moduleHasDependencyAtKey in Panopoly 8.2
Same name and namespace in other branches
- 7 modules/panopoly/panopoly_test/behat/steps/panopoly_test.behat.inc \TestSubContext::moduleHasDependencyAtKey()
Checks that module has given dependency.
@Given :module has the :dependency dependency at position :key
File
- modules/
panopoly/ panopoly_test/ behat/ steps/ panopoly_test.behat.inc, line 1091 - Provide Behat step-definitions for generic Panopoly tests.
Class
- TestSubContext
- Behat sub-context for Panopoly.
Code
public function moduleHasDependencyAtKey($module, $dependency, $key) {
$module_handler = \Drupal::moduleHandler();
if (!$module_handler
->moduleExists($module)) {
throw new \Exception("{$module} is not enabled.");
}
// Handle namespaced dependencies.
$dependency_extension_name = $dependency;
if (strpos($dependency, ':') !== FALSE) {
[
,
$dependency_extension_name,
] = explode(':', $dependency, 2);
}
if (!$module_handler
->moduleExists($dependency_extension_name)) {
throw new \Exception("{$dependency_extension_name} is not enabled.");
}
$extension = $module_handler
->getModule($module);
$info_parser = \Drupal::service('info_parser');
assert($info_parser instanceof InfoParser);
$info = $info_parser
->parse($extension
->getPathname());
if ($info['dependencies'][$key] !== $dependency) {
var_export($info);
throw new \Exception("{$module} did not have {$dependency} dependency at {$key} position");
}
}