1 # frozen_string_literal: true
 
   6   class MutesControllerTest < ActionDispatch::IntegrationTest
 
   8     # test all routes which lead to this controller
 
  11         { :path => "/messages/1/mute", :method => :delete },
 
  12         { :controller => "messages/mutes", :action => "destroy", :message_id => "1" }
 
  16     def test_destroy_when_not_logged_in
 
  17       sender_user = create(:user)
 
  18       recipient_user = create(:user)
 
  19       create(:user_mute, :owner => recipient_user, :subject => sender_user)
 
  20       message = create(:message, :unread, :sender => sender_user, :recipient => recipient_user)
 
  22       delete message_mute_path(message)
 
  23       assert_response :forbidden
 
  26     def test_destroy_as_other_user
 
  27       sender_user = create(:user)
 
  28       recipient_user = create(:user)
 
  29       create(:user_mute, :owner => recipient_user, :subject => sender_user)
 
  30       message = create(:message, :unread, :sender => sender_user, :recipient => recipient_user)
 
  31       session_for(create(:user))
 
  33       delete message_mute_path(message)
 
  34       assert_response :not_found
 
  35       assert_template "no_such_message"
 
  38     def test_destroy_as_sender
 
  39       sender_user = create(:user)
 
  40       recipient_user = create(:user)
 
  41       create(:user_mute, :owner => recipient_user, :subject => sender_user)
 
  42       message = create(:message, :unread, :sender => sender_user, :recipient => recipient_user)
 
  43       session_for(sender_user)
 
  45       delete message_mute_path(message)
 
  46       assert_response :not_found
 
  47       assert_template "no_such_message"
 
  50     def test_destroy_as_recipient
 
  51       sender_user = create(:user)
 
  52       recipient_user = create(:user)
 
  53       create(:user_mute, :owner => recipient_user, :subject => sender_user)
 
  54       message = create(:message, :unread, :sender => sender_user, :recipient => recipient_user)
 
  55       session_for(recipient_user)
 
  57       delete message_mute_path(message)
 
  58       assert_redirected_to messages_inbox_path
 
  59       assert_not message.reload.muted
 
  62     def test_destroy_on_missing_message
 
  63       session_for(create(:user))
 
  65       delete message_mute_path(99999)
 
  66       assert_response :not_found
 
  67       assert_template "no_such_message"