From fb125851a3cc5aa494ee315a5d7d129e2995a81f Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Wed, 1 Jul 2009 08:39:56 +0000 Subject: - Patch #306027 by agentrickard, catch, dereine, Dave Reid, drewish, et al: automatically clean the {role_permission} table when modules are uninstalled. --- modules/simpletest/tests/module.test | 30 +++++++++++++++++++++++++++++ modules/simpletest/tests/module_test.info | 8 ++++++++ modules/simpletest/tests/module_test.module | 11 +++++++++++ 3 files changed, 49 insertions(+) create mode 100644 modules/simpletest/tests/module_test.info create mode 100644 modules/simpletest/tests/module_test.module (limited to 'modules/simpletest') diff --git a/modules/simpletest/tests/module.test b/modules/simpletest/tests/module.test index 9d3673673..da12b5504 100644 --- a/modules/simpletest/tests/module.test +++ b/modules/simpletest/tests/module.test @@ -77,3 +77,33 @@ class ModuleUnitTest extends DrupalWebTestCase { $this->assertIdentical($expected_values, module_list(FALSE, TRUE), t('@condition: module_list() returns correctly sorted results', array('@condition' => $condition))); } } + +/** + * Unit tests for module uninstallation and related hooks. + */ +class ModuleUninstallTestCase extends DrupalWebTestCase { + public static function getInfo() { + return array( + 'name' => t('Module uninstallation'), + 'description' => t('Checks module uninstallation'), + 'group' => t('Module'), + ); + } + + function setUp() { + parent::setUp('module_test', 'user'); + } + + /** + * Tests the hook_modules_uninstalled() of the user module. + */ + function testUserPermsUninstalled() { + // Uninstalls the module_test module, so hook_modules_uninstalled() + // is executed. + drupal_uninstall_modules(array('module_test')); + + // Are the perms defined by module_test removed from {role_permission}. + $count = db_query("SELECT COUNT(rid) FROM {role_permission} WHERE permission = :perm", array(':perm' => 'module_test perm'))->fetchField(); + $this->assertEqual(0, $count, t('Permissions were all removed.')); + } +} diff --git a/modules/simpletest/tests/module_test.info b/modules/simpletest/tests/module_test.info new file mode 100644 index 000000000..09a2afa67 --- /dev/null +++ b/modules/simpletest/tests/module_test.info @@ -0,0 +1,8 @@ +; $Id$ +name = "Module test" +description = "Support module for module system testing." +package = Testing +version = VERSION +core = 7.x +files[] = module_test.module +hidden = TRUE diff --git a/modules/simpletest/tests/module_test.module b/modules/simpletest/tests/module_test.module new file mode 100644 index 000000000..33dd979c1 --- /dev/null +++ b/modules/simpletest/tests/module_test.module @@ -0,0 +1,11 @@ + t('example perm for module_test module'), + ); +} -- cgit v1.2.3