Adds watch/unwatch functionality at forum topic level (#1912).

Users who create/reply a topic are automatically added as watchers but are now able to unwatch the topic.

git-svn-id: http://redmine.rubyforge.org/svn/trunk@1878 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2008-09-19 15:32:52 +00:00
parent 9e7bce6a94
commit 16e09bfd77
7 changed files with 44 additions and 6 deletions
+12 -3
View File
@@ -1,7 +1,7 @@
require File.dirname(__FILE__) + '/../test_helper'
class MessageTest < Test::Unit::TestCase
fixtures :projects, :boards, :messages
fixtures :projects, :boards, :messages, :users, :watchers
def setup
@board = Board.find(1)
@@ -20,6 +20,8 @@ class MessageTest < Test::Unit::TestCase
# messages count incremented
assert_equal messages_count+1, @board[:messages_count]
assert_equal message, @board.last_message
# author should be watching the message
assert message.watched_by?(@user)
end
def test_reply
@@ -28,7 +30,8 @@ class MessageTest < Test::Unit::TestCase
@message = Message.find(1)
replies_count = @message.replies_count
reply = Message.new(:board => @board, :subject => 'Test reply', :content => 'Test reply content', :parent => @message, :author => @user)
reply_author = User.find(2)
reply = Message.new(:board => @board, :subject => 'Test reply', :content => 'Test reply content', :parent => @message, :author => reply_author)
assert reply.save
@board.reload
# same topics count
@@ -40,13 +43,18 @@ class MessageTest < Test::Unit::TestCase
# replies count incremented
assert_equal replies_count+1, @message[:replies_count]
assert_equal reply, @message.last_reply
# author should be watching the message
assert @message.watched_by?(reply_author)
end
def test_destroy_topic
message = Message.find(1)
board = message.board
topics_count, messages_count = board.topics_count, board.messages_count
assert message.destroy
assert_difference('Watcher.count', -1) do
assert message.destroy
end
board.reload
# Replies deleted
@@ -54,6 +62,7 @@ class MessageTest < Test::Unit::TestCase
# Checks counters
assert_equal topics_count - 1, board.topics_count
assert_equal messages_count - 3, board.messages_count
# Watchers removed
end
def test_destroy_reply