function ModuleDependencyTestCase::testUninstallDependents in Drupal 7
Tests attempting to uninstall a module that has installed dependents.
File
- modules/
system/ system.test, line 541 - Tests for system.module.
Class
- ModuleDependencyTestCase
- Test module dependency functionality.
Code
function testUninstallDependents() {
// Enable the forum module.
$edit = array(
'modules[Core][forum][enable]' => 'forum',
);
$this
->drupalPost('admin/modules', $edit, t('Save configuration'));
$this
->assertModules(array(
'forum',
), TRUE);
// Disable forum and comment. Both should now be installed but disabled.
$edit = array(
'modules[Core][forum][enable]' => FALSE,
);
$this
->drupalPost('admin/modules', $edit, t('Save configuration'));
$this
->assertModules(array(
'forum',
), FALSE);
$edit = array(
'modules[Core][comment][enable]' => FALSE,
);
$this
->drupalPost('admin/modules', $edit, t('Save configuration'));
$this
->assertModules(array(
'comment',
), FALSE);
// Check that the taxonomy module cannot be uninstalled.
$this
->drupalGet('admin/modules/uninstall');
$checkbox = $this
->xpath('//input[@type="checkbox" and @disabled="disabled" and @name="uninstall[comment]"]');
$this
->assert(count($checkbox) == 1, 'Checkbox for uninstalling the comment module is disabled.');
// Uninstall the forum module, and check that taxonomy now can also be
// uninstalled.
$edit = array(
'uninstall[forum]' => 'forum',
);
$this
->drupalPost('admin/modules/uninstall', $edit, t('Uninstall'));
$this
->drupalPost(NULL, NULL, t('Uninstall'));
$this
->assertText(t('The selected modules have been uninstalled.'), 'Modules status has been updated.');
$edit = array(
'uninstall[comment]' => 'comment',
);
$this
->drupalPost('admin/modules/uninstall', $edit, t('Uninstall'));
$this
->drupalPost(NULL, NULL, t('Uninstall'));
$this
->assertText(t('The selected modules have been uninstalled.'), 'Modules status has been updated.');
}