diff -r 07239de796bb -r e756a8c72c3d cms/drupal/modules/simpletest/tests/module_test.module --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/drupal/modules/simpletest/tests/module_test.module Fri Sep 08 12:04:06 2017 +0200 @@ -0,0 +1,142 @@ + t('example perm for module_test module'), + ); +} + +/** + * Implements hook_system_info_alter(). + * + * Manipulate module dependencies to test dependency chains. + */ +function module_test_system_info_alter(&$info, $file, $type) { + if (variable_get('dependency_test', FALSE) == 'missing dependency') { + if ($file->name == 'forum') { + // Make forum module depend on poll. + $info['dependencies'][] = 'poll'; + } + elseif ($file->name == 'poll') { + // Make poll depend on a made-up module. + $info['dependencies'][] = 'foo'; + } + } + elseif (variable_get('dependency_test', FALSE) == 'dependency') { + if ($file->name == 'forum') { + // Make the forum module depend on poll. + $info['dependencies'][] = 'poll'; + } + elseif ($file->name == 'poll') { + // Make poll depend on php module. + $info['dependencies'][] = 'php'; + } + } + elseif (variable_get('dependency_test', FALSE) == 'version dependency') { + if ($file->name == 'forum') { + // Make the forum module depend on poll. + $info['dependencies'][] = 'poll'; + } + elseif ($file->name == 'poll') { + // Make poll depend on a specific version of php module. + $info['dependencies'][] = 'php (1.x)'; + } + elseif ($file->name == 'php') { + // Set php module to a version compatible with the above. + $info['version'] = '7.x-1.0'; + } + } + if ($file->name == 'seven' && $type == 'theme') { + $info['regions']['test_region'] = t('Test region'); + } +} + +/** + * Implements hook_hook_info(). + */ +function module_test_hook_info() { + $hooks['test_hook'] = array( + 'group' => 'file', + ); + return $hooks; +} + +/** + * Implements hook_menu(). + */ +function module_test_menu() { + $items['module-test/hook-dynamic-loading-invoke'] = array( + 'title' => 'Test hook dynamic loading (invoke)', + 'page callback' => 'module_test_hook_dynamic_loading_invoke', + 'access arguments' => array('access content'), + ); + $items['module-test/hook-dynamic-loading-invoke-all'] = array( + 'title' => 'Test hook dynamic loading (invoke_all)', + 'page callback' => 'module_test_hook_dynamic_loading_invoke_all', + 'access arguments' => array('access content'), + ); + return $items; +} + +/** + * Page callback for 'hook dynamic loading' test. + * + * If the hook is dynamically loaded correctly, the menu callback should + * return 'success!'. + */ +function module_test_hook_dynamic_loading_invoke() { + $result = module_invoke('module_test', 'test_hook'); + return $result['module_test']; +} + +/** + * Page callback for 'hook dynamic loading' test. + * + * If the hook is dynamically loaded correctly, the menu callback should + * return 'success!'. + */ +function module_test_hook_dynamic_loading_invoke_all() { + $result = module_invoke_all('test_hook'); + return $result['module_test']; +} + +/** + * Implements hook_modules_enabled(). + */ +function module_test_modules_enabled($modules) { + // Record the ordered list of modules that were passed in to this hook so we + // can check that the modules were enabled in the correct sequence. + variable_set('test_module_enable_order', $modules); +} + +/** + * Implements hook_modules_disabled(). + */ +function module_test_modules_disabled($modules) { + // Record the ordered list of modules that were passed in to this hook so we + // can check that the modules were disabled in the correct sequence. + variable_set('test_module_disable_order', $modules); +} + +/** + * Implements hook_modules_uninstalled(). + */ +function module_test_modules_uninstalled($modules) { + // Record the ordered list of modules that were passed in to this hook so we + // can check that the modules were uninstalled in the correct sequence. + variable_set('test_module_uninstall_order', $modules); +} + +/** + * Implements hook_module_implements_alter() + */ +function module_test_module_implements_alter(&$implementations, $hook) { + if ($hook === 'altered_test_hook') { + // Add a hook implementation, that will be found in + // module_test.implementations.inc. + $implementations['module_test'] = 'implementations'; + } +}