Issue #1948702 by chx: module_hook() is broken for disabled modules and included hooks.

8.0.x
Dries 2013-03-22 13:03:24 -04:00
parent 44eda14f65
commit 6122e84e9e
2 changed files with 48 additions and 4 deletions

View File

@ -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;

View File

@ -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');
}
}