summaryrefslogtreecommitdiff
path: root/modules/system/system.test
diff options
context:
space:
mode:
Diffstat (limited to 'modules/system/system.test')
-rw-r--r--modules/system/system.test17
1 files changed, 13 insertions, 4 deletions
diff --git a/modules/system/system.test b/modules/system/system.test
index c3aced017..f1a4407a7 100644
--- a/modules/system/system.test
+++ b/modules/system/system.test
@@ -364,11 +364,20 @@ class ModuleRequiredTestCase extends ModuleTestCase {
* Assert that core required modules cannot be disabled.
*/
function testDisableRequired() {
- $required_modules = drupal_required_modules();
+ $module_info = system_get_info('module');
$this->drupalGet('admin/modules');
- foreach ($required_modules as $module) {
- // Check to make sure the checkbox for required module is not found.
- $this->assertNoFieldByName('modules[Core][' . $module . '][enable]');
+ foreach ($module_info as $module => $info) {
+ // Check to make sure the checkbox for each required module is disabled
+ // and checked (or absent from the page if the module is also hidden).
+ if (!empty($info['required'])) {
+ $field_name = "modules[{$info['package']}][$module][enable]";
+ if (empty($info['hidden'])) {
+ $this->assertFieldByXPath("//input[@name='$field_name' and @disabled='disabled' and @checked='checked']", '', t('Field @name was disabled and checked.', array('@name' => $field_name)));
+ }
+ else {
+ $this->assertNoFieldByName($field_name);
+ }
+ }
}
}
}