mirror of
https://github.com/discourse/discourse.git
synced 2025-05-30 15:28:37 +08:00
Internal renaming of elder,leader,regular,basic to numbers
Changed internals so trust levels are referred to with TrustLevel[1], TrustLevel[2] etc. This gives us much better flexibility naming trust levels, these names are meant to be controlled by various communities.
This commit is contained in:
@ -13,12 +13,12 @@ describe CategoryFeaturedTopic do
|
||||
it "should feature topics for a secure category" do
|
||||
|
||||
# so much dancing, I am thinking fixures make sense here.
|
||||
user.change_trust_level!(:basic)
|
||||
user.change_trust_level!(TrustLevel[1])
|
||||
|
||||
category.set_permissions(:trust_level_1 => :full)
|
||||
category.save
|
||||
|
||||
uncategorized_post = PostCreator.create(user, raw: "this is my new post 123 post", title: "hello world")
|
||||
_uncategorized_post = PostCreator.create(user, raw: "this is my new post 123 post", title: "hello world")
|
||||
|
||||
CategoryFeaturedTopic.feature_topics_for(category)
|
||||
CategoryFeaturedTopic.count.should == 1
|
||||
|
@ -81,17 +81,17 @@ describe Group do
|
||||
user = Fabricate(:user)
|
||||
Group[:trust_level_0].user_ids.should include user.id
|
||||
|
||||
user.change_trust_level!(:basic)
|
||||
user.change_trust_level!(TrustLevel[1])
|
||||
|
||||
Group[:trust_level_1].user_ids.should include user.id
|
||||
|
||||
user.change_trust_level!(:regular)
|
||||
user.change_trust_level!(TrustLevel[2])
|
||||
|
||||
Group[:trust_level_1].user_ids.should include user.id
|
||||
Group[:trust_level_2].user_ids.should include user.id
|
||||
|
||||
user2 = Fabricate(:coding_horror)
|
||||
user2.change_trust_level!(:regular)
|
||||
user2.change_trust_level!(TrustLevel[3])
|
||||
|
||||
Group[:trust_level_2].user_ids.sort.should == [-1, user.id, user2.id].sort
|
||||
end
|
||||
@ -99,7 +99,7 @@ describe Group do
|
||||
it "Correctly updates all automatic groups upon request" do
|
||||
Fabricate(:admin)
|
||||
user = Fabricate(:user)
|
||||
user.change_trust_level!(:regular)
|
||||
user.change_trust_level!(TrustLevel[2])
|
||||
|
||||
Group.exec_sql("update groups set user_count=0 where id = #{Group::AUTO_GROUPS[:trust_level_2]}")
|
||||
|
||||
|
@ -158,8 +158,8 @@ describe Invite do
|
||||
|
||||
context "invite trust levels" do
|
||||
it "returns the trust level in default_invitee_trust_level" do
|
||||
SiteSetting.stubs(:default_invitee_trust_level).returns(TrustLevel.levels[:leader])
|
||||
invite.redeem.trust_level.should == TrustLevel.levels[:leader]
|
||||
SiteSetting.stubs(:default_invitee_trust_level).returns(TrustLevel[3])
|
||||
invite.redeem.trust_level.should == TrustLevel[3]
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -104,7 +104,7 @@ describe Post do
|
||||
end
|
||||
|
||||
describe "maximum images" do
|
||||
let(:newuser) { Fabricate(:user, trust_level: TrustLevel.levels[:newuser]) }
|
||||
let(:newuser) { Fabricate(:user, trust_level: TrustLevel[0]) }
|
||||
let(:post_no_images) { Fabricate.build(:post, post_args.merge(user: newuser)) }
|
||||
let(:post_one_image) { post_with_body("", newuser) }
|
||||
let(:post_two_images) { post_with_body("<img src='http://discourse.org/logo.png'> <img src='http://bbc.co.uk/sherlock.jpg'>", newuser) }
|
||||
@ -158,7 +158,7 @@ describe Post do
|
||||
end
|
||||
|
||||
it "doesn't allow a new user to edit their post to insert an image" do
|
||||
post_no_images.user.trust_level = TrustLevel.levels[:new]
|
||||
post_no_images.user.trust_level = TrustLevel[0]
|
||||
post_no_images.save
|
||||
-> {
|
||||
post_no_images.revise(post_no_images.user, post_two_images.raw)
|
||||
@ -168,7 +168,7 @@ describe Post do
|
||||
end
|
||||
|
||||
it "allows more images from a not-new account" do
|
||||
post_two_images.user.trust_level = TrustLevel.levels[:basic]
|
||||
post_two_images.user.trust_level = TrustLevel[1]
|
||||
post_two_images.should be_valid
|
||||
end
|
||||
|
||||
@ -177,7 +177,7 @@ describe Post do
|
||||
end
|
||||
|
||||
describe "maximum attachments" do
|
||||
let(:newuser) { Fabricate(:user, trust_level: TrustLevel.levels[:newuser]) }
|
||||
let(:newuser) { Fabricate(:user, trust_level: TrustLevel[0]) }
|
||||
let(:post_no_attachments) { Fabricate.build(:post, post_args.merge(user: newuser)) }
|
||||
let(:post_one_attachment) { post_with_body('<a class="attachment" href="/uploads/default/1/2082985.txt">file.txt</a>', newuser) }
|
||||
let(:post_two_attachments) { post_with_body('<a class="attachment" href="/uploads/default/2/20947092.log">errors.log</a> <a class="attachment" href="/uploads/default/3/283572385.3ds">model.3ds</a>', newuser) }
|
||||
@ -206,7 +206,7 @@ describe Post do
|
||||
end
|
||||
|
||||
it "doesn't allow a new user to edit their post to insert an attachment" do
|
||||
post_no_attachments.user.trust_level = TrustLevel.levels[:new]
|
||||
post_no_attachments.user.trust_level = TrustLevel[0]
|
||||
post_no_attachments.save
|
||||
-> {
|
||||
post_no_attachments.revise(post_no_attachments.user, post_two_attachments.raw)
|
||||
@ -216,7 +216,7 @@ describe Post do
|
||||
end
|
||||
|
||||
it "allows more attachments from a not-new account" do
|
||||
post_two_attachments.user.trust_level = TrustLevel.levels[:basic]
|
||||
post_two_attachments.user.trust_level = TrustLevel[1]
|
||||
post_two_attachments.should be_valid
|
||||
end
|
||||
|
||||
@ -225,7 +225,7 @@ describe Post do
|
||||
end
|
||||
|
||||
context "links" do
|
||||
let(:newuser) { Fabricate(:user, trust_level: TrustLevel.levels[:newuser]) }
|
||||
let(:newuser) { Fabricate(:user, trust_level: TrustLevel[0]) }
|
||||
let(:no_links) { post_with_body("hello world my name is evil trout", newuser) }
|
||||
let(:one_link) { post_with_body("[jlawr](http://www.imdb.com/name/nm2225369)", newuser) }
|
||||
let(:two_links) { post_with_body("<a href='http://disneyland.disney.go.com/'>disney</a> <a href='http://reddit.com'>reddit</a>", newuser)}
|
||||
@ -292,7 +292,7 @@ describe Post do
|
||||
|
||||
|
||||
describe "maximum links" do
|
||||
let(:newuser) { Fabricate(:user, trust_level: TrustLevel.levels[:newuser]) }
|
||||
let(:newuser) { Fabricate(:user, trust_level: TrustLevel[0]) }
|
||||
let(:post_one_link) { post_with_body("[sherlock](http://www.bbc.co.uk/programmes/b018ttws)", newuser) }
|
||||
let(:post_two_links) { post_with_body("<a href='http://discourse.org'>discourse</a> <a href='http://twitter.com'>twitter</a>", newuser) }
|
||||
let(:post_with_mentions) { post_with_body("hello @#{newuser.username} how are you doing?", newuser) }
|
||||
@ -330,7 +330,7 @@ describe Post do
|
||||
end
|
||||
|
||||
it "allows multiple images for basic accounts" do
|
||||
post_two_links.user.trust_level = TrustLevel.levels[:basic]
|
||||
post_two_links.user.trust_level = TrustLevel[1]
|
||||
post_two_links.should be_valid
|
||||
end
|
||||
|
||||
@ -382,7 +382,7 @@ describe Post do
|
||||
|
||||
context "max mentions" do
|
||||
|
||||
let(:newuser) { Fabricate(:user, trust_level: TrustLevel.levels[:newuser]) }
|
||||
let(:newuser) { Fabricate(:user, trust_level: TrustLevel[0]) }
|
||||
let(:post_with_one_mention) { post_with_body("@Jake is the person I'm mentioning", newuser) }
|
||||
let(:post_with_two_mentions) { post_with_body("@Jake @Finn are the people I'm mentioning", newuser) }
|
||||
|
||||
@ -408,12 +408,12 @@ describe Post do
|
||||
end
|
||||
|
||||
it "allows vmax_mentions_per_post mentions" do
|
||||
post_with_one_mention.user.trust_level = TrustLevel.levels[:basic]
|
||||
post_with_one_mention.user.trust_level = TrustLevel[1]
|
||||
post_with_one_mention.should be_valid
|
||||
end
|
||||
|
||||
it "doesn't allow to have more than max_mentions_per_post mentions" do
|
||||
post_with_two_mentions.user.trust_level = TrustLevel.levels[:basic]
|
||||
post_with_two_mentions.user.trust_level = TrustLevel[1]
|
||||
post_with_two_mentions.should_not be_valid
|
||||
end
|
||||
end
|
||||
|
@ -131,16 +131,16 @@ describe Report do
|
||||
|
||||
context "with users at different trust levels" do
|
||||
before do
|
||||
3.times { Fabricate(:user, trust_level: TrustLevel.levels[:newuser]) }
|
||||
2.times { Fabricate(:user, trust_level: TrustLevel.levels[:regular]) }
|
||||
Fabricate(:user, trust_level: TrustLevel.levels[:elder])
|
||||
3.times { Fabricate(:user, trust_level: TrustLevel[0]) }
|
||||
2.times { Fabricate(:user, trust_level: TrustLevel[2]) }
|
||||
Fabricate(:user, trust_level: TrustLevel[4])
|
||||
end
|
||||
|
||||
it "returns a report with data" do
|
||||
report.data.should be_present
|
||||
report.data.find {|d| d[:x] == TrustLevel.levels[:newuser]}[:y].should == 3
|
||||
report.data.find {|d| d[:x] == TrustLevel.levels[:regular]}[:y].should == 2
|
||||
report.data.find {|d| d[:x] == TrustLevel.levels[:elder]}[:y].should == 1
|
||||
report.data.find {|d| d[:x] == TrustLevel[0]}[:y].should == 3
|
||||
report.data.find {|d| d[:x] == TrustLevel[2]}[:y].should == 2
|
||||
report.data.find {|d| d[:x] == TrustLevel[4]}[:y].should == 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -1,64 +1,64 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe LeaderRequirements do
|
||||
describe TrustLevel3Requirements do
|
||||
|
||||
let(:user) { Fabricate.build(:user) }
|
||||
subject(:leader_requirements) { described_class.new(user) }
|
||||
subject(:tl3_requirements) { described_class.new(user) }
|
||||
|
||||
before do
|
||||
described_class.clear_cache
|
||||
end
|
||||
|
||||
def make_view(id, at, user_id)
|
||||
TopicViewItem.add(id, '11.22.33.44', user_id, at)
|
||||
TopicViewItem.add(id, '11.22.33.44', user_id, at, _skip_redis=true)
|
||||
end
|
||||
|
||||
describe "requirements" do
|
||||
it "min_days_visited uses site setting" do
|
||||
SiteSetting.stubs(:tl3_requires_days_visited).returns(66)
|
||||
leader_requirements.min_days_visited.should == 66
|
||||
tl3_requirements.min_days_visited.should == 66
|
||||
end
|
||||
|
||||
it "min_topics_replied_to uses site setting" do
|
||||
SiteSetting.stubs(:tl3_requires_topics_replied_to).returns(12)
|
||||
leader_requirements.min_topics_replied_to.should == 12
|
||||
tl3_requirements.min_topics_replied_to.should == 12
|
||||
end
|
||||
|
||||
it "min_topics_viewed depends on site setting and number of topics created" do
|
||||
SiteSetting.stubs(:tl3_requires_topics_viewed).returns(75)
|
||||
described_class.stubs(:num_topics_in_time_period).returns(31)
|
||||
leader_requirements.min_topics_viewed.should == 23
|
||||
tl3_requirements.min_topics_viewed.should == 23
|
||||
end
|
||||
|
||||
it "min_posts_read depends on site setting and number of posts created" do
|
||||
SiteSetting.stubs(:tl3_requires_posts_read).returns(66)
|
||||
described_class.stubs(:num_posts_in_time_period).returns(1234)
|
||||
leader_requirements.min_posts_read.should == 814
|
||||
tl3_requirements.min_posts_read.should == 814
|
||||
end
|
||||
|
||||
it "min_topics_viewed_all_time depends on site setting" do
|
||||
SiteSetting.stubs(:tl3_requires_topics_viewed_all_time).returns(75)
|
||||
leader_requirements.min_topics_viewed_all_time.should == 75
|
||||
tl3_requirements.min_topics_viewed_all_time.should == 75
|
||||
end
|
||||
|
||||
it "min_posts_read_all_time depends on site setting" do
|
||||
SiteSetting.stubs(:tl3_requires_posts_read_all_time).returns(1001)
|
||||
leader_requirements.min_posts_read_all_time.should == 1001
|
||||
tl3_requirements.min_posts_read_all_time.should == 1001
|
||||
end
|
||||
|
||||
it "max_flagged_posts depends on site setting" do
|
||||
SiteSetting.stubs(:tl3_requires_max_flagged).returns(3)
|
||||
leader_requirements.max_flagged_posts.should == 3
|
||||
tl3_requirements.max_flagged_posts.should == 3
|
||||
end
|
||||
|
||||
it "min_likes_given depends on site setting" do
|
||||
SiteSetting.stubs(:tl3_requires_likes_given).returns(30)
|
||||
leader_requirements.min_likes_given.should == 30
|
||||
tl3_requirements.min_likes_given.should == 30
|
||||
end
|
||||
|
||||
it "min_likes_received depends on site setting" do
|
||||
SiteSetting.stubs(:tl3_requires_likes_received).returns(20)
|
||||
leader_requirements.min_likes_received.should == 20
|
||||
tl3_requirements.min_likes_received.should == 20
|
||||
end
|
||||
end
|
||||
|
||||
@ -69,7 +69,7 @@ describe LeaderRequirements do
|
||||
user.update_posts_read!(1, 3.days.ago)
|
||||
user.update_posts_read!(0, 4.days.ago)
|
||||
user.update_posts_read!(3, 101.days.ago)
|
||||
leader_requirements.days_visited.should == 2
|
||||
tl3_requirements.days_visited.should == 2
|
||||
end
|
||||
end
|
||||
|
||||
@ -77,16 +77,16 @@ describe LeaderRequirements do
|
||||
it "counts topics in which user replied in last 100 days" do
|
||||
user.save
|
||||
|
||||
not_a_reply = create_post(user: user) # user created the topic, so it doesn't count
|
||||
_not_a_reply = create_post(user: user) # user created the topic, so it doesn't count
|
||||
|
||||
topic1 = create_post.topic
|
||||
reply1 = create_post(topic: topic1, user: user)
|
||||
reply_again = create_post(topic: topic1, user: user) # two replies in one topic
|
||||
_reply1 = create_post(topic: topic1, user: user)
|
||||
_reply_again = create_post(topic: topic1, user: user) # two replies in one topic
|
||||
|
||||
topic2 = create_post(created_at: 101.days.ago).topic
|
||||
reply2 = create_post(topic: topic2, user: user, created_at: 101.days.ago) # topic is over 100 days old
|
||||
_reply2 = create_post(topic: topic2, user: user, created_at: 101.days.ago) # topic is over 100 days old
|
||||
|
||||
leader_requirements.num_topics_replied_to.should == 1
|
||||
tl3_requirements.num_topics_replied_to.should == 1
|
||||
end
|
||||
end
|
||||
|
||||
@ -97,7 +97,7 @@ describe LeaderRequirements do
|
||||
make_view(9, 3.days.ago, user.id) # same topic, different day
|
||||
make_view(3, 4.days.ago, user.id)
|
||||
make_view(2, 101.days.ago, user.id) # too long ago
|
||||
leader_requirements.topics_viewed.should == 2
|
||||
tl3_requirements.topics_viewed.should == 2
|
||||
end
|
||||
end
|
||||
|
||||
@ -108,7 +108,7 @@ describe LeaderRequirements do
|
||||
user.update_posts_read!(1, 3.days.ago)
|
||||
user.update_posts_read!(0, 4.days.ago)
|
||||
user.update_posts_read!(5, 101.days.ago)
|
||||
leader_requirements.posts_read.should == 4
|
||||
tl3_requirements.posts_read.should == 4
|
||||
end
|
||||
end
|
||||
|
||||
@ -118,7 +118,7 @@ describe LeaderRequirements do
|
||||
make_view(10, 1.day.ago, user.id)
|
||||
make_view(9, 100.days.ago, user.id)
|
||||
make_view(8, 101.days.ago, user.id)
|
||||
leader_requirements.topics_viewed_all_time.should == 3
|
||||
tl3_requirements.topics_viewed_all_time.should == 3
|
||||
end
|
||||
end
|
||||
|
||||
@ -127,7 +127,7 @@ describe LeaderRequirements do
|
||||
user.save
|
||||
user.update_posts_read!(3, 2.days.ago)
|
||||
user.update_posts_read!(1, 101.days.ago)
|
||||
leader_requirements.posts_read_all_time.should == 4
|
||||
tl3_requirements.posts_read_all_time.should == 4
|
||||
end
|
||||
end
|
||||
|
||||
@ -138,11 +138,11 @@ describe LeaderRequirements do
|
||||
Fabricate(:flag, post: Fabricate(:post, user: user), post_action_type_id: PostActionType.types[t], agreed_at: 1.minute.ago)
|
||||
end
|
||||
|
||||
deferred_flags = [:off_topic, :inappropriate, :notify_user, :notify_moderators, :spam].map do |t|
|
||||
_deferred_flags = [:off_topic, :inappropriate, :notify_user, :notify_moderators, :spam].map do |t|
|
||||
Fabricate(:flag, post: Fabricate(:post, user: user), post_action_type_id: PostActionType.types[t], deferred_at: 1.minute.ago)
|
||||
end
|
||||
|
||||
deleted_flags = [:off_topic, :inappropriate, :notify_user, :notify_moderators, :spam].map do |t|
|
||||
_deleted_flags = [:off_topic, :inappropriate, :notify_user, :notify_moderators, :spam].map do |t|
|
||||
Fabricate(:flag, post: Fabricate(:post, user: user), post_action_type_id: PostActionType.types[t], deleted_at: 1.minute.ago)
|
||||
end
|
||||
|
||||
@ -157,8 +157,8 @@ describe LeaderRequirements do
|
||||
end
|
||||
|
||||
it "num_flagged_posts and num_flagged_by_users count spam and inappropriate agreed flags in the last 100 days" do
|
||||
leader_requirements.num_flagged_posts.should == 2
|
||||
leader_requirements.num_flagged_by_users.should == 3
|
||||
tl3_requirements.num_flagged_posts.should == 2
|
||||
tl3_requirements.num_flagged_by_users.should == 3
|
||||
end
|
||||
end
|
||||
|
||||
@ -174,7 +174,7 @@ describe LeaderRequirements do
|
||||
Fabricate(:like, user: user, post: recent_post2, created_at: 5.days.ago)
|
||||
Fabricate(:like, user: user, post: old_post, created_at: 101.days.ago)
|
||||
|
||||
leader_requirements.num_likes_given.should == 2
|
||||
tl3_requirements.num_likes_given.should == 2
|
||||
end
|
||||
end
|
||||
|
||||
@ -192,103 +192,103 @@ describe LeaderRequirements do
|
||||
Fabricate(:like, user: liker, post: recent_post2, created_at: 5.days.ago)
|
||||
Fabricate(:like, user: liker, post: old_post, created_at: 101.days.ago)
|
||||
|
||||
leader_requirements.num_likes_received.should == 2
|
||||
tl3_requirements.num_likes_received.should == 2
|
||||
end
|
||||
end
|
||||
|
||||
describe "requirements" do
|
||||
|
||||
before do
|
||||
leader_requirements.stubs(:min_days_visited).returns(50)
|
||||
leader_requirements.stubs(:min_topics_replied_to).returns(10)
|
||||
leader_requirements.stubs(:min_topics_viewed).returns(25)
|
||||
leader_requirements.stubs(:min_posts_read).returns(25)
|
||||
leader_requirements.stubs(:min_topics_viewed_all_time).returns(200)
|
||||
leader_requirements.stubs(:min_posts_read_all_time).returns(500)
|
||||
leader_requirements.stubs(:max_flagged_posts).returns(5)
|
||||
leader_requirements.stubs(:max_flagged_by_users).returns(5)
|
||||
leader_requirements.stubs(:min_likes_given).returns(30)
|
||||
leader_requirements.stubs(:min_likes_received).returns(20)
|
||||
tl3_requirements.stubs(:min_days_visited).returns(50)
|
||||
tl3_requirements.stubs(:min_topics_replied_to).returns(10)
|
||||
tl3_requirements.stubs(:min_topics_viewed).returns(25)
|
||||
tl3_requirements.stubs(:min_posts_read).returns(25)
|
||||
tl3_requirements.stubs(:min_topics_viewed_all_time).returns(200)
|
||||
tl3_requirements.stubs(:min_posts_read_all_time).returns(500)
|
||||
tl3_requirements.stubs(:max_flagged_posts).returns(5)
|
||||
tl3_requirements.stubs(:max_flagged_by_users).returns(5)
|
||||
tl3_requirements.stubs(:min_likes_given).returns(30)
|
||||
tl3_requirements.stubs(:min_likes_received).returns(20)
|
||||
|
||||
leader_requirements.stubs(:days_visited).returns(50)
|
||||
leader_requirements.stubs(:num_topics_replied_to).returns(10)
|
||||
leader_requirements.stubs(:topics_viewed).returns(25)
|
||||
leader_requirements.stubs(:posts_read).returns(25)
|
||||
leader_requirements.stubs(:topics_viewed_all_time).returns(200)
|
||||
leader_requirements.stubs(:posts_read_all_time).returns(500)
|
||||
leader_requirements.stubs(:num_flagged_posts).returns(0)
|
||||
leader_requirements.stubs(:num_flagged_by_users).returns(0)
|
||||
leader_requirements.stubs(:num_likes_given).returns(30)
|
||||
leader_requirements.stubs(:num_likes_received).returns(20)
|
||||
tl3_requirements.stubs(:days_visited).returns(50)
|
||||
tl3_requirements.stubs(:num_topics_replied_to).returns(10)
|
||||
tl3_requirements.stubs(:topics_viewed).returns(25)
|
||||
tl3_requirements.stubs(:posts_read).returns(25)
|
||||
tl3_requirements.stubs(:topics_viewed_all_time).returns(200)
|
||||
tl3_requirements.stubs(:posts_read_all_time).returns(500)
|
||||
tl3_requirements.stubs(:num_flagged_posts).returns(0)
|
||||
tl3_requirements.stubs(:num_flagged_by_users).returns(0)
|
||||
tl3_requirements.stubs(:num_likes_given).returns(30)
|
||||
tl3_requirements.stubs(:num_likes_received).returns(20)
|
||||
end
|
||||
|
||||
it "are met when all requirements are met" do
|
||||
leader_requirements.requirements_met?.should == true
|
||||
tl3_requirements.requirements_met?.should == true
|
||||
end
|
||||
|
||||
it "are not met if too few days visited" do
|
||||
leader_requirements.stubs(:days_visited).returns(49)
|
||||
leader_requirements.requirements_met?.should == false
|
||||
tl3_requirements.stubs(:days_visited).returns(49)
|
||||
tl3_requirements.requirements_met?.should == false
|
||||
end
|
||||
|
||||
it "are not lost if requirements are close" do
|
||||
leader_requirements.stubs(:days_visited).returns(45)
|
||||
leader_requirements.stubs(:num_topics_replied_to).returns(9)
|
||||
leader_requirements.stubs(:topics_viewed).returns(23)
|
||||
leader_requirements.stubs(:posts_read).returns(23)
|
||||
leader_requirements.stubs(:num_likes_given).returns(29)
|
||||
leader_requirements.stubs(:num_likes_received).returns(19)
|
||||
leader_requirements.requirements_lost?.should == false
|
||||
tl3_requirements.stubs(:days_visited).returns(45)
|
||||
tl3_requirements.stubs(:num_topics_replied_to).returns(9)
|
||||
tl3_requirements.stubs(:topics_viewed).returns(23)
|
||||
tl3_requirements.stubs(:posts_read).returns(23)
|
||||
tl3_requirements.stubs(:num_likes_given).returns(29)
|
||||
tl3_requirements.stubs(:num_likes_received).returns(19)
|
||||
tl3_requirements.requirements_lost?.should == false
|
||||
end
|
||||
|
||||
it "are lost if not enough visited" do
|
||||
leader_requirements.stubs(:days_visited).returns(44)
|
||||
leader_requirements.requirements_lost?.should == true
|
||||
tl3_requirements.stubs(:days_visited).returns(44)
|
||||
tl3_requirements.requirements_lost?.should == true
|
||||
end
|
||||
|
||||
it "are lost if not enough topics replied to" do
|
||||
leader_requirements.stubs(:num_topics_replied_to).returns(8)
|
||||
leader_requirements.requirements_lost?.should == true
|
||||
tl3_requirements.stubs(:num_topics_replied_to).returns(8)
|
||||
tl3_requirements.requirements_lost?.should == true
|
||||
end
|
||||
|
||||
it "are lost if not enough topics viewed" do
|
||||
leader_requirements.stubs(:topics_viewed).returns(22)
|
||||
leader_requirements.requirements_lost?.should == true
|
||||
tl3_requirements.stubs(:topics_viewed).returns(22)
|
||||
tl3_requirements.requirements_lost?.should == true
|
||||
end
|
||||
|
||||
it "are lost if not enough posts read" do
|
||||
leader_requirements.stubs(:posts_read).returns(22)
|
||||
leader_requirements.requirements_lost?.should == true
|
||||
tl3_requirements.stubs(:posts_read).returns(22)
|
||||
tl3_requirements.requirements_lost?.should == true
|
||||
end
|
||||
|
||||
it "are not met if not enough likes given" do
|
||||
leader_requirements.stubs(:num_likes_given).returns(29)
|
||||
leader_requirements.requirements_met?.should == false
|
||||
tl3_requirements.stubs(:num_likes_given).returns(29)
|
||||
tl3_requirements.requirements_met?.should == false
|
||||
end
|
||||
|
||||
it "are not met if not enough likes received" do
|
||||
leader_requirements.stubs(:num_likes_received).returns(19)
|
||||
leader_requirements.requirements_met?.should == false
|
||||
tl3_requirements.stubs(:num_likes_received).returns(19)
|
||||
tl3_requirements.requirements_met?.should == false
|
||||
end
|
||||
|
||||
it "are lost if not enough likes given" do
|
||||
leader_requirements.stubs(:num_likes_given).returns(26)
|
||||
leader_requirements.requirements_lost?.should == true
|
||||
tl3_requirements.stubs(:num_likes_given).returns(26)
|
||||
tl3_requirements.requirements_lost?.should == true
|
||||
end
|
||||
|
||||
it "are lost if not enough likes received" do
|
||||
leader_requirements.stubs(:num_likes_received).returns(17)
|
||||
leader_requirements.requirements_lost?.should == true
|
||||
tl3_requirements.stubs(:num_likes_received).returns(17)
|
||||
tl3_requirements.requirements_lost?.should == true
|
||||
end
|
||||
|
||||
it "are not met if suspended" do
|
||||
user.stubs(:suspended?).returns(true)
|
||||
leader_requirements.requirements_met?.should == false
|
||||
tl3_requirements.requirements_met?.should == false
|
||||
end
|
||||
|
||||
it "are lost if suspended" do
|
||||
user.stubs(:suspended?).returns(true)
|
||||
leader_requirements.requirements_lost?.should == true
|
||||
tl3_requirements.requirements_lost?.should == true
|
||||
end
|
||||
end
|
||||
|
@ -92,7 +92,7 @@ describe UserProfile do
|
||||
end
|
||||
|
||||
it 'removes the link if the user is new' do
|
||||
user.trust_level = TrustLevel.levels[:newuser]
|
||||
user.trust_level = TrustLevel[0]
|
||||
user_profile.send(:cook)
|
||||
expect(user_profile.bio_excerpt).to match_html("I love http://discourse.org")
|
||||
expect(user_profile.bio_processed).to eq("<p>I love http://discourse.org</p>")
|
||||
@ -102,22 +102,22 @@ describe UserProfile do
|
||||
before { SiteSetting.stubs(:tl3_links_no_follow).returns(false) }
|
||||
|
||||
it 'includes the link without nofollow if the user is trust level 3 or higher' do
|
||||
user.trust_level = TrustLevel.levels[:leader]
|
||||
user.trust_level = TrustLevel[3]
|
||||
user_profile.send(:cook)
|
||||
expect(user_profile.bio_excerpt).to match_html("I love <a href='http://discourse.org'>http://discourse.org</a>")
|
||||
expect(user_profile.bio_processed).to match_html("<p>I love <a href=\"http://discourse.org\">http://discourse.org</a></p>")
|
||||
end
|
||||
|
||||
it 'removes nofollow from links in bio when trust level is increased' do
|
||||
created_user.change_trust_level!(:leader)
|
||||
created_user.change_trust_level!(TrustLevel[3])
|
||||
expect(created_user.user_profile.bio_excerpt).to match_html("I love <a href='http://discourse.org'>http://discourse.org</a>")
|
||||
expect(created_user.user_profile.bio_processed).to match_html("<p>I love <a href=\"http://discourse.org\">http://discourse.org</a></p>")
|
||||
end
|
||||
|
||||
it 'adds nofollow to links in bio when trust level is decreased' do
|
||||
created_user.trust_level = TrustLevel.levels[:leader]
|
||||
created_user.trust_level = TrustLevel[3]
|
||||
created_user.save
|
||||
created_user.change_trust_level!(:regular)
|
||||
created_user.change_trust_level!(TrustLevel[2])
|
||||
expect(created_user.user_profile.bio_excerpt).to match_html("I love <a href='http://discourse.org' rel='nofollow'>http://discourse.org</a>")
|
||||
expect(created_user.user_profile.bio_processed).to match_html("<p>I love <a href=\"http://discourse.org\" rel=\"nofollow\">http://discourse.org</a></p>")
|
||||
end
|
||||
@ -127,7 +127,7 @@ describe UserProfile do
|
||||
before { SiteSetting.stubs(:tl3_links_no_follow).returns(true) }
|
||||
|
||||
it 'includes the link with nofollow if the user is trust level 3 or higher' do
|
||||
user.trust_level = TrustLevel.levels[:leader]
|
||||
user.trust_level = TrustLevel[3]
|
||||
user_profile.send(:cook)
|
||||
expect(user_profile.bio_excerpt).to match_html("I love <a href='http://discourse.org' rel='nofollow'>http://discourse.org</a>")
|
||||
expect(user_profile.bio_processed).to match_html("<p>I love <a href=\"http://discourse.org\" rel=\"nofollow\">http://discourse.org</a></p>")
|
||||
|
@ -262,11 +262,11 @@ describe User do
|
||||
describe "trust levels" do
|
||||
|
||||
# NOTE be sure to use build to avoid db calls
|
||||
let(:user) { Fabricate.build(:user, trust_level: TrustLevel.levels[:newuser]) }
|
||||
let(:user) { Fabricate.build(:user, trust_level: TrustLevel[0]) }
|
||||
|
||||
it "sets to the default trust level setting" do
|
||||
SiteSetting.expects(:default_trust_level).returns(TrustLevel.levels[:elder])
|
||||
User.new.trust_level.should == TrustLevel.levels[:elder]
|
||||
SiteSetting.default_trust_level = TrustLevel[4]
|
||||
User.new.trust_level.should == TrustLevel[4]
|
||||
end
|
||||
|
||||
describe 'has_trust_level?' do
|
||||
@ -276,22 +276,22 @@ describe User do
|
||||
end
|
||||
|
||||
it "is true for your basic level" do
|
||||
user.has_trust_level?(:newuser).should be_true
|
||||
user.has_trust_level?(TrustLevel[0]).should be_true
|
||||
end
|
||||
|
||||
it "is false for a higher level" do
|
||||
user.has_trust_level?(:regular).should be_false
|
||||
user.has_trust_level?(TrustLevel[2]).should be_false
|
||||
end
|
||||
|
||||
it "is true if you exceed the level" do
|
||||
user.trust_level = TrustLevel.levels[:elder]
|
||||
user.has_trust_level?(:newuser).should be_true
|
||||
user.trust_level = TrustLevel[4]
|
||||
user.has_trust_level?(TrustLevel[1]).should be_true
|
||||
end
|
||||
|
||||
it "is true for an admin even with a low trust level" do
|
||||
user.trust_level = TrustLevel.levels[:new]
|
||||
user.trust_level = TrustLevel[0]
|
||||
user.admin = true
|
||||
user.has_trust_level?(:elder).should be_true
|
||||
user.has_trust_level?(TrustLevel[1]).should be_true
|
||||
end
|
||||
|
||||
end
|
||||
@ -303,7 +303,7 @@ describe User do
|
||||
|
||||
it "is a moderator if the user level is moderator" do
|
||||
user.moderator = true
|
||||
user.has_trust_level?(:elder).should be_true
|
||||
user.has_trust_level?(TrustLevel[4]).should be_true
|
||||
end
|
||||
|
||||
it "is staff if the user is an admin" do
|
||||
@ -844,7 +844,7 @@ describe User do
|
||||
end
|
||||
|
||||
describe "posted too much in topic" do
|
||||
let!(:user) { Fabricate(:user, trust_level: TrustLevel.levels[:newuser]) }
|
||||
let!(:user) { Fabricate(:user, trust_level: TrustLevel[0]) }
|
||||
let!(:topic) { Fabricate(:post).topic }
|
||||
|
||||
before do
|
||||
@ -877,7 +877,7 @@ describe User do
|
||||
|
||||
it "returns false for a user who created the topic" do
|
||||
topic_user = topic.user
|
||||
topic_user.trust_level = TrustLevel.levels[:newuser]
|
||||
topic_user.trust_level = TrustLevel[0]
|
||||
topic.user.posted_too_much_in_topic?(topic.id).should be_false
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user