summaryrefslogtreecommitdiff
path: root/modules/simpletest/tests/module_test.module
blob: d3f46e2cbf08e9fcaec6f16eb482ae022b9d033c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<?php
// $Id$

/**
 * Implements hook_permission().
 */
function module_test_permission() {
  return array(
    'module_test perm' => 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';
    }
  }
  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);
}