diff --git a/app/models/dmail_filter.rb b/app/models/dmail_filter.rb index 6d40f28e6..67c24f3b3 100644 --- a/app/models/dmail_filter.rb +++ b/app/models/dmail_filter.rb @@ -11,7 +11,11 @@ class DmailFilter < ActiveRecord::Base end def filtered?(dmail) - dmail.from.level <= User::Levels::MODERATOR && (dmail.body =~ regexp || dmail.subject =~ regexp) + dmail.from.level <= User::Levels::MODERATOR && has_filter? && (dmail.body =~ regexp || dmail.subject =~ regexp) + end + + def has_filter? + !words.strip.empty? end def regexp diff --git a/test/unit/dmail_test.rb b/test/unit/dmail_test.rb index 5508aaac9..ce71eb3f3 100644 --- a/test/unit/dmail_test.rb +++ b/test/unit/dmail_test.rb @@ -31,6 +31,16 @@ class DmailTest < ActiveSupport::TestCase @dmail.save assert(@dmail.is_deleted) end + + context "that is empty" do + setup do + @recipient.dmail_filter.update_attributes(:words => " ") + end + + should "not filter everything" do + assert(!@recipient.dmail_filter.filtered?(@dmail)) + end + end end context "from a banned user" do