From 6aee22b88f61184c0fdf03c7fc16c4cfea4ed5cd Mon Sep 17 00:00:00 2001
From: Vinoth Kannan <vinothkannan@vinkas.com>
Date: Wed, 1 Aug 2018 02:51:02 +0530
Subject: [PATCH] FIX: Onebox images are not downloaded locally without css
 class

---
 lib/cooked_post_processor.rb                  |  2 +-
 spec/components/cooked_post_processor_spec.rb | 18 ++++++++++++++++++
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/lib/cooked_post_processor.rb b/lib/cooked_post_processor.rb
index e89cee74bb2..3f78317bca2 100644
--- a/lib/cooked_post_processor.rb
+++ b/lib/cooked_post_processor.rb
@@ -193,7 +193,7 @@ class CookedPostProcessor
   end
 
   def oneboxed_images
-    @doc.css(".onebox-body img, .onebox img")
+    @doc.css(".onebox-body img, .onebox img, img.onebox")
   end
 
   def limit_size!(img)
diff --git a/spec/components/cooked_post_processor_spec.rb b/spec/components/cooked_post_processor_spec.rb
index 0d1fa216a31..57fb16c5901 100644
--- a/spec/components/cooked_post_processor_spec.rb
+++ b/spec/components/cooked_post_processor_spec.rb
@@ -513,6 +513,24 @@ describe CookedPostProcessor do
       expect(cpp).to be_dirty
       expect(cpp.html).to match_html "<div>GANGNAM STYLE</div>"
     end
+
+    it "replaces downloaded onebox image" do
+      url = 'https://image.com/my-avatar'
+      image_url = 'https://image.com/avatar.png'
+
+      Oneboxer.stubs(:onebox).with(url, anything).returns("<img class='onebox' src='#{image_url}' />")
+
+      post = Fabricate(:post, raw: url)
+      upload = Fabricate(:upload, url: "https://test.s3.amazonaws.com/something.png")
+
+      post.custom_fields[Post::DOWNLOADED_IMAGES] = { "//image.com/avatar.png": upload.id }
+      post.save_custom_fields
+
+      cpp = CookedPostProcessor.new(post, invalidate_oneboxes: true)
+      cpp.post_process_oneboxes
+
+      expect(cpp.doc.to_s).to eq("<p><img class=\"onebox\" src=\"#{upload.url}\" width=\"\" height=\"\"></p>")
+    end
   end
 
   context ".post_process_oneboxes removes nofollow if add_rel_nofollow_to_user_content is disabled" do