Index: modules/simpletest/tests/module/module_a_test.info
===================================================================
RCS file: modules/simpletest/tests/module/module_a_test.info
diff -N modules/simpletest/tests/module/module_a_test.info
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/simpletest/tests/module/module_a_test.info	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,8 @@
+; $Id$
+name = "Module Test A"
+description = "Support module for module.inc tests."
+core = 7.x
+package = Testing
+files[] = module_a_test.module
+version = VERSION
+hidden = TRUE
Index: modules/simpletest/tests/module/module_d_test.info
===================================================================
RCS file: modules/simpletest/tests/module/module_d_test.info
diff -N modules/simpletest/tests/module/module_d_test.info
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/simpletest/tests/module/module_d_test.info	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,9 @@
+; $Id$
+name = "Module Test D"
+description = "Support module for module.inc tests."
+core = 7.x
+dependencies[] = module_b_test
+package = Testing
+files[] = module_d_test.module
+version = VERSION
+hidden = TRUE
Index: modules/simpletest/tests/module/module_b_test.module
===================================================================
RCS file: modules/simpletest/tests/module/module_b_test.module
diff -N modules/simpletest/tests/module/module_b_test.module
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/simpletest/tests/module/module_b_test.module	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,5 @@
+<?php
+
+function module_b_test_function_1() {
+  return TRUE;
+}
Index: modules/simpletest/tests/module.test
===================================================================
RCS file: modules/simpletest/tests/module.test
diff -N modules/simpletest/tests/module.test
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/simpletest/tests/module.test	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,72 @@
+<?php
+
+// $Id$
+
+/**
+ * @file
+ * Provides SimpleTests for module.inc.
+ */
+
+class ModuleIncTestCase extends DrupalWebTestCase {
+  /**
+   * Implementation of getInfo().
+   */
+  function getInfo() {
+    return array(
+      'name' => t('Module Tests'),
+      'description' => t('Test module.inc API.'),
+      'group' => t('Module'),
+    );
+  }
+
+  /**
+   * Implementation of setUp().
+   */
+  function setUp() {
+    // Enable dummy module.
+    parent::setUp('module_a_test');
+  }
+  
+  /**
+   * Checks the module enabled status.
+   *
+   * @param string $module
+   * @return boolean
+   *   Indicates the enabled status of the given module. 
+   */
+  function moduleIsEnabled( $module) {
+    $existing = db_fetch_object(db_query("SELECT status FROM {system} WHERE type = '%s' AND name = '%s'", 'module', $module));
+    return is_object($existing) && !($existing->status == 0);
+  }
+  
+  /**
+   * Test for a working module_enable.
+   *
+   * This is for testing that the normal setup is functional. We intend to 
+   * refactor module.inc so here we make sure it's still in op. This is of
+   * course not the case... breaking module.inc while render the whole test infra
+   * useless. Anyway this test should be here.
+   */
+  function testModuleAIsEnabled() {
+    $this->assertTrue($this->moduleIsEnabled('module_a_test'), 'module_a_test is enabled by setup.');
+  }
+
+  /**
+   * Test module enabling.
+   * 
+   * Module B is dependent on module A.
+   * 
+   * As module A is enabled through setup we test for module B status and disable A then.
+   */
+  function testDependingModule() {
+    $this->assertTrue($this->moduleIsEnabled('module_a_test'), 'module_a_test is enabled by setup.');
+    $this->assertFalse($this->moduleIsEnabled('module_b_test'), 'module_b_test is disabled before enabling.');
+    module_enable( array('module_b_test'));
+    $this->assertTrue($this->moduleIsEnabled('module_b_test'), 'module_b_test is enabled.');
+    
+    /* this test fails ... patch follows @see drush_mm.module
+    module_disable(array('module_a_test'));
+    $this->assertTrue($this->moduleIsEnabled('module_b_test'), 'Disabling module_a_test leads due to a dependency to disabling module_b_test.');
+    */
+  }
+}
Index: modules/simpletest/tests/module/module_c_test.info
===================================================================
RCS file: modules/simpletest/tests/module/module_c_test.info
diff -N modules/simpletest/tests/module/module_c_test.info
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/simpletest/tests/module/module_c_test.info	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,9 @@
+; $Id$
+name = "Module Test C"
+description = "Support module for module.inc tests."
+core = 7.x
+dependencies[] = module_b_test
+package = Testing
+files[] = module_c_test.module
+version = VERSION
+hidden = TRUE
Index: modules/simpletest/tests/module/module_a_test.module
===================================================================
RCS file: modules/simpletest/tests/module/module_a_test.module
diff -N modules/simpletest/tests/module/module_a_test.module
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/simpletest/tests/module/module_a_test.module	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,5 @@
+<?php
+
+function module_a_test_function_1() {
+  return TRUE;
+}
Index: modules/simpletest/tests/module/module_d_test.module
===================================================================
RCS file: modules/simpletest/tests/module/module_d_test.module
diff -N modules/simpletest/tests/module/module_d_test.module
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/simpletest/tests/module/module_d_test.module	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,5 @@
+<?php
+
+function module_d_test_function_1() {
+  return TRUE;
+}
Index: modules/simpletest/tests/module/module_c_test.module
===================================================================
RCS file: modules/simpletest/tests/module/module_c_test.module
diff -N modules/simpletest/tests/module/module_c_test.module
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/simpletest/tests/module/module_c_test.module	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,5 @@
+<?php
+
+function module_c_test_function_1() {
+  return TRUE;
+}
Index: modules/simpletest/tests/module/module_b_test.info
===================================================================
RCS file: modules/simpletest/tests/module/module_b_test.info
diff -N modules/simpletest/tests/module/module_b_test.info
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/simpletest/tests/module/module_b_test.info	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,9 @@
+; $Id$
+name = "Module Test B"
+description = "Support module for module.inc tests."
+core = 7.x
+dependencies[] = module_a_test
+package = Testing
+files[] = module_b_test.module
+version = VERSION
+hidden = TRUE
