1 # frozen_string_literal: true
6 class ReadMarksControllerTest < ActionDispatch::IntegrationTest
8 # test all routes which lead to this controller
11 { :path => "/messages/1/read_mark", :method => :post },
12 { :controller => "messages/read_marks", :action => "create", :message_id => "1" }
15 { :path => "/messages/1/read_mark", :method => :delete },
16 { :controller => "messages/read_marks", :action => "destroy", :message_id => "1" }
20 def test_create_when_not_logged_in
21 message = create(:message, :unread)
23 post message_read_mark_path(message)
24 assert_response :forbidden
27 def test_create_as_other_user
28 message = create(:message, :unread)
29 session_for(create(:user))
31 post message_read_mark_path(message)
32 assert_response :not_found
33 assert_template "no_such_message"
36 def test_create_as_sender
37 message = create(:message, :unread)
38 session_for(message.sender)
40 post message_read_mark_path(message)
41 assert_response :not_found
42 assert_template "no_such_message"
45 def test_create_as_recipient
46 message = create(:message, :unread)
47 session_for(message.recipient)
49 post message_read_mark_path(message)
50 assert_redirected_to messages_inbox_path
51 assert message.reload.message_read
54 def test_create_on_missing_message
55 session_for(create(:user))
57 post message_read_mark_path(99999)
58 assert_response :not_found
59 assert_template "no_such_message"
62 def test_create_on_message_from_muted_user
63 sender_user = create(:user)
64 recipient_user = create(:user)
65 create(:user_mute, :owner => recipient_user, :subject => sender_user)
66 message = create(:message, :unread, :sender => sender_user, :recipient => recipient_user)
67 session_for(recipient_user)
69 post message_read_mark_path(message)
70 assert_redirected_to messages_muted_inbox_path
71 assert message.reload.message_read
74 def test_destroy_when_not_logged_in
75 message = create(:message, :read)
77 delete message_read_mark_path(message)
78 assert_response :forbidden
81 def test_destroy_as_other_user
82 message = create(:message, :read)
83 session_for(create(:user))
85 delete message_read_mark_path(message)
86 assert_response :not_found
87 assert_template "no_such_message"
90 def test_destroy_as_sender
91 message = create(:message, :read)
92 session_for(message.sender)
94 delete message_read_mark_path(message)
95 assert_response :not_found
96 assert_template "no_such_message"
99 def test_destroy_as_recipient
100 message = create(:message, :read)
101 session_for(message.recipient)
103 delete message_read_mark_path(message)
104 assert_redirected_to messages_inbox_path
105 assert_not message.reload.message_read
108 def test_destroy_on_missing_message
109 session_for(create(:user))
111 delete message_read_mark_path(99999)
112 assert_response :not_found
113 assert_template "no_such_message"
116 def test_destroy_on_message_from_muted_user
117 sender_user = create(:user)
118 recipient_user = create(:user)
119 create(:user_mute, :owner => recipient_user, :subject => sender_user)
120 message = create(:message, :read, :sender => sender_user, :recipient => recipient_user)
121 session_for(recipient_user)
123 delete message_read_mark_path(message, :mark => "unread")
124 assert_redirected_to messages_muted_inbox_path
125 assert_not message.reload.message_read