##// END OF EJS Templates
Added request and controller objects to the hooks by default....
Added request and controller objects to the hooks by default. The request and controller objects are now added to all hook contexts by default. This will also make url_for work better in hooks by setting up the default_url_options :host, :port, and :protocol. Finally a new helper method @render_or@ has been added to ViewListener. This will let a hook easily render a partial without a full method definition. Thanks to Thomas Löber for the original patch. #2542 git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2429 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r2017:7a05f8ed6691
r2368:5b7a5c39a7da
Show More
message_test.rb
97 lines | 3.0 KiB | text/x-ruby | RubyLexer
Jean-Philippe Lang
Per project forums added....
r526 require File.dirname(__FILE__) + '/../test_helper'
class MessageTest < Test::Unit::TestCase
Jean-Philippe Lang
Adds permissions to let users edit and/or delete their messages (#854, patch by Markus Knittig with slight changes)....
r2017 fixtures :projects, :roles, :members, :boards, :messages, :users, :watchers
Jean-Philippe Lang
Per project forums added....
r526
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
Jean-Philippe Lang
Adds watch/unwatch functionality at forum topic level (#1912)....
r1876 # author should be watching the message
assert message.watched_by?(@user)
Jean-Philippe Lang
Per project forums added....
r526 end
def test_reply
topics_count = @board.topics_count
messages_count = @board.messages_count
@message = Message.find(1)
replies_count = @message.replies_count
Jean-Philippe Lang
Adds watch/unwatch functionality at forum topic level (#1912)....
r1876 reply_author = User.find(2)
reply = Message.new(:board => @board, :subject => 'Test reply', :content => 'Test reply content', :parent => @message, :author => reply_author)
Jean-Philippe Lang
Per project forums added....
r526 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
Jean-Philippe Lang
Adds watch/unwatch functionality at forum topic level (#1912)....
r1876 # author should be watching the message
assert @message.watched_by?(reply_author)
Jean-Philippe Lang
Per project forums added....
r526 end
Jean-Philippe Lang
Forums enhancements:...
r913
def test_destroy_topic
message = Message.find(1)
board = message.board
topics_count, messages_count = board.topics_count, board.messages_count
Jean-Philippe Lang
Adds watch/unwatch functionality at forum topic level (#1912)....
r1876
assert_difference('Watcher.count', -1) do
assert message.destroy
end
Jean-Philippe Lang
Forums enhancements:...
r913 board.reload
# Replies deleted
assert Message.find_all_by_parent_id(1).empty?
# Checks counters
assert_equal topics_count - 1, board.topics_count
assert_equal messages_count - 3, board.messages_count
Jean-Philippe Lang
Adds watch/unwatch functionality at forum topic level (#1912)....
r1876 # Watchers removed
Jean-Philippe Lang
Forums enhancements:...
r913 end
def test_destroy_reply
message = Message.find(5)
board = message.board
topics_count, messages_count = board.topics_count, board.messages_count
assert message.destroy
board.reload
# Checks counters
assert_equal topics_count, board.topics_count
assert_equal messages_count - 1, board.messages_count
end
Jean-Philippe Lang
Adds permissions to let users edit and/or delete their messages (#854, patch by Markus Knittig with slight changes)....
r2017
def test_editable_by
message = Message.find(6)
author = message.author
assert message.editable_by?(author)
author.role_for_project(message.project).remove_permission!(:edit_own_messages)
assert !message.reload.editable_by?(author.reload)
end
def test_destroyable_by
message = Message.find(6)
author = message.author
assert message.destroyable_by?(author)
author.role_for_project(message.project).remove_permission!(:delete_own_messages)
assert !message.reload.destroyable_by?(author.reload)
end
Jean-Philippe Lang
Per project forums added....
r526 end