From c18b86d9b2b0a20fac8d1f748a4a81a3b717cced Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Mon, 18 Jun 2018 17:10:23 +0800 Subject: [PATCH] UX: Don't add light box for SVG images. --- lib/cooked_post_processor.rb | 8 ++++++- spec/components/cooked_post_processor_spec.rb | 22 ++++++++++++++----- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/lib/cooked_post_processor.rb b/lib/cooked_post_processor.rb index e1a44fa783c..12e2d35e056 100644 --- a/lib/cooked_post_processor.rb +++ b/lib/cooked_post_processor.rb @@ -269,7 +269,7 @@ class CookedPostProcessor def convert_to_link!(img) src = img["src"] - return if src.blank? || is_a_hyperlink?(img) + return if src.blank? || is_a_hyperlink?(img) || is_svg?(img) width, height = img["width"].to_i, img["height"].to_i # TODO: store original dimentions in db @@ -538,4 +538,10 @@ class CookedPostProcessor @doc.try(:to_html) end + private + + def is_svg?(img) + File.extname(img["src"]) == '.svg' + end + end diff --git a/spec/components/cooked_post_processor_spec.rb b/spec/components/cooked_post_processor_spec.rb index 103bbc4f799..1c3da190cca 100644 --- a/spec/components/cooked_post_processor_spec.rb +++ b/spec/components/cooked_post_processor_spec.rb @@ -152,15 +152,15 @@ describe CookedPostProcessor do before do SiteSetting.max_image_height = 2000 SiteSetting.create_thumbnails = true - - Upload.expects(:get_from_url).returns(upload) FastImage.expects(:size).returns([1750, 2000]) - OptimizedImage.expects(:resize).returns(true) - - FileStore::BaseStore.any_instance.expects(:get_depth_for).returns(0) end it "generates overlay information" do + Upload.expects(:get_from_url).returns(upload) + OptimizedImage.expects(:resize).returns(true) + + FileStore::BaseStore.any_instance.expects(:get_depth_for).returns(0) + cpp.post_process_images expect(cpp.html).to match_html "

logo.png1750x2000 1.21 KB @@ -168,6 +168,18 @@ describe CookedPostProcessor do expect(cpp).to be_dirty end + describe 'when image is an svg' do + let(:post) do + Fabricate(:post, raw: '') + end + + it 'should not add lightbox' do + cpp.post_process_images + + expect(cpp.html).to match_html("

") + end + end + end context "with tall images" do