mirror of
https://github.com/discourse/discourse.git
synced 2025-06-04 23:36:11 +08:00
FIX - limit number of embedded media items in a post (#10391)
* FIX - limit number of embedded media items in a post * Add renamed settings to DeprecatedSettings
This commit is contained in:
@ -425,7 +425,7 @@ describe PostRevisor do
|
||||
fab!(:changed_by) { Fabricate(:admin) }
|
||||
|
||||
before do
|
||||
SiteSetting.newuser_max_images = 0
|
||||
SiteSetting.newuser_max_embedded_media = 0
|
||||
url = "http://i.imgur.com/wfn7rgU.jpg"
|
||||
Oneboxer.stubs(:onebox).with(url, anything).returns("<img src='#{url}'>")
|
||||
subject.revise!(changed_by, raw: "So, post them here!\n#{url}")
|
||||
@ -443,7 +443,7 @@ describe PostRevisor do
|
||||
|
||||
describe "new user editing their own post" do
|
||||
before do
|
||||
SiteSetting.newuser_max_images = 0
|
||||
SiteSetting.newuser_max_embedded_media = 0
|
||||
url = "http://i.imgur.com/FGg7Vzu.gif"
|
||||
Oneboxer.stubs(:cached_onebox).with(url, anything).returns("<img src='#{url}'>")
|
||||
subject.revise!(post.user, raw: "So, post them here!\n#{url}")
|
||||
|
@ -137,45 +137,45 @@ describe PostValidator do
|
||||
end
|
||||
end
|
||||
|
||||
context "too_many_images" do
|
||||
context "too_many_embedded_media" do
|
||||
before do
|
||||
SiteSetting.min_trust_to_post_images = 0
|
||||
SiteSetting.newuser_max_images = 2
|
||||
SiteSetting.min_trust_to_post_embedded_media = 0
|
||||
SiteSetting.newuser_max_embedded_media = 2
|
||||
end
|
||||
|
||||
it "should be invalid when new user exceeds max mentions limit" do
|
||||
post.acting_user = build(:newuser)
|
||||
post.expects(:image_count).returns(3)
|
||||
validator.max_images_validator(post)
|
||||
post.expects(:embedded_media_count).returns(3)
|
||||
validator.max_embedded_media_validator(post)
|
||||
expect(post.errors.count).to be > 0
|
||||
end
|
||||
|
||||
it "should be valid when new user does not exceed max mentions limit" do
|
||||
post.acting_user = build(:newuser)
|
||||
post.expects(:image_count).returns(2)
|
||||
validator.max_images_validator(post)
|
||||
post.expects(:embedded_media_count).returns(2)
|
||||
validator.max_embedded_media_validator(post)
|
||||
expect(post.errors.count).to be(0)
|
||||
end
|
||||
|
||||
it "should be invalid when user trust level is not sufficient" do
|
||||
SiteSetting.min_trust_to_post_images = 4
|
||||
SiteSetting.min_trust_to_post_embedded_media = 4
|
||||
post.acting_user = build(:leader)
|
||||
post.expects(:image_count).returns(2)
|
||||
validator.max_images_validator(post)
|
||||
post.expects(:embedded_media_count).returns(2)
|
||||
validator.max_embedded_media_validator(post)
|
||||
expect(post.errors.count).to be > 0
|
||||
end
|
||||
|
||||
it "should be valid for moderator in all cases" do
|
||||
post.acting_user = build(:moderator)
|
||||
post.expects(:image_count).never
|
||||
validator.max_images_validator(post)
|
||||
post.expects(:embedded_media_count).never
|
||||
validator.max_embedded_media_validator(post)
|
||||
expect(post.errors.count).to be(0)
|
||||
end
|
||||
|
||||
it "should be valid for admin in all cases" do
|
||||
post.acting_user = build(:admin)
|
||||
post.expects(:image_count).never
|
||||
validator.max_images_validator(post)
|
||||
post.expects(:embedded_media_count).never
|
||||
validator.max_embedded_media_validator(post)
|
||||
expect(post.errors.count).to be(0)
|
||||
end
|
||||
end
|
||||
@ -290,7 +290,7 @@ describe PostValidator do
|
||||
validator.expects(:raw_quality).never
|
||||
validator.expects(:max_posts_validator).never
|
||||
validator.expects(:max_mention_validator).never
|
||||
validator.expects(:max_images_validator).never
|
||||
validator.expects(:max_embedded_media_validator).never
|
||||
validator.expects(:max_attachments_validator).never
|
||||
validator.expects(:newuser_links_validator).never
|
||||
validator.expects(:unique_post_validator).never
|
||||
|
Reference in New Issue
Block a user