diff options
Diffstat (limited to 'modules/system/system.test')
-rw-r--r-- | modules/system/system.test | 17 |
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); + } + } } } } |