function ModuleDependencyTestCase::testModuleEnableOrder in Drupal 7
Tests that module dependencies are enabled in the correct order via the UI. Dependencies should be enabled before their dependents.
File
- modules/
system/ system.test, line 513 - Tests for system.module.
Class
- ModuleDependencyTestCase
- Test module dependency functionality.
Code
function testModuleEnableOrder() {
module_enable(array(
'module_test',
), FALSE);
$this
->resetAll();
$this
->assertModules(array(
'module_test',
), TRUE);
variable_set('dependency_test', 'dependency');
// module_test creates a dependency chain: forum depends on poll, which
// depends on php. The correct enable order is, php, poll, forum.
$expected_order = array(
'php',
'poll',
'forum',
);
// Enable the modules through the UI, verifying that the dependency chain
// is correct.
$edit = array();
$edit['modules[Core][forum][enable]'] = 'forum';
$this
->drupalPost('admin/modules', $edit, t('Save configuration'));
$this
->assertModules(array(
'forum',
), FALSE);
$this
->assertText(t('You must enable the Poll, PHP filter modules to install Forum.'), t('Dependency chain created.'));
$edit['modules[Core][poll][enable]'] = 'poll';
$edit['modules[Core][php][enable]'] = 'php';
$this
->drupalPost('admin/modules', $edit, t('Save configuration'));
$this
->assertModules(array(
'forum',
'poll',
'php',
), TRUE);
// Check the actual order which is saved by module_test_modules_enabled().
$this
->assertIdentical(variable_get('test_module_enable_order', FALSE), $expected_order, t('Modules enabled in the correct order.'));
}