mirror of
https://github.com/codeninjasllc/discourse.git
synced 2024-11-27 09:36:19 -05:00
FIX: picture would be hidden when [details] block was closed in the composer
This commit is contained in:
parent
4ff1e19712
commit
5d74cadf2f
2 changed files with 41 additions and 10 deletions
|
@ -98,7 +98,10 @@ class CookedPostProcessor
|
|||
return unless image_sizes.present?
|
||||
image_sizes.each do |image_size|
|
||||
url, size = image_size[0], image_size[1]
|
||||
return [size["width"], size["height"]] if url && size && url.include?(src)
|
||||
if url && url.include?(src) &&
|
||||
size && size["width"].to_i > 0 && size["height"].to_i > 0
|
||||
return [size["width"], size["height"]]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -40,20 +40,48 @@ describe CookedPostProcessor do
|
|||
|
||||
context ".post_process_images" do
|
||||
|
||||
context "with image_sizes" do
|
||||
|
||||
let(:post) { build(:post_with_image_urls) }
|
||||
let(:cpp) { CookedPostProcessor.new(post, image_sizes: {"http://foo.bar/image.png" => {"width" => 111, "height" => 222}}) }
|
||||
|
||||
before { cpp.post_process_images }
|
||||
|
||||
it "works" do
|
||||
shared_examples "leave dimensions alone" do
|
||||
it "doesn't use them" do
|
||||
# adds the width from the image sizes provided when no dimension is provided
|
||||
expect(cpp.html).to match(/src="http:\/\/foo.bar\/image.png" width="111" height="222"/)
|
||||
expect(cpp.html).to match(/src="http:\/\/foo.bar\/image.png" width="" height=""/)
|
||||
# adds the width from the image sizes provided
|
||||
expect(cpp.html).to match(/src="http:\/\/domain.com\/picture.jpg" width="50" height="42"/)
|
||||
expect(cpp).to be_dirty
|
||||
end
|
||||
end
|
||||
|
||||
context "with image_sizes" do
|
||||
let(:post) { build(:post_with_image_urls) }
|
||||
let(:cpp) { CookedPostProcessor.new(post, image_sizes: image_sizes) }
|
||||
|
||||
before { cpp.post_process_images }
|
||||
|
||||
context "valid" do
|
||||
let(:image_sizes) { {"http://foo.bar/image.png" => {"width" => 111, "height" => 222}} }
|
||||
|
||||
it "use them" do
|
||||
# adds the width from the image sizes provided when no dimension is provided
|
||||
expect(cpp.html).to match(/src="http:\/\/foo.bar\/image.png" width="111" height="222"/)
|
||||
# adds the width from the image sizes provided
|
||||
expect(cpp.html).to match(/src="http:\/\/domain.com\/picture.jpg" width="50" height="42"/)
|
||||
expect(cpp).to be_dirty
|
||||
end
|
||||
end
|
||||
|
||||
context "invalid width" do
|
||||
let(:image_sizes) { {"http://foo.bar/image.png" => {"width" => 0, "height" => 222}} }
|
||||
include_examples "leave dimensions alone"
|
||||
end
|
||||
|
||||
context "invalid height" do
|
||||
let(:image_sizes) { {"http://foo.bar/image.png" => {"width" => 111, "height" => 0}} }
|
||||
include_examples "leave dimensions alone"
|
||||
end
|
||||
|
||||
context "invalid width & height" do
|
||||
let(:image_sizes) { {"http://foo.bar/image.png" => {"width" => 0, "height" => 0}} }
|
||||
include_examples "leave dimensions alone"
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue