1
|
<?php
|
2
|
|
3
|
/**
|
4
|
* Perform early bootstrap tests.
|
5
|
*/
|
6
|
class EarlyBootstrapTestCase extends DrupalWebTestCase {
|
7
|
public static function getInfo() {
|
8
|
return array(
|
9
|
'name' => 'Early bootstrap test',
|
10
|
'description' => 'Confirm that calling module_implements() during early bootstrap does not pollute the module_implements() cache.',
|
11
|
'group' => 'System',
|
12
|
);
|
13
|
}
|
14
|
|
15
|
function setUp() {
|
16
|
parent::setUp('boot_test_1', 'boot_test_2');
|
17
|
}
|
18
|
|
19
|
/**
|
20
|
* Test hook_boot() on both regular and "early exit" pages.
|
21
|
*/
|
22
|
public function testHookBoot() {
|
23
|
$paths = array('', 'early_exit');
|
24
|
foreach ($paths as $path) {
|
25
|
// Empty the module_implements() caches.
|
26
|
module_implements(NULL, FALSE, TRUE);
|
27
|
// Do a request to the front page, which will call module_implements()
|
28
|
// during hook_boot().
|
29
|
$this->drupalGet($path);
|
30
|
// Reset the static cache so we get implementation data from the persistent
|
31
|
// cache.
|
32
|
drupal_static_reset();
|
33
|
// Make sure we get a full list of all modules implementing hook_help().
|
34
|
$modules = module_implements('help');
|
35
|
$this->assertTrue(in_array('boot_test_2', $modules));
|
36
|
}
|
37
|
}
|
38
|
}
|