comparison test/unit/message_test.rb @ 1526:404aa68d4227

Merge from live branch
author Chris Cannam
date Thu, 11 Sep 2014 12:46:20 +0100
parents dffacf8a6908
children
comparison
equal deleted inserted replaced
1493:a5f2bdf3b486 1526:404aa68d4227
1 # Redmine - project management software 1 # Redmine - project management software
2 # Copyright (C) 2006-2012 Jean-Philippe Lang 2 # Copyright (C) 2006-2014 Jean-Philippe Lang
3 # 3 #
4 # This program is free software; you can redistribute it and/or 4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License 5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2 6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version. 7 # of the License, or (at your option) any later version.
34 :content => 'Test message content', 34 :content => 'Test message content',
35 :author => @user) 35 :author => @user)
36 assert message.save 36 assert message.save
37 @board.reload 37 @board.reload
38 # topics count incremented 38 # topics count incremented
39 assert_equal topics_count+1, @board[:topics_count] 39 assert_equal topics_count + 1, @board[:topics_count]
40 # messages count incremented 40 # messages count incremented
41 assert_equal messages_count+1, @board[:messages_count] 41 assert_equal messages_count + 1, @board[:messages_count]
42 assert_equal message, @board.last_message 42 assert_equal message, @board.last_message
43 # author should be watching the message 43 # author should be watching the message
44 assert message.watched_by?(@user) 44 assert message.watched_by?(@user)
45 end 45 end
46 46
47 def test_reply 47 def test_reply
48 topics_count = @board.topics_count 48 topics_count = @board.topics_count
49 messages_count = @board.messages_count 49 messages_count = @board.messages_count
50 @message = Message.find(1) 50 message = Message.find(1)
51 replies_count = @message.replies_count 51 replies_count = message.replies_count
52 52
53 reply_author = User.find(2) 53 reply_author = User.find(2)
54 reply = Message.new(:board => @board, :subject => 'Test reply', 54 reply = Message.new(:board => @board, :subject => 'Test reply',
55 :content => 'Test reply content', 55 :content => 'Test reply content',
56 :parent => @message, :author => reply_author) 56 :parent => message, :author => reply_author)
57 assert reply.save 57 assert reply.save
58 @board.reload 58 @board.reload
59 # same topics count 59 # same topics count
60 assert_equal topics_count, @board[:topics_count] 60 assert_equal topics_count, @board[:topics_count]
61 # messages count incremented 61 # messages count incremented
62 assert_equal messages_count+1, @board[:messages_count] 62 assert_equal messages_count+1, @board[:messages_count]
63 assert_equal reply, @board.last_message 63 assert_equal reply, @board.last_message
64 @message.reload 64 message.reload
65 # replies count incremented 65 # replies count incremented
66 assert_equal replies_count+1, @message[:replies_count] 66 assert_equal replies_count+1, message[:replies_count]
67 assert_equal reply, @message.last_reply 67 assert_equal reply, message.last_reply
68 # author should be watching the message 68 # author should be watching the message
69 assert @message.watched_by?(reply_author) 69 assert message.watched_by?(reply_author)
70 end 70 end
71 71
72 def test_cannot_reply_to_locked_topic 72 def test_cannot_reply_to_locked_topic
73 topics_count = @board.topics_count 73 topics_count = @board.topics_count
74 messages_count = @board.messages_count 74 messages_count = @board.messages_count
75 @message = Message.find(1) 75 message = Message.find(1)
76 replies_count = @message.replies_count 76 replies_count = message.replies_count
77 assert_equal false, @message.locked 77 assert_equal false, message.locked
78 @message.locked = true 78 message.locked = true
79 assert @message.save 79 assert message.save
80 assert_equal true, @message.locked 80 assert_equal true, message.locked
81 81
82 reply_author = User.find(2) 82 reply_author = User.find(2)
83 reply = Message.new(:board => @board, :subject => 'Test reply', 83 reply = Message.new(:board => @board, :subject => 'Test reply',
84 :content => 'Test reply content', 84 :content => 'Test reply content',
85 :parent => @message, :author => reply_author) 85 :parent => message, :author => reply_author)
86 reply.save 86 reply.save
87 assert_equal 1, reply.errors.count 87 assert_equal 1, reply.errors.count
88 end 88 end
89 89
90 def test_moving_message_should_update_counters 90 def test_moving_message_should_update_counters
91 @message = Message.find(1) 91 message = Message.find(1)
92 assert_no_difference 'Message.count' do 92 assert_no_difference 'Message.count' do
93 # Previous board 93 # Previous board
94 assert_difference 'Board.find(1).topics_count', -1 do 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 # New board 96 # New board
97 assert_difference 'Board.find(2).topics_count' do 97 assert_difference 'Board.find(2).topics_count' do
98 assert_difference 'Board.find(2).messages_count', (1 + @message.replies_count) do 98 assert_difference 'Board.find(2).messages_count', (1 + message.replies_count) do
99 @message.update_attributes(:board_id => 2) 99 message.update_attributes(:board_id => 2)
100 end 100 end
101 end 101 end
102 end 102 end
103 end 103 end
104 end 104 end
113 assert message.destroy 113 assert message.destroy
114 end 114 end
115 board.reload 115 board.reload
116 116
117 # Replies deleted 117 # Replies deleted
118 assert Message.find_all_by_parent_id(1).empty? 118 assert Message.where(:parent_id => 1).empty?
119 # Checks counters 119 # Checks counters
120 assert_equal topics_count - 1, board.topics_count 120 assert_equal topics_count - 1, board.topics_count
121 assert_equal messages_count - 3, board.messages_count 121 assert_equal messages_count - 3, board.messages_count
122 # Watchers removed 122 # Watchers removed
123 end 123 end