summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2007-05-13 17:09:56 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2007-05-13 17:09:56 +0000
commitb90e84b9fe252df464d084f0222c65367407a4ba (patch)
tree313fc54f0eb43ebb0d61f33b878c8b5e1af27052 /test
parent75582f80f85528865fa86d93ac57a44337742939 (diff)
downloadredmine-b90e84b9fe252df464d084f0222c65367407a4ba.tar.gz
redmine-b90e84b9fe252df464d084f0222c65367407a4ba.zip
Per project forums added.
Permissions for forums management can be set in "Admin -> Roles & Permissions". Forums can be created on the project settings screen ("Forums" tab). Once a project has a forum, a "Forums" link appears in the project menu. For now, posting messages in forums requires to be logged in. Files can be attached to messages. git-svn-id: http://redmine.rubyforge.org/svn/trunk@529 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test')
-rw-r--r--test/fixtures/boards.yml19
-rw-r--r--test/fixtures/messages.yml25
-rw-r--r--test/unit/board_test.rb30
-rw-r--r--test/unit/message_test.rb44
4 files changed, 118 insertions, 0 deletions
diff --git a/test/fixtures/boards.yml b/test/fixtures/boards.yml
new file mode 100644
index 000000000..7f2944fac
--- /dev/null
+++ b/test/fixtures/boards.yml
@@ -0,0 +1,19 @@
+---
+boards_001:
+ name: Help
+ project_id: 1
+ topics_count: 1
+ id: 1
+ description: Help board
+ position: 1
+ last_message_id: 2
+ messages_count: 2
+boards_002:
+ name: Discussion
+ project_id: 1
+ topics_count: 0
+ id: 2
+ description: Discussion board
+ position: 2
+ last_message_id:
+ messages_count: 0
diff --git a/test/fixtures/messages.yml b/test/fixtures/messages.yml
new file mode 100644
index 000000000..88f54dbc2
--- /dev/null
+++ b/test/fixtures/messages.yml
@@ -0,0 +1,25 @@
+---
+messages_001:
+ created_on: 2007-05-12 17:15:32 +02:00
+ updated_on: 2007-05-12 17:15:32 +02:00
+ subject: First post
+ id: 1
+ replies_count: 1
+ last_reply_id: 2
+ content: "This is the very first post\n\
+ in the forum"
+ author_id: 1
+ parent_id:
+ board_id: 1
+messages_002:
+ created_on: 2007-05-12 17:18:00 +02:00
+ updated_on: 2007-05-12 17:18:00 +02:00
+ subject: First reply
+ id: 2
+ replies_count: 0
+ last_reply_id:
+ content: "Reply to the first post"
+ author_id: 1
+ parent_id: 1
+ board_id: 1
+ \ No newline at end of file
diff --git a/test/unit/board_test.rb b/test/unit/board_test.rb
new file mode 100644
index 000000000..3ba4b2d97
--- /dev/null
+++ b/test/unit/board_test.rb
@@ -0,0 +1,30 @@
+require File.dirname(__FILE__) + '/../test_helper'
+
+class BoardTest < Test::Unit::TestCase
+ fixtures :projects, :boards, :messages
+
+ def setup
+ @project = Project.find(1)
+ end
+
+ def test_create
+ board = Board.new(:project => @project, :name => 'Test board', :description => 'Test board description')
+ assert board.save
+ board.reload
+ assert_equal 'Test board', board.name
+ assert_equal 'Test board description', board.description
+ assert_equal @project, board.project
+ assert_equal 0, board.topics_count
+ assert_equal 0, board.messages_count
+ assert_nil board.last_message
+ # last position
+ assert_equal @project.boards.size, board.position
+ end
+
+ def test_destroy
+ board = Board.find(1)
+ assert board.destroy
+ # make sure that the associated messages are removed
+ assert_equal 0, Message.count(:conditions => {:board_id => 1})
+ end
+end
diff --git a/test/unit/message_test.rb b/test/unit/message_test.rb
new file mode 100644
index 000000000..6d8458bfc
--- /dev/null
+++ b/test/unit/message_test.rb
@@ -0,0 +1,44 @@
+require File.dirname(__FILE__) + '/../test_helper'
+
+class MessageTest < Test::Unit::TestCase
+ fixtures :projects, :boards, :messages
+
+ def setup
+ @board = Board.find(1)
+ @user = User.find(1)
+ end
+
+ def test_create
+ topics_count = @board.topics_count
+ messages_count = @board.messages_count
+
+ message = Message.new(:board => @board, :subject => 'Test message', :content => 'Test message content', :author => @user)
+ assert message.save
+ @board.reload
+ # topics count incremented
+ assert_equal topics_count+1, @board[:topics_count]
+ # messages count incremented
+ assert_equal messages_count+1, @board[:messages_count]
+ assert_equal message, @board.last_message
+ end
+
+ def test_reply
+ topics_count = @board.topics_count
+ messages_count = @board.messages_count
+ @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)
+ assert reply.save
+ @board.reload
+ # same topics count
+ assert_equal topics_count, @board[:topics_count]
+ # messages count incremented
+ assert_equal messages_count+1, @board[:messages_count]
+ assert_equal reply, @board.last_message
+ @message.reload
+ # replies count incremented
+ assert_equal replies_count+1, @message[:replies_count]
+ assert_equal reply, @message.last_reply
+ end
+end