4 class ReadMarksControllerTest < ActionDispatch::IntegrationTest
6 # test all routes which lead to this controller
9 { :path => "/messages/1/read_mark", :method => :post },
10 { :controller => "messages/read_marks", :action => "create", :message_id => "1" }
13 { :path => "/messages/1/read_mark", :method => :delete },
14 { :controller => "messages/read_marks", :action => "destroy", :message_id => "1" }
18 def test_create_when_not_logged_in
19 message = create(:message, :unread)
21 post message_read_mark_path(message)
22 assert_response :forbidden
25 def test_create_as_other_user
26 message = create(:message, :unread)
27 session_for(create(:user))
29 post message_read_mark_path(message)
30 assert_response :not_found
31 assert_template "no_such_message"
34 def test_create_as_sender
35 message = create(:message, :unread)
36 session_for(message.sender)
38 post message_read_mark_path(message)
39 assert_response :not_found
40 assert_template "no_such_message"
43 def test_create_as_recipient
44 message = create(:message, :unread)
45 session_for(message.recipient)
47 post message_read_mark_path(message)
48 assert_redirected_to messages_inbox_path
49 assert message.reload.message_read
52 def test_create_on_missing_message
53 session_for(create(:user))
55 post message_read_mark_path(99999)
56 assert_response :not_found
57 assert_template "no_such_message"
60 def test_create_on_message_from_muted_user
61 sender_user = create(:user)
62 recipient_user = create(:user)
63 create(:user_mute, :owner => recipient_user, :subject => sender_user)
64 message = create(:message, :unread, :sender => sender_user, :recipient => recipient_user)
65 session_for(recipient_user)
67 post message_read_mark_path(message)
68 assert_redirected_to messages_muted_inbox_path
69 assert message.reload.message_read
72 def test_destroy_when_not_logged_in
73 message = create(:message, :read)
75 delete message_read_mark_path(message)
76 assert_response :forbidden
79 def test_destroy_as_other_user
80 message = create(:message, :read)
81 session_for(create(:user))
83 delete message_read_mark_path(message)
84 assert_response :not_found
85 assert_template "no_such_message"
88 def test_destroy_as_sender
89 message = create(:message, :read)
90 session_for(message.sender)
92 delete message_read_mark_path(message)
93 assert_response :not_found
94 assert_template "no_such_message"
97 def test_destroy_as_recipient
98 message = create(:message, :read)
99 session_for(message.recipient)
101 delete message_read_mark_path(message)
102 assert_redirected_to messages_inbox_path
103 assert_not message.reload.message_read
106 def test_destroy_on_missing_message
107 session_for(create(:user))
109 delete message_read_mark_path(99999)
110 assert_response :not_found
111 assert_template "no_such_message"
114 def test_destroy_on_message_from_muted_user
115 sender_user = create(:user)
116 recipient_user = create(:user)
117 create(:user_mute, :owner => recipient_user, :subject => sender_user)
118 message = create(:message, :read, :sender => sender_user, :recipient => recipient_user)
119 session_for(recipient_user)
121 delete message_read_mark_path(message, :mark => "unread")
122 assert_redirected_to messages_muted_inbox_path
123 assert_not message.reload.message_read