##// END OF EJS Templates
not use unnecessary instance variable at unit message test...
Toshi MARUYAMA -
r10969:10c96dba8b79
parent child
Show More
@@ -1,184 +1,184
1 1 # Redmine - project management software
2 2 # Copyright (C) 2006-2013 Jean-Philippe Lang
3 3 #
4 4 # This program is free software; you can redistribute it and/or
5 5 # modify it under the terms of the GNU General Public License
6 6 # as published by the Free Software Foundation; either version 2
7 7 # of the License, or (at your option) any later version.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU General Public License
15 15 # along with this program; if not, write to the Free Software
16 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 17
18 18 require File.expand_path('../../test_helper', __FILE__)
19 19
20 20 class MessageTest < ActiveSupport::TestCase
21 21 fixtures :projects, :roles, :members, :member_roles, :boards, :messages,
22 22 :users, :watchers, :enabled_modules
23 23
24 24 def setup
25 25 @board = Board.find(1)
26 26 @user = User.find(1)
27 27 end
28 28
29 29 def test_create
30 30 topics_count = @board.topics_count
31 31 messages_count = @board.messages_count
32 32
33 33 message = Message.new(:board => @board, :subject => 'Test message',
34 34 :content => 'Test message content',
35 35 :author => @user)
36 36 assert message.save
37 37 @board.reload
38 38 # topics count incremented
39 39 assert_equal topics_count + 1, @board[:topics_count]
40 40 # messages count incremented
41 41 assert_equal messages_count + 1, @board[:messages_count]
42 42 assert_equal message, @board.last_message
43 43 # author should be watching the message
44 44 assert message.watched_by?(@user)
45 45 end
46 46
47 47 def test_reply
48 48 topics_count = @board.topics_count
49 49 messages_count = @board.messages_count
50 @message = Message.find(1)
51 replies_count = @message.replies_count
50 message = Message.find(1)
51 replies_count = message.replies_count
52 52
53 53 reply_author = User.find(2)
54 54 reply = Message.new(:board => @board, :subject => 'Test reply',
55 55 :content => 'Test reply content',
56 :parent => @message, :author => reply_author)
56 :parent => message, :author => reply_author)
57 57 assert reply.save
58 58 @board.reload
59 59 # same topics count
60 60 assert_equal topics_count, @board[:topics_count]
61 61 # messages count incremented
62 62 assert_equal messages_count+1, @board[:messages_count]
63 63 assert_equal reply, @board.last_message
64 @message.reload
64 message.reload
65 65 # replies count incremented
66 assert_equal replies_count+1, @message[:replies_count]
67 assert_equal reply, @message.last_reply
66 assert_equal replies_count+1, message[:replies_count]
67 assert_equal reply, message.last_reply
68 68 # author should be watching the message
69 assert @message.watched_by?(reply_author)
69 assert message.watched_by?(reply_author)
70 70 end
71 71
72 72 def test_cannot_reply_to_locked_topic
73 73 topics_count = @board.topics_count
74 74 messages_count = @board.messages_count
75 @message = Message.find(1)
76 replies_count = @message.replies_count
77 assert_equal false, @message.locked
78 @message.locked = true
79 assert @message.save
80 assert_equal true, @message.locked
75 message = Message.find(1)
76 replies_count = message.replies_count
77 assert_equal false, message.locked
78 message.locked = true
79 assert message.save
80 assert_equal true, message.locked
81 81
82 82 reply_author = User.find(2)
83 83 reply = Message.new(:board => @board, :subject => 'Test reply',
84 84 :content => 'Test reply content',
85 :parent => @message, :author => reply_author)
85 :parent => message, :author => reply_author)
86 86 reply.save
87 87 assert_equal 1, reply.errors.count
88 88 end
89 89
90 90 def test_moving_message_should_update_counters
91 @message = Message.find(1)
91 message = Message.find(1)
92 92 assert_no_difference 'Message.count' do
93 93 # Previous board
94 94 assert_difference 'Board.find(1).topics_count', -1 do
95 assert_difference 'Board.find(1).messages_count', -(1 + @message.replies_count) do
95 assert_difference 'Board.find(1).messages_count', -(1 + message.replies_count) do
96 96 # New board
97 97 assert_difference 'Board.find(2).topics_count' do
98 assert_difference 'Board.find(2).messages_count', (1 + @message.replies_count) do
99 @message.update_attributes(:board_id => 2)
98 assert_difference 'Board.find(2).messages_count', (1 + message.replies_count) do
99 message.update_attributes(:board_id => 2)
100 100 end
101 101 end
102 102 end
103 103 end
104 104 end
105 105 end
106 106
107 107 def test_destroy_topic
108 108 message = Message.find(1)
109 109 board = message.board
110 110 topics_count, messages_count = board.topics_count, board.messages_count
111 111
112 112 assert_difference('Watcher.count', -1) do
113 113 assert message.destroy
114 114 end
115 115 board.reload
116 116
117 117 # Replies deleted
118 118 assert Message.find_all_by_parent_id(1).empty?
119 119 # Checks counters
120 120 assert_equal topics_count - 1, board.topics_count
121 121 assert_equal messages_count - 3, board.messages_count
122 122 # Watchers removed
123 123 end
124 124
125 125 def test_destroy_reply
126 126 message = Message.find(5)
127 127 board = message.board
128 128 topics_count, messages_count = board.topics_count, board.messages_count
129 129 assert message.destroy
130 130 board.reload
131 131
132 132 # Checks counters
133 133 assert_equal topics_count, board.topics_count
134 134 assert_equal messages_count - 1, board.messages_count
135 135 end
136 136
137 137 def test_destroying_last_reply_should_update_topic_last_reply_id
138 138 topic = Message.find(4)
139 139 assert_equal 6, topic.last_reply_id
140 140
141 141 assert_difference 'Message.count', -1 do
142 142 Message.find(6).destroy
143 143 end
144 144 assert_equal 5, topic.reload.last_reply_id
145 145
146 146 assert_difference 'Message.count', -1 do
147 147 Message.find(5).destroy
148 148 end
149 149 assert_nil topic.reload.last_reply_id
150 150 end
151 151
152 152 def test_editable_by
153 153 message = Message.find(6)
154 154 author = message.author
155 155 assert message.editable_by?(author)
156 156
157 157 author.roles_for_project(message.project).first.remove_permission!(:edit_own_messages)
158 158 assert !message.reload.editable_by?(author.reload)
159 159 end
160 160
161 161 def test_destroyable_by
162 162 message = Message.find(6)
163 163 author = message.author
164 164 assert message.destroyable_by?(author)
165 165
166 166 author.roles_for_project(message.project).first.remove_permission!(:delete_own_messages)
167 167 assert !message.reload.destroyable_by?(author.reload)
168 168 end
169 169
170 170 def test_set_sticky
171 171 message = Message.new
172 172 assert_equal 0, message.sticky
173 173 message.sticky = nil
174 174 assert_equal 0, message.sticky
175 175 message.sticky = false
176 176 assert_equal 0, message.sticky
177 177 message.sticky = true
178 178 assert_equal 1, message.sticky
179 179 message.sticky = '0'
180 180 assert_equal 0, message.sticky
181 181 message.sticky = '1'
182 182 assert_equal 1, message.sticky
183 183 end
184 184 end
General Comments 0
You need to be logged in to leave comments. Login now