summaryrefslogtreecommitdiff
path: root/modules/system/system.test
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2009-01-14 12:18:37 +0000
committerDries Buytaert <dries@buytaert.net>2009-01-14 12:18:37 +0000
commita10731cedf6acb9acabaed2ad3c8fe6ce4816ae9 (patch)
tree24709e6694cdbe5046776bc1c920298cbabc0b50 /modules/system/system.test
parentdba81743a6e1e8178801f11ead577978581b74ca (diff)
downloadbrdo-a10731cedf6acb9acabaed2ad3c8fe6ce4816ae9.tar.gz
brdo-a10731cedf6acb9acabaed2ad3c8fe6ce4816ae9.tar.bz2
- Patch #320451 by chx, Damien Tournoud: improved Drupal's module dependency system. This helps with fields in core. Comes with tests\!
Diffstat (limited to 'modules/system/system.test')
-rw-r--r--modules/system/system.test128
1 files changed, 80 insertions, 48 deletions
diff --git a/modules/system/system.test b/modules/system/system.test
index d9577f669..f2a684514 100644
--- a/modules/system/system.test
+++ b/modules/system/system.test
@@ -1,28 +1,69 @@
<?php
// $Id$
-class EnableDisableCoreTestCase extends DrupalWebTestCase {
+/**
+ * Helper class for module test cases.
+ */
+class ModuleTestCase extends DrupalWebTestCase {
protected $admin_user;
+ function setUp() {
+ parent::setUp('system_test');
+
+ $this->admin_user = $this->drupalCreateUser(array('access administration pages', 'administer site configuration'));
+ $this->drupalLogin($this->admin_user);
+ }
+
/**
- * Implementation of getInfo().
+ * Assert there are tables that begin with the specified base table name.
+ *
+ * @param $base_table
+ * Beginning of table name to look for.
+ * @param $count
+ * (optional) Whether or not to assert that there are tables that match the
+ * specified base table. Defaults to TRUE.
*/
- function getInfo() {
- return array(
- 'name' => t('Module list functionality'),
- 'description' => t('Enable/disable core module and confirm table creation/deletion. Enable module without dependency enabled. Attempt disabling of required modules.'),
- 'group' => t('System')
- );
+ function assertTableCount($base_table, $count = TRUE) {
+ $tables = db_find_tables(Database::getActiveConnection()->prefixTables('{' . $base_table . '}') . '%');
+
+ if ($count) {
+ return $this->assertTrue($tables, t('Tables matching "@base_table" found.', array('@base_table' => $base_table)));
+ }
+ return $this->assertFalse($tables, t('Tables matching "@base_table" not found.', array('@base_table' => $base_table)));
}
/**
- * Implementation of setUp().
+ * Assert the list of modules are enabled or disabled.
+ *
+ * @param $modules
+ * Module list to check.
+ * @param $enabled
+ * Expected module state.
*/
- function setUp() {
- parent::setUp('system_test');
+ function assertModules(array $modules, $enabled) {
+ module_list(TRUE);
+ foreach ($modules as $module) {
+ if ($enabled) {
+ $message = 'Module "@module" is enabled.';
+ }
+ else {
+ $message = 'Module "@module" is not enabled.';
+ }
+ $this->assertEqual(module_exists($module), $enabled, t($message, array('@module' => $module)));
+ }
+ }
+}
- $this->admin_user = $this->drupalCreateUser(array('access administration pages', 'administer site configuration'));
- $this->drupalLogin($this->admin_user);
+/**
+ * Test module enabling/disabling functionality.
+ */
+class EnableDisableTestCase extends ModuleTestCase {
+ function getInfo() {
+ return array(
+ 'name' => t('Enable/disable modules'),
+ 'description' => t('Enable/disable core module and confirm table creation/deletion.'),
+ 'group' => t('Module'),
+ );
}
/**
@@ -71,6 +112,19 @@ class EnableDisableCoreTestCase extends DrupalWebTestCase {
$this->assertModules(array('aggregator'), FALSE);
$this->assertTableCount('aggregator', FALSE);
}
+}
+
+/**
+ * Test module dependency functionality.
+ */
+class ModuleDependencyTestCase extends ModuleTestCase {
+ function getInfo() {
+ return array(
+ 'name' => t('Module dependencies'),
+ 'description' => t('Enable module without dependency enabled.'),
+ 'group' => t('Module'),
+ );
+ }
/**
* Attempt to enable translation module without locale enabled.
@@ -97,6 +151,19 @@ class EnableDisableCoreTestCase extends DrupalWebTestCase {
$this->assertTableCount('languages', TRUE);
$this->assertTableCount('locale', TRUE);
}
+}
+
+/**
+ * Test required modules functionality.
+ */
+class ModuleRequiredTestCase extends ModuleTestCase {
+ function getInfo() {
+ return array(
+ 'name' => t('Required modules'),
+ 'description' => t('Attempt disabling of required modules.'),
+ 'group' => t('Module'),
+ );
+ }
/**
* Assert that core required modules cannot be disabled.
@@ -109,41 +176,6 @@ class EnableDisableCoreTestCase extends DrupalWebTestCase {
$this->assertNoFieldByName('modules[Core][' . $module . '][enable]');
}
}
-
- /**
- * Assert tables that begin with the specified base table name.
- *
- * @param string $base_table Beginning of table name to look for.
- * @param boolean $count Assert tables that match specified base table.
- * @return boolean Tables with specified base table.
- */
- function assertTableCount($base_table, $count) {
- $tables = db_find_tables(Database::getActiveConnection()->prefixTables('{' . $base_table . '}') . '%');
-
- if ($count) {
- return $this->assertTrue($tables, t('Tables matching "@base_table" found.', array('@base_table' => $base_table)));
- }
- return $this->assertFalse($tables, t('Tables matching "@base_table" not found.', array('@base_table' => $base_table)));
- }
-
- /**
- * Assert the list of modules are enabled or disabled.
- *
- * @param array $modules Modules to check.
- * @param boolean $enabled Module state.
- */
- function assertModules(array $modules, $enabled) {
- module_list(TRUE);
- foreach ($modules as $module) {
- if ($enabled) {
- $message = 'Module "@module" is enabled.';
- }
- else {
- $message = 'Module "@module" is not enabled.';
- }
- $this->assertEqual(module_exists($module), $enabled, t($message, array('@module' => $module)));
- }
- }
}
class IPAddressBlockingTestCase extends DrupalWebTestCase {