58 lines
1.5 KiB
Ruby
58 lines
1.5 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe AnonymousShadowCreator do
|
|
|
|
it "returns no shadow by default" do
|
|
AnonymousShadowCreator.get(Fabricate.build(:user)).should == nil
|
|
end
|
|
|
|
it "returns no shadow if trust level is not met" do
|
|
SiteSetting.allow_anonymous_posting = true
|
|
AnonymousShadowCreator.get(Fabricate.build(:user, trust_level: 0)).should == nil
|
|
end
|
|
|
|
it "returns a new shadow once time expires" do
|
|
SiteSetting.allow_anonymous_posting = true
|
|
SiteSetting.anonymous_account_duration_minutes = 1
|
|
|
|
user = Fabricate(:user, trust_level: 3)
|
|
shadow = AnonymousShadowCreator.get(user)
|
|
|
|
freeze_time 2.minutes.from_now
|
|
shadow2 = AnonymousShadowCreator.get(user)
|
|
|
|
shadow.id.should == shadow2.id
|
|
create_post(user: shadow)
|
|
|
|
freeze_time 4.minutes.from_now
|
|
shadow3 = AnonymousShadowCreator.get(user)
|
|
|
|
shadow2.id.should_not == shadow3.id
|
|
|
|
end
|
|
|
|
it "returns a shadow for a legit user" do
|
|
SiteSetting.allow_anonymous_posting = true
|
|
user = Fabricate(:user, trust_level: 3)
|
|
|
|
shadow = AnonymousShadowCreator.get(user)
|
|
shadow2 = AnonymousShadowCreator.get(user)
|
|
|
|
shadow.id.should == shadow2.id
|
|
|
|
shadow.trust_level.should == 1
|
|
shadow.username.should == "anonymous"
|
|
|
|
shadow.created_at.should_not == user.created_at
|
|
|
|
|
|
p = create_post
|
|
Guardian.new(shadow).post_can_act?(p, :like).should == false
|
|
Guardian.new(user).post_can_act?(p, :like).should == true
|
|
|
|
user.anonymous?.should == false
|
|
shadow.anonymous?.should == true
|
|
end
|
|
|
|
end
|