mirror of
https://github.com/codeninjasllc/discourse.git
synced 2024-11-23 15:48:43 -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?
|
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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue