Create message read_mark resource
This commit is contained in:
parent
8cf77a2f36
commit
cc3bccb9b3
9 changed files with 179 additions and 116 deletions
126
test/controllers/messages/read_marks_controller_test.rb
Normal file
126
test/controllers/messages/read_marks_controller_test.rb
Normal file
|
@ -0,0 +1,126 @@
|
|||
require "test_helper"
|
||||
|
||||
module Messages
|
||||
class ReadMarksControllerTest < ActionDispatch::IntegrationTest
|
||||
##
|
||||
# test all routes which lead to this controller
|
||||
def test_routes
|
||||
assert_routing(
|
||||
{ :path => "/messages/1/read_mark", :method => :post },
|
||||
{ :controller => "messages/read_marks", :action => "create", :message_id => "1" }
|
||||
)
|
||||
assert_routing(
|
||||
{ :path => "/messages/1/read_mark", :method => :delete },
|
||||
{ :controller => "messages/read_marks", :action => "destroy", :message_id => "1" }
|
||||
)
|
||||
end
|
||||
|
||||
def test_create_when_not_logged_in
|
||||
message = create(:message, :unread)
|
||||
|
||||
post message_read_mark_path(message)
|
||||
assert_response :forbidden
|
||||
end
|
||||
|
||||
def test_create_as_other_user
|
||||
message = create(:message, :unread)
|
||||
session_for(create(:user))
|
||||
|
||||
post message_read_mark_path(message)
|
||||
assert_response :not_found
|
||||
assert_template "no_such_message"
|
||||
end
|
||||
|
||||
def test_create_as_sender
|
||||
message = create(:message, :unread)
|
||||
session_for(message.sender)
|
||||
|
||||
post message_read_mark_path(message)
|
||||
assert_response :not_found
|
||||
assert_template "no_such_message"
|
||||
end
|
||||
|
||||
def test_create_as_recipient
|
||||
message = create(:message, :unread)
|
||||
session_for(message.recipient)
|
||||
|
||||
post message_read_mark_path(message)
|
||||
assert_redirected_to messages_inbox_path
|
||||
assert message.reload.message_read
|
||||
end
|
||||
|
||||
def test_create_on_missing_message
|
||||
session_for(create(:user))
|
||||
|
||||
post message_read_mark_path(99999)
|
||||
assert_response :not_found
|
||||
assert_template "no_such_message"
|
||||
end
|
||||
|
||||
def test_create_on_message_from_muted_user
|
||||
sender_user = create(:user)
|
||||
recipient_user = create(:user)
|
||||
create(:user_mute, :owner => recipient_user, :subject => sender_user)
|
||||
message = create(:message, :unread, :sender => sender_user, :recipient => recipient_user)
|
||||
session_for(recipient_user)
|
||||
|
||||
post message_read_mark_path(message)
|
||||
assert_redirected_to messages_muted_inbox_path
|
||||
assert message.reload.message_read
|
||||
end
|
||||
|
||||
def test_destroy_when_not_logged_in
|
||||
message = create(:message, :read)
|
||||
|
||||
delete message_read_mark_path(message)
|
||||
assert_response :forbidden
|
||||
end
|
||||
|
||||
def test_destroy_as_other_user
|
||||
message = create(:message, :read)
|
||||
session_for(create(:user))
|
||||
|
||||
delete message_read_mark_path(message)
|
||||
assert_response :not_found
|
||||
assert_template "no_such_message"
|
||||
end
|
||||
|
||||
def test_destroy_as_sender
|
||||
message = create(:message, :read)
|
||||
session_for(message.sender)
|
||||
|
||||
delete message_read_mark_path(message)
|
||||
assert_response :not_found
|
||||
assert_template "no_such_message"
|
||||
end
|
||||
|
||||
def test_destroy_as_recipient
|
||||
message = create(:message, :read)
|
||||
session_for(message.recipient)
|
||||
|
||||
delete message_read_mark_path(message)
|
||||
assert_redirected_to messages_inbox_path
|
||||
assert_not message.reload.message_read
|
||||
end
|
||||
|
||||
def test_destroy_on_missing_message
|
||||
session_for(create(:user))
|
||||
|
||||
delete message_read_mark_path(99999)
|
||||
assert_response :not_found
|
||||
assert_template "no_such_message"
|
||||
end
|
||||
|
||||
def test_destroy_on_message_from_muted_user
|
||||
sender_user = create(:user)
|
||||
recipient_user = create(:user)
|
||||
create(:user_mute, :owner => recipient_user, :subject => sender_user)
|
||||
message = create(:message, :read, :sender => sender_user, :recipient => recipient_user)
|
||||
session_for(recipient_user)
|
||||
|
||||
delete message_read_mark_path(message, :mark => "unread")
|
||||
assert_redirected_to messages_muted_inbox_path
|
||||
assert_not message.reload.message_read
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue