Merge remote-tracking branch 'upstream/pull/5458'
This commit is contained in:
commit
44ec0e02fc
9 changed files with 128 additions and 107 deletions
69
test/controllers/messages/replies_controller_test.rb
Normal file
69
test/controllers/messages/replies_controller_test.rb
Normal file
|
@ -0,0 +1,69 @@
|
|||
require "test_helper"
|
||||
|
||||
module Messages
|
||||
class RepliesControllerTest < ActionDispatch::IntegrationTest
|
||||
##
|
||||
# test all routes which lead to this controller
|
||||
def test_routes
|
||||
assert_routing(
|
||||
{ :path => "/messages/1/reply/new", :method => :get },
|
||||
{ :controller => "messages/replies", :action => "new", :message_id => "1" }
|
||||
)
|
||||
end
|
||||
|
||||
def test_new
|
||||
user = create(:user)
|
||||
recipient_user = create(:user)
|
||||
other_user = create(:user)
|
||||
message = create(:message, :unread, :sender => user, :recipient => recipient_user)
|
||||
|
||||
# Check that the message reply page requires us to login
|
||||
get new_message_reply_path(message)
|
||||
assert_redirected_to login_path(:referer => new_message_reply_path(message))
|
||||
|
||||
# Login as the wrong user
|
||||
session_for(other_user)
|
||||
|
||||
# Check that we can't reply to somebody else's message
|
||||
get new_message_reply_path(message)
|
||||
assert_redirected_to login_path(:referer => new_message_reply_path(message))
|
||||
assert_equal "You are logged in as '#{other_user.display_name}' but the message you have asked to reply to was not sent to that user. Please log in as the correct user in order to reply.", flash[:notice]
|
||||
|
||||
# Login as the right user
|
||||
session_for(recipient_user)
|
||||
|
||||
# Check that the message reply page loads
|
||||
get new_message_reply_path(message)
|
||||
assert_response :success
|
||||
assert_template "new"
|
||||
assert_select "title", "Re: #{message.title} | OpenStreetMap"
|
||||
assert_select "form[action='/messages']", :count => 1 do
|
||||
assert_select "input[type='hidden'][name='display_name'][value='#{user.display_name}']"
|
||||
assert_select "input#message_title[value='Re: #{message.title}']", :count => 1
|
||||
assert_select "textarea#message_body", :count => 1
|
||||
assert_select "input[type='submit'][value='Send']", :count => 1
|
||||
end
|
||||
assert Message.find(message.id).message_read
|
||||
|
||||
# Login as the sending user
|
||||
session_for(user)
|
||||
|
||||
# Check that the message reply page loads
|
||||
get new_message_reply_path(message)
|
||||
assert_response :success
|
||||
assert_template "new"
|
||||
assert_select "title", "Re: #{message.title} | OpenStreetMap"
|
||||
assert_select "form[action='/messages']", :count => 1 do
|
||||
assert_select "input[type='hidden'][name='display_name'][value='#{recipient_user.display_name}']"
|
||||
assert_select "input#message_title[value='Re: #{message.title}']", :count => 1
|
||||
assert_select "textarea#message_body", :count => 1
|
||||
assert_select "input[type='submit'][value='Send']", :count => 1
|
||||
end
|
||||
|
||||
# Asking to reply to a message with a bogus ID should fail
|
||||
get new_message_reply_path(99999)
|
||||
assert_response :not_found
|
||||
assert_template "no_such_message"
|
||||
end
|
||||
end
|
||||
end
|
|
@ -20,14 +20,6 @@ class MessagesControllerTest < ActionDispatch::IntegrationTest
|
|||
{ :path => "/messages/1/mark", :method => :post },
|
||||
{ :controller => "messages", :action => "mark", :message_id => "1" }
|
||||
)
|
||||
assert_routing(
|
||||
{ :path => "/messages/1/reply", :method => :get },
|
||||
{ :controller => "messages", :action => "reply", :message_id => "1" }
|
||||
)
|
||||
assert_routing(
|
||||
{ :path => "/messages/1/reply", :method => :post },
|
||||
{ :controller => "messages", :action => "reply", :message_id => "1" }
|
||||
)
|
||||
assert_routing(
|
||||
{ :path => "/messages/1", :method => :delete },
|
||||
{ :controller => "messages", :action => "destroy", :id => "1" }
|
||||
|
@ -219,63 +211,6 @@ class MessagesControllerTest < ActionDispatch::IntegrationTest
|
|||
end
|
||||
end
|
||||
|
||||
##
|
||||
# test the reply action
|
||||
def test_reply
|
||||
user = create(:user)
|
||||
recipient_user = create(:user)
|
||||
other_user = create(:user)
|
||||
message = create(:message, :unread, :sender => user, :recipient => recipient_user)
|
||||
|
||||
# Check that the message reply page requires us to login
|
||||
get message_reply_path(message)
|
||||
assert_redirected_to login_path(:referer => message_reply_path(message))
|
||||
|
||||
# Login as the wrong user
|
||||
session_for(other_user)
|
||||
|
||||
# Check that we can't reply to somebody else's message
|
||||
get message_reply_path(message)
|
||||
assert_redirected_to login_path(:referer => message_reply_path(message))
|
||||
assert_equal "You are logged in as '#{other_user.display_name}' but the message you have asked to reply to was not sent to that user. Please log in as the correct user in order to reply.", flash[:notice]
|
||||
|
||||
# Login as the right user
|
||||
session_for(recipient_user)
|
||||
|
||||
# Check that the message reply page loads
|
||||
get message_reply_path(message)
|
||||
assert_response :success
|
||||
assert_template "new"
|
||||
assert_select "title", "Re: #{message.title} | OpenStreetMap"
|
||||
assert_select "form[action='/messages']", :count => 1 do
|
||||
assert_select "input[type='hidden'][name='display_name'][value='#{user.display_name}']"
|
||||
assert_select "input#message_title[value='Re: #{message.title}']", :count => 1
|
||||
assert_select "textarea#message_body", :count => 1
|
||||
assert_select "input[type='submit'][value='Send']", :count => 1
|
||||
end
|
||||
assert Message.find(message.id).message_read
|
||||
|
||||
# Login as the sending user
|
||||
session_for(user)
|
||||
|
||||
# Check that the message reply page loads
|
||||
get message_reply_path(message)
|
||||
assert_response :success
|
||||
assert_template "new"
|
||||
assert_select "title", "Re: #{message.title} | OpenStreetMap"
|
||||
assert_select "form[action='/messages']", :count => 1 do
|
||||
assert_select "input[type='hidden'][name='display_name'][value='#{recipient_user.display_name}']"
|
||||
assert_select "input#message_title[value='Re: #{message.title}']", :count => 1
|
||||
assert_select "textarea#message_body", :count => 1
|
||||
assert_select "input[type='submit'][value='Send']", :count => 1
|
||||
end
|
||||
|
||||
# Asking to reply to a message with a bogus ID should fail
|
||||
get message_reply_path(99999)
|
||||
assert_response :not_found
|
||||
assert_template "no_such_message"
|
||||
end
|
||||
|
||||
##
|
||||
# test the show action
|
||||
def test_show
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue