summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/bootstrap.inc10
-rw-r--r--includes/install.inc1
-rw-r--r--includes/module.inc2
-rw-r--r--modules/system/system.test37
4 files changed, 46 insertions, 4 deletions
diff --git a/includes/bootstrap.inc b/includes/bootstrap.inc
index 589582498..590f1ba35 100644
--- a/includes/bootstrap.inc
+++ b/includes/bootstrap.inc
@@ -1097,15 +1097,17 @@ function request_uri() {
* @param $type
* The category to which this message belongs.
* @param $message
- * The message to store in the log. See t() for documentation
- * on how $message and $variables interact. Keep $message
- * translatable by not concatenating dynamic values into it!
+ * The message to store in the log. Keep $message translatable
+ * by not concatenating dynamic values into it! Variables in the
+ * message should be added by using placeholder strings alongside
+ * the variables argument to declare the value of the placeholders.
+ * See t() for documentation on how $message and $variables interact.
* @param $variables
* Array of variables to replace in the message on display or
* NULL if message is already translated or not possible to
* translate.
* @param $severity
- * The severity of the message, as per RFC 3164
+ * The severity of the message, as per RFC 3164.
* @param $link
* A link to associate with the message.
*
diff --git a/includes/install.inc b/includes/install.inc
index 2af751c5b..b3358f285 100644
--- a/includes/install.inc
+++ b/includes/install.inc
@@ -610,6 +610,7 @@ function drupal_uninstall_modules($module_list = array()) {
// Uninstall the module.
module_load_install($module);
module_invoke($module, 'uninstall');
+ watchdog('system', '%module module uninstalled.', array('%module' => $module), WATCHDOG_INFO);
// Now remove the menu links for all paths declared by this module.
if (!empty($paths)) {
diff --git a/includes/module.inc b/includes/module.inc
index dbe51279b..2e00088eb 100644
--- a/includes/module.inc
+++ b/includes/module.inc
@@ -258,6 +258,7 @@ function module_enable($module_list) {
->execute();
drupal_load('module', $module);
$invoke_modules[] = $module;
+ watchdog('system', '%module module enabled.', array('%module' => $module), WATCHDOG_INFO);
}
}
@@ -309,6 +310,7 @@ function module_disable($module_list) {
->condition('name', $module)
->execute();
$invoke_modules[] = $module;
+ watchdog('system', '%module module disabled.', array('%module' => $module), WATCHDOG_INFO);
}
}
diff --git a/modules/system/system.test b/modules/system/system.test
index 60c872df0..101390148 100644
--- a/modules/system/system.test
+++ b/modules/system/system.test
@@ -52,6 +52,40 @@ class ModuleTestCase extends DrupalWebTestCase {
$this->assertEqual(module_exists($module), $enabled, t($message, array('@module' => $module)));
}
}
+
+ /**
+ * Verify a log entry was entered for a module's status change.
+ * Called in the same way of the expected original watchdog() execution.
+ *
+ * @param $type
+ * The category to which this message belongs.
+ * @param $message
+ * The message to store in the log. Keep $message translatable
+ * by not concatenating dynamic values into it! Variables in the
+ * message should be added by using placeholder strings alongside
+ * the variables argument to declare the value of the placeholders.
+ * See t() for documentation on how $message and $variables interact.
+ * @param $variables
+ * Array of variables to replace in the message on display or
+ * NULL if message is already translated or not possible to
+ * translate.
+ * @param $severity
+ * The severity of the message, as per RFC 3164.
+ * @param $link
+ * A link to associate with the message.
+ */
+ function assertLogMessage($type, $message, $variables = array(), $severity = WATCHDOG_NOTICE, $link = '') {
+ $count = db_select('watchdog', 'w')
+ ->condition('type', $type)
+ ->condition('message', $message)
+ ->condition('variables', serialize($variables))
+ ->condition('severity', $severity)
+ ->condition('link', $link)
+ ->countQuery()
+ ->execute()
+ ->fetchField();
+ $this->assertTrue($count > 0, t('watchdog table contains @count rows for @message', array('@count' => $count, '@message' => $message)));
+ }
}
/**
@@ -87,6 +121,7 @@ class EnableDisableTestCase extends ModuleTestCase {
$this->assertText(t('hook_modules_enabled fired for aggregator'), t('hook_modules_enabled fired.'));
$this->assertModules(array('aggregator'), TRUE);
$this->assertTableCount('aggregator', TRUE);
+ $this->assertLogMessage('system', "%module module enabled.", array('%module' => 'aggregator'), WATCHDOG_INFO);
// Disable aggregator, check tables, uninstall aggregator, check tables.
$edit = array();
@@ -98,6 +133,7 @@ class EnableDisableTestCase extends ModuleTestCase {
$this->assertText(t('hook_modules_disabled fired for aggregator'), t('hook_modules_disabled fired.'));
$this->assertModules(array('aggregator'), FALSE);
$this->assertTableCount('aggregator', TRUE);
+ $this->assertLogMessage('system', "%module module disabled.", array('%module' => 'aggregator'), WATCHDOG_INFO);
// Uninstall the module.
$edit = array();
@@ -111,6 +147,7 @@ class EnableDisableTestCase extends ModuleTestCase {
$this->assertText(t('hook_modules_uninstalled fired for aggregator'), t('hook_modules_uninstalled fired.'));
$this->assertModules(array('aggregator'), FALSE);
$this->assertTableCount('aggregator', FALSE);
+ $this->assertLogMessage('system', "%module module uninstalled.", array('%module' => 'aggregator'), WATCHDOG_INFO);
}
}