Issue #1948702 by chx: module_hook() is broken for disabled modules and included hooks.
parent
44eda14f65
commit
6122e84e9e
|
@ -215,10 +215,12 @@ class ModuleHandler implements ModuleHandlerInterface {
|
|||
}
|
||||
|
||||
$name = $name ?: $module;
|
||||
$file = DRUPAL_ROOT . '/' . dirname($this->moduleList[$module]) . "/$name.$type";
|
||||
if (is_file($file)) {
|
||||
require_once $file;
|
||||
return $file;
|
||||
if (isset($this->moduleList[$module])) {
|
||||
$file = DRUPAL_ROOT . '/' . dirname($this->moduleList[$module]) . "/$name.$type";
|
||||
if (is_file($file)) {
|
||||
require_once $file;
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Contains \Drupal\Core\Extension\ModuleHanderUnitTest.
|
||||
*/
|
||||
|
||||
namespace Drupal\Tests\Core\Extension;
|
||||
|
||||
if (!defined('DRUPAL_ROOT')) {
|
||||
define('DRUPAL_ROOT', dirname(dirname(substr(__DIR__, 0, -strlen(__NAMESPACE__)))));
|
||||
}
|
||||
|
||||
use Drupal\Core\Extension\ModuleHandler;
|
||||
use Drupal\Tests\UnitTestCase;
|
||||
|
||||
/**
|
||||
* Tests the ModuleHandler class.
|
||||
*
|
||||
* @group System
|
||||
*/
|
||||
class ModuleHandlerUnitTest extends UnitTestCase {
|
||||
|
||||
public static function getInfo() {
|
||||
return array(
|
||||
'name' => 'ModuleHandler functionality',
|
||||
'description' => 'Tests the ModuleHandler class.',
|
||||
'group' => 'System',
|
||||
);
|
||||
}
|
||||
|
||||
function setUp() {
|
||||
parent::setUp();
|
||||
$this->moduleHandler = new ModuleHandler;
|
||||
}
|
||||
|
||||
function testloadInclude() {
|
||||
// Make sure that load include does not throw notices on nonexisiting
|
||||
// modules.
|
||||
$this->moduleHandler->loadInclude('foo', 'inc');
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue