53 lines
1.6 KiB
Ruby
53 lines
1.6 KiB
Ruby
require_relative '../test_helper'
|
|
|
|
class PostModerationDetailTest < ActiveSupport::TestCase
|
|
setup do
|
|
user = Factory.create(:user)
|
|
CurrentUser.user = user
|
|
CurrentUser.ip_addr = "127.0.0.1"
|
|
MEMCACHE.flush_all
|
|
end
|
|
|
|
teardown do
|
|
CurrentUser.user = nil
|
|
CurrentUser.ip_addr = nil
|
|
end
|
|
|
|
context "A post moderation detail" do
|
|
should "hide posts" do
|
|
posts = []
|
|
posts << Factory.create(:post)
|
|
posts << Factory.create(:post)
|
|
posts << Factory.create(:post)
|
|
user = Factory.create(:user)
|
|
detail = PostModerationDetail.create(:user => user, :post => posts[0])
|
|
results = PostModerationDetail.filter(posts, user)
|
|
assert_equal(2, results.size)
|
|
assert(results.all? {|x| x.id != posts[0].id})
|
|
results = PostModerationDetail.filter(posts, user, true)
|
|
assert_equal(1, results.size)
|
|
assert_equal(posts[0].id, results[0].id)
|
|
user = Factory.create(:user)
|
|
results = PostModerationDetail.filter(posts, user)
|
|
assert_equal(3, results.size)
|
|
results = PostModerationDetail.filter(posts, user, true)
|
|
assert_equal(0, results.size)
|
|
end
|
|
|
|
should "prune itself" do
|
|
post = Factory.create(:post, :is_flagged => true)
|
|
user = Factory.create(:user)
|
|
detail = PostModerationDetail.create(:user => user, :post => post)
|
|
assert_difference("PostModerationDetail.count", 0) do
|
|
PostModerationDetail.prune!
|
|
end
|
|
post.is_flagged = false
|
|
post.save
|
|
assert(post.errors.empty?)
|
|
assert_difference("PostModerationDetail.count", -1) do
|
|
PostModerationDetail.prune!
|
|
end
|
|
end
|
|
end
|
|
end
|