Error message

You are browsing documentation for drupal 7.x, which is not supported anymore. Read the updated version of this page for drupal 11.x (the latest version).

function ModuleUnitTest::testModuleList

The basic functionality of module_list().

File

modules/simpletest/tests/module.test, line 33

Class

ModuleUnitTest
Unit tests for the module API.

Code

function testModuleList() {
 // Build a list of modules, sorted alphabetically.
 $profile_info = install_profile_info ('standard', 'en');
 $module_list = $profile_info['dependencies'];
 // Installation profile is a module that is expected to be loaded.
 $module_list[] = 'standard';
 sort ($module_list);
 // Compare this list to the one returned by module_list(). We expect them
 // to match, since all default profile modules have a weight equal to 0
 // (except for block.module, which has a lower weight but comes first in
 // the alphabet anyway).
 $this->assertModuleList ($module_list, t ('Standard profile'));
 // Try to install a new module.
 module_enable (array(
 'contact',
 ));
 $module_list[] = 'contact';
 sort ($module_list);
 $this->assertModuleList ($module_list, t ('After adding a module'));
 // Try to mess with the module weights.
 db_update ('system')->fields (array(
 'weight' => 20,
 ))
 ->condition ('name', 'contact')
 ->condition ('type', 'module')
 ->execute ();
 // Reset the module list.
 module_list (TRUE);
 // Move contact to the end of the array.
 unset($module_list[array_search ('contact', $module_list)]);
 $module_list[] = 'contact';
 $this->assertModuleList ($module_list, t ('After changing weights'));
 // Test the fixed list feature.
 $fixed_list = array(
 'system' => array(
 'filename' => drupal_get_path ('module', 'system'),
 ),
 'menu' => array(
 'filename' => drupal_get_path ('module', 'menu'),
 ),
 );
 module_list (FALSE, FALSE, FALSE, $fixed_list);
 $new_module_list = array_combine (array_keys ($fixed_list), array_keys ($fixed_list));
 $this->assertModuleList ($new_module_list, t ('When using a fixed list'));
 // Reset the module list.
 module_list (TRUE);
 $this->assertModuleList ($module_list, t ('After reset'));
 // Verify that the module_list() returns correct bootstrap modules.
 $bootstrap_module_list = module_list (TRUE, TRUE);
 $expected_bootstrap_modules = db_query ("SELECT name, filename FROM {system} WHERE status = 1 AND bootstrap = 1 AND type = 'module' ORDER BY weight ASC, name ASC")->fetchAllAssoc ('name');
 $expected_bootstrap_module_list = array_combine (array_keys ($expected_bootstrap_modules), array_keys ($expected_bootstrap_modules));
 $this->assertIdentical ($expected_bootstrap_module_list, $bootstrap_module_list, 'module_list() returns correct bootstrap modules.');
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.