discourse/spec/integration/same_ip_spammers_spec.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

74 lines
2.4 KiB
Ruby
Raw Normal View History

# encoding: UTF-8
# frozen_string_literal: true
RSpec.describe "spammers on same IP" do
2016-12-12 20:59:38 -05:00
let(:ip_address) { "182.189.119.174" }
let!(:spammer1) { Fabricate(:user, ip_address: ip_address, refresh_auto_groups: true) }
let!(:spammer2) { Fabricate(:user, ip_address: ip_address, refresh_auto_groups: true) }
let(:spammer3) { Fabricate(:user, ip_address: ip_address, refresh_auto_groups: true) }
context "when flag_sockpuppets is disabled" do
2016-12-12 20:59:38 -05:00
let!(:first_post) { create_post(user: spammer1) }
let!(:second_post) { create_post(user: spammer2, topic: first_post.topic) }
2016-12-12 20:59:38 -05:00
it "should not increase spam count" do
expect(first_post.reload.spam_count).to eq(0)
expect(second_post.reload.spam_count).to eq(0)
end
end
context "when flag_sockpuppets is enabled" do
2016-12-12 20:59:38 -05:00
before { SiteSetting.flag_sockpuppets = true }
after { SiteSetting.flag_sockpuppets = false }
context "when first spammer starts a topic" do
2016-12-12 20:59:38 -05:00
let!(:first_post) { create_post(user: spammer1) }
context "when second spammer replies" do
2016-12-12 20:59:38 -05:00
let!(:second_post) { create_post(user: spammer2, topic: first_post.topic) }
2016-12-12 20:59:38 -05:00
it "should increase spam count" do
expect(first_post.reload.spam_count).to eq(1)
expect(second_post.reload.spam_count).to eq(1)
end
context "with third spam post" do
2016-12-12 20:59:38 -05:00
let!(:third_post) { create_post(user: spammer3, topic: first_post.topic) }
2016-12-12 20:59:38 -05:00
it "should increase spam count" do
expect(first_post.reload.spam_count).to eq(1)
expect(second_post.reload.spam_count).to eq(1)
expect(third_post.reload.spam_count).to eq(1)
end
end
end
end
context "when first user is not new" do
2016-12-12 20:59:38 -05:00
let!(:old_user) do
Fabricate(
:user,
ip_address: ip_address,
created_at: 2.days.ago,
trust_level: TrustLevel[1],
refresh_auto_groups: true,
)
end
context "when first user starts a topic" do
2016-12-12 20:59:38 -05:00
let!(:first_post) { create_post(user: old_user) }
context "with a reply by a new user at the same IP address" do
2016-12-12 20:59:38 -05:00
let!(:second_post) { create_post(user: spammer2, topic: first_post.topic) }
2016-12-12 20:59:38 -05:00
it "should increase the spam count correctly" do
expect(first_post.reload.spam_count).to eq(0)
expect(second_post.reload.spam_count).to eq(1)
end
end
end
end
end
end