You are here

protected function XMLSitemapTestHelper::getWatchdogMessages in XML sitemap 6.2

Same name and namespace in other branches
  1. 7.2 xmlsitemap.test \XMLSitemapTestHelper::getWatchdogMessages()

Fetch all seen watchdog messages.

@todo Add unit tests for this function.

3 calls to XMLSitemapTestHelper::getWatchdogMessages()
XMLSitemapTestHelper::assertNoWatchdogErrors in ./xmlsitemap.test
Check that there were no watchdog errors or worse.
XMLSitemapTestHelper::assertNoWatchdogMessage in ./xmlsitemap.test
XMLSitemapTestHelper::assertWatchdogMessage in ./xmlsitemap.test

File

./xmlsitemap.test, line 229
Unit tests for the xmlsitemap module.

Class

XMLSitemapTestHelper
Helper test class with some added functions for testing.

Code

protected function getWatchdogMessages(array $conditions = array(), $reset = FALSE) {
  static $seen_ids = array();
  static $watchdog_schema;
  if (!module_exists('dblog') || $reset) {
    $seen_ids = array();
    return;
  }
  if (!isset($watchdog_schema)) {
    $watchdog_schema = drupal_get_schema('watchdog');
  }
  $sql = "SELECT wid, type, severity, message, variables, timestamp FROM {watchdog}";
  $args = array();
  foreach ($conditions as $field => $value) {
    $conditions[$field] = $field . ' = ' . db_type_placeholder($watchdog_schema['fields'][$field]['type']);
    if ($field == 'variables' && !is_string($value)) {
      $value = serialize($value);
    }
    $args[] = $value;
  }
  if ($seen_ids) {
    $conditions[] = 'wid NOT IN (' . db_placeholders($seen_ids) . ')';
    $args = array_merge($args, $seen_ids);
  }
  if ($conditions) {
    $sql .= " WHERE " . implode(' AND ', $conditions);
  }
  $sql .= " ORDER BY timestamp";
  $query = db_query($sql, $args);
  $messages = array();
  while ($message = db_fetch_object($query)) {
    $messages[$message->wid] = $message;
  }
  $seen_ids = array_merge($seen_ids, array_keys($messages));
  return $messages;
}