summaryrefslogtreecommitdiff
path: root/modules/simpletest
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2010-05-26 07:31:47 +0000
committerDries Buytaert <dries@buytaert.net>2010-05-26 07:31:47 +0000
commit7d0f0aed7d28123065f0e7c180427ef1e544f5db (patch)
tree9a60089f6be3c6363e7db3327f75db45b3ddf21d /modules/simpletest
parentfe0c128c71dc912250947bf90f6225357330c1c3 (diff)
downloadbrdo-7d0f0aed7d28123065f0e7c180427ef1e544f5db.tar.gz
brdo-7d0f0aed7d28123065f0e7c180427ef1e544f5db.tar.bz2
- Patch #592800 by cpliakas, Berdir, aufumy: critical bug: dependent modules are still installed when required modules return errors in hook_requirements().
Diffstat (limited to 'modules/simpletest')
-rw-r--r--modules/simpletest/tests/requirements1_test.info9
-rw-r--r--modules/simpletest/tests/requirements1_test.install22
-rw-r--r--modules/simpletest/tests/requirements1_test.module8
-rw-r--r--modules/simpletest/tests/requirements2_test.info10
-rw-r--r--modules/simpletest/tests/requirements2_test.module8
-rw-r--r--modules/simpletest/tests/system_test.module3
6 files changed, 60 insertions, 0 deletions
diff --git a/modules/simpletest/tests/requirements1_test.info b/modules/simpletest/tests/requirements1_test.info
new file mode 100644
index 000000000..6b075dfdf
--- /dev/null
+++ b/modules/simpletest/tests/requirements1_test.info
@@ -0,0 +1,9 @@
+; $Id$
+name = Requirements 1 Test
+description = "Tests that a module is not installed when it fails hook_requirements('install')."
+package = Core
+version = VERSION
+core = 7.x
+files[] = requirements1_test.install
+files[] = requirements1_test.module
+hidden = TRUE
diff --git a/modules/simpletest/tests/requirements1_test.install b/modules/simpletest/tests/requirements1_test.install
new file mode 100644
index 000000000..28b7fb666
--- /dev/null
+++ b/modules/simpletest/tests/requirements1_test.install
@@ -0,0 +1,22 @@
+<?php
+// $Id$
+
+/**
+ * Implements hook_requirements().
+ */
+function requirements1_test_requirements($phase) {
+ $requirements = array();
+ // Ensure translations don't break at install time.
+ $t = get_t();
+
+ // Always fails requirements.
+ if ('install' == $phase) {
+ $requirements['requirements1_test'] = array(
+ 'title' => $t('Requirements 1 Test'),
+ 'severity' => REQUIREMENT_ERROR,
+ 'description' => $t('Requirements 1 Test failed requirements.'),
+ );
+ }
+
+ return $requirements;
+}
diff --git a/modules/simpletest/tests/requirements1_test.module b/modules/simpletest/tests/requirements1_test.module
new file mode 100644
index 000000000..20bfc0a35
--- /dev/null
+++ b/modules/simpletest/tests/requirements1_test.module
@@ -0,0 +1,8 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Tests that a module is not installed when it fails
+ * hook_requirements('install').
+ */
diff --git a/modules/simpletest/tests/requirements2_test.info b/modules/simpletest/tests/requirements2_test.info
new file mode 100644
index 000000000..9f2ae0abf
--- /dev/null
+++ b/modules/simpletest/tests/requirements2_test.info
@@ -0,0 +1,10 @@
+; $Id$
+name = Requirements 2 Test
+description = "Tests that a module is not installed when the one it depends on fails hook_requirements('install)."
+dependencies[] = requirements1_test
+dependencies[] = comment
+package = Core
+version = VERSION
+core = 7.x
+files[] = requirements2_test.module
+hidden = TRUE
diff --git a/modules/simpletest/tests/requirements2_test.module b/modules/simpletest/tests/requirements2_test.module
new file mode 100644
index 000000000..03eb94dd7
--- /dev/null
+++ b/modules/simpletest/tests/requirements2_test.module
@@ -0,0 +1,8 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Tests that a module is not installed when the one it depends on fails
+ * hook_requirements('install').
+ */
diff --git a/modules/simpletest/tests/system_test.module b/modules/simpletest/tests/system_test.module
index 5fa2fdc85..b902fd6ca 100644
--- a/modules/simpletest/tests/system_test.module
+++ b/modules/simpletest/tests/system_test.module
@@ -220,6 +220,9 @@ function system_test_system_info_alter(&$info, $file, $type) {
if ($file->name == 'system_dependencies_test') {
$info['hidden'] = FALSE;
}
+ if ($file->name == 'requirements1_test' || $file->name == 'requirements2_test') {
+ $info['hidden'] = FALSE;
+ }
}
/**