FIX: Remove post/topic image_url on post edits

- resets image_url when image is removed from first post on edit
- excludes onebox icons from being featured as topic/post images
This commit is contained in:
Penar Musaraj 2020-02-06 11:19:40 -05:00
parent f029e2eaf6
commit 0fd39cc511
2 changed files with 23 additions and 2 deletions

View File

@ -216,7 +216,9 @@ class CookedPostProcessor
# minus emojis
@doc.css("img.emoji") -
# minus images inside quotes
@doc.css(".quote img")
@doc.css(".quote img") -
# minus onebox site icons
@doc.css("img.site-icon")
end
def oneboxed_images
@ -488,7 +490,11 @@ class CookedPostProcessor
def update_post_image
img = extract_images_for_post.first
return if img.blank?
if img.blank?
@post.update_column(:image_url, nil) if @post.image_url
@post.topic.update_column(:image_url, nil) if @post.topic.image_url
return
end
if img["src"].present?
@post.update_column(:image_url, img["src"][0...255]) # post

View File

@ -774,6 +774,21 @@ describe CookedPostProcessor do
post.topic.reload
expect(post.topic.image_url).to be_present
end
it "removes image if post is edited and no longer has an image" do
FastImage.stubs(:size)
cpp.post_process
post.topic.reload
expect(post.topic.image_url).to be_present
expect(post.image_url).to be_present
post.update!(raw: "This post no longer has an image.")
CookedPostProcessor.new(post).post_process
post.topic.reload
expect(post.topic.image_url).not_to be_present
expect(post.image_url).not_to be_present
end
end
context "post image" do