FIX: picture would be hidden when [details] block was closed in the composer

This commit is contained in:
Régis Hanol 2015-03-16 18:57:15 +01:00
parent 4ff1e19712
commit 5d74cadf2f
2 changed files with 41 additions and 10 deletions

View file

@ -98,7 +98,10 @@ class CookedPostProcessor
return unless image_sizes.present? return unless image_sizes.present?
image_sizes.each do |image_size| image_sizes.each do |image_size|
url, size = image_size[0], image_size[1] 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
end end

View file

@ -40,20 +40,48 @@ describe CookedPostProcessor do
context ".post_process_images" do context ".post_process_images" do
context "with image_sizes" do shared_examples "leave dimensions alone" do
it "doesn't use them" 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
# adds the width from the image sizes provided when no dimension is provided # 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 # 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.html).to match(/src="http:\/\/domain.com\/picture.jpg" width="50" height="42"/)
expect(cpp).to be_dirty expect(cpp).to be_dirty
end 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 end