diff --git a/lib/cooked_post_processor.rb b/lib/cooked_post_processor.rb index a73f65f41f0..6936ac20887 100644 --- a/lib/cooked_post_processor.rb +++ b/lib/cooked_post_processor.rb @@ -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 diff --git a/spec/components/cooked_post_processor_spec.rb b/spec/components/cooked_post_processor_spec.rb index 9e23a18a92b..f5ba4d386a4 100644 --- a/spec/components/cooked_post_processor_spec.rb +++ b/spec/components/cooked_post_processor_spec.rb @@ -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