From 12ead3181968bbc5400fce69433a075514e6e8f5 Mon Sep 17 00:00:00 2001
From: Dries Buytaert <dries@buytaert.net>
Date: Thu, 12 Nov 2009 20:30:22 +0000
Subject: [PATCH] - Patch #613278 by Dave Reid, mfb: fixed forum module and
 added tests.

---
 modules/forum/forum.module |  8 ++++----
 modules/forum/forum.test   | 10 ++++++++++
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/modules/forum/forum.module b/modules/forum/forum.module
index 61b68c86328b..601f4d5347c4 100644
--- a/modules/forum/forum.module
+++ b/modules/forum/forum.module
@@ -463,7 +463,7 @@ function forum_field_storage_pre_update($obj_type, $object, &$skip_fields) {
         foreach ($language as $delta) {
           $query->values(array(
             'nid' => $object->nid,
-            'title' => $object->title,
+            'title' => $object->title[FIELD_LANGUAGE_NONE][0]['value'],
             'tid' => $delta['value'],
             'sticky' => $object->sticky,
             'created' => $object->created,
@@ -1107,14 +1107,14 @@ function _forum_update_forum_index($nid) {
 
   if ($count > 0) {
     // Comments exist.
-    $last_reply = db_query_range('SELECT cid, name, timestamp, uid FROM {comment} WHERE nid = :nid AND status = :status ORDER BY cid DESC', array(
+    $last_reply = db_query_range('SELECT cid, name, created, uid FROM {comment} WHERE nid = :nid AND status = :status ORDER BY cid DESC', 0, 1, array(
       ':nid' => $nid,
       ':status' => COMMENT_PUBLISHED,
-    ), 0, 1)->fetchObject();
+    ))->fetchObject();
     db_update('forum_index')
       ->fields( array(
         'comment_count' => $count,
-        'last_comment_timestamp' => $last_reply->timestamp,
+        'last_comment_timestamp' => $last_reply->created,
       ))
       ->condition('nid', $nid)
       ->execute();
diff --git a/modules/forum/forum.test b/modules/forum/forum.test
index cf430b9e5b30..ab50e1e048fc 100644
--- a/modules/forum/forum.test
+++ b/modules/forum/forum.test
@@ -75,6 +75,16 @@ class ForumTestCase extends DrupalWebTestCase {
     $this->createForumTopic($this->forum, FALSE);
     $this->createForumTopic($this->forum, FALSE);
     $this->drupalGet('node');
+
+    // Test adding a comment to a forum topic.
+    $node = $this->createForumTopic($this->forum, FALSE);
+    $this->drupalPost("node/$node->nid", array('comment' => $this->randomName()), t('Save'));
+    $this->assertResponse(200);
+
+    // Test editing a forum topic that has a comment.
+    $this->drupalLogin($this->any_user);
+    $this->drupalPost("node/$node->nid/edit", array(), t('Save'));
+    $this->assertResponse(200);
   }
 
   /**
-- 
GitLab