diff --git a/app/logical/spam_detector.rb b/app/logical/spam_detector.rb index d9c7b8ecd..53eee1fbc 100644 --- a/app/logical/spam_detector.rb +++ b/app/logical/spam_detector.rb @@ -52,6 +52,7 @@ class SpamDetector def spam? return false if !SpamDetector.enabled? return false if user.is_gold? + return false if user.created_at < 1.month.ago is_spam = super diff --git a/test/unit/spam_detector.rb b/test/unit/spam_detector.rb index abd98ccba..8a83e9b11 100644 --- a/test/unit/spam_detector.rb +++ b/test/unit/spam_detector.rb @@ -7,7 +7,7 @@ class SpamDetectorTest < ActiveSupport::TestCase SpamDetector.stubs(:enabled?).returns(true) @user = create(:gold_user, created_at: 1.month.ago) - @spammer = create(:user, created_at: 1.month.ago, email: "akismet-guaranteed-spam@example.com") + @spammer = create(:user, created_at: 2.weeks.ago, email: "akismet-guaranteed-spam@example.com") end context "for dmails" do @@ -27,6 +27,15 @@ class SpamDetectorTest < ActiveSupport::TestCase refute(dmail.is_spam?) end + should "not detect old users as spammers" do + @spammer.update!(created_at: 2.months.ago) + Dmail.create_split(from: @user, to: @spammer, title: "spam", body: "wonderful spam", creator_ip_addr: "127.0.0.1") + + dmail = @spammer.dmails.last + refute(SpamDetector.new(dmail).spam?) + refute(dmail.is_spam?) + end + should "log a message when spam is detected" do Rails.logger.expects(:info) Dmail.create_split(from: @spammer, to: @user, title: "spam", body: "wonderful spam", creator_ip_addr: "127.0.0.1")