Fix exception when message limit is hit
This commit is contained in:
parent
b00b156ef4
commit
36592f72bc
2 changed files with 36 additions and 3 deletions
|
@ -28,10 +28,10 @@ class MessageController < ApplicationController
|
|||
redirect_to :controller => 'message', :action => 'inbox', :display_name => @user.display_name
|
||||
end
|
||||
end
|
||||
else
|
||||
@message = Message.new(:recipient => @this_user)
|
||||
@title = t 'message.new.title'
|
||||
end
|
||||
|
||||
@message ||= Message.new(:recipient => @this_user)
|
||||
@title = t 'message.new.title'
|
||||
end
|
||||
|
||||
# Allow the user to reply to another message.
|
||||
|
|
|
@ -134,6 +134,27 @@ class MessageControllerTest < ActionController::TestCase
|
|||
assert_select "h1", "The user non_existent_user does not exist"
|
||||
end
|
||||
|
||||
##
|
||||
# test the new action message limit
|
||||
def test_new_limit
|
||||
# Login as a normal user
|
||||
session[:user] = users(:normal_user).id
|
||||
|
||||
# Check that sending a message fails when the message limit is hit
|
||||
assert_no_difference "ActionMailer::Base.deliveries.size" do
|
||||
assert_no_difference "Message.count" do
|
||||
with_message_limit(0) do
|
||||
post :new,
|
||||
:display_name => users(:public_user).display_name,
|
||||
:message => { :title => "Test Message", :body => "Test message body" }
|
||||
assert_response :success
|
||||
assert_template "new"
|
||||
assert_select "p.error", /wait a while/
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
##
|
||||
# test the reply action
|
||||
def test_reply
|
||||
|
@ -362,4 +383,16 @@ class MessageControllerTest < ActionController::TestCase
|
|||
assert_response :not_found
|
||||
assert_template "no_such_message"
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def with_message_limit(value)
|
||||
max_messages_per_hour = Object.send("remove_const", "MAX_MESSAGES_PER_HOUR")
|
||||
Object.const_set("MAX_MESSAGES_PER_HOUR", value)
|
||||
|
||||
yield
|
||||
|
||||
Object.send("remove_const", "MAX_MESSAGES_PER_HOUR")
|
||||
Object.const_set("MAX_MESSAGES_PER_HOUR", max_messages_per_hour)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue