diff --git a/app/models/dmail.rb b/app/models/dmail.rb index e3ce85aa1..40c4bf7b1 100644 --- a/app/models/dmail.rb +++ b/app/models/dmail.rb @@ -196,11 +196,12 @@ class Dmail < ActiveRecord::Base def auto_delete_if_filtered if owner_id != CurrentUser.user.id && to.dmail_filter.try(:filtered?, self) self.is_deleted = true + self.is_read = true end end def update_recipient - unless is_deleted + unless is_deleted? to.update_attribute(:has_mail, true) end end diff --git a/test/unit/dmail_test.rb b/test/unit/dmail_test.rb index ce71eb3f3..28b58f35d 100644 --- a/test/unit/dmail_test.rb +++ b/test/unit/dmail_test.rb @@ -29,7 +29,14 @@ class DmailTest < ActiveSupport::TestCase should "autodelete if it has a banned word" do @dmail.save - assert(@dmail.is_deleted) + assert_equal(true, @dmail.is_deleted?) + assert_equal(true, @dmail.is_read?) + end + + should "not update the recipient's has_mail if filtered" do + @dmail.save + @recipient.reload + assert_equal(false, @recipient.has_mail?) end context "that is empty" do