mirror of
https://github.com/discourse/discourse.git
synced 2025-06-06 03:06:53 +08:00
FIX: show lightbox for small images (#29140)
We want to allow lightboxing of smaller images, even if they are below the minimum size for image thumbnail generation. This change sets a minimum threshold of 100 x 100 pixels for triggering the lightbox. --------- Co-authored-by: Régis Hanol <regis@hanol.fr>
This commit is contained in:
@ -401,6 +401,40 @@ RSpec.describe CookedPostProcessor do
|
||||
end
|
||||
end
|
||||
|
||||
context "with small images" do
|
||||
fab!(:upload) { Fabricate(:image_upload, width: 150, height: 150) }
|
||||
fab!(:post) { Fabricate(:post, user: user_with_auto_groups, raw: <<~HTML) }
|
||||
<img src="#{upload.url}">
|
||||
HTML
|
||||
let(:cpp) { CookedPostProcessor.new(post, disable_dominant_color: true) }
|
||||
|
||||
before { SiteSetting.create_thumbnails = true }
|
||||
|
||||
it "shows the lightbox when both dimensions are above the minimum" do
|
||||
cpp.post_process
|
||||
expect(cpp.html).to match(/<div class="lightbox-wrapper">/)
|
||||
end
|
||||
|
||||
it "does not show lightbox when both dimensions are below the minimum" do
|
||||
upload.update!(width: 50, height: 50)
|
||||
cpp.post_process
|
||||
|
||||
expect(cpp.html).not_to match(/<div class="lightbox-wrapper">/)
|
||||
end
|
||||
|
||||
it "does not show lightbox when either dimension is below the minimum" do
|
||||
upload.update!(width: 50, height: 150)
|
||||
cpp.post_process
|
||||
|
||||
expect(cpp.html).not_to match(/<div class="lightbox-wrapper">/)
|
||||
end
|
||||
|
||||
it "does not create thumbnails for small images" do
|
||||
Upload.any_instance.expects(:create_thumbnail!).never
|
||||
cpp.post_process
|
||||
end
|
||||
end
|
||||
|
||||
context "with large images" do
|
||||
fab!(:upload) { Fabricate(:image_upload, width: 1750, height: 2000) }
|
||||
|
||||
|
@ -636,7 +636,7 @@ RSpec.describe Email::Sender do
|
||||
@secure_image_2 =
|
||||
UploadCreator.new(
|
||||
file_from_fixtures("logo-dev.png", "images"),
|
||||
"secuere_logo_2.png",
|
||||
"secure_logo_2.png",
|
||||
).create_for(Discourse.system_user.id)
|
||||
@secure_image_2.update_secure_status(override: true)
|
||||
@secure_image_2.update(access_control_post_id: reply.id)
|
||||
@ -666,7 +666,7 @@ RSpec.describe Email::Sender do
|
||||
|
||||
@secure_image_2 =
|
||||
UploadCreator.new(
|
||||
file_from_fixtures("logo-dev.png", "images"),
|
||||
file_from_fixtures("logo.png", "images"),
|
||||
"something-cool.png",
|
||||
).create_for(Discourse.system_user.id)
|
||||
@secure_image_2.update_secure_status(override: true)
|
||||
@ -701,6 +701,7 @@ RSpec.describe Email::Sender do
|
||||
expect(summary.attachments.map(&:filename)).to include(
|
||||
*[@secure_image, @secure_image_2, @secure_image_3].map(&:original_filename),
|
||||
)
|
||||
expect(summary.attachments.size).to eq(3)
|
||||
expect(summary.to_s.scan("Content-Type: text/html;").length).to eq(1)
|
||||
expect(summary.to_s.scan("Content-Type: text/plain;").length).to eq(1)
|
||||
expect(summary.to_s.scan(/cid:[\w\-@.]+/).length).to eq(3)
|
||||
|
Reference in New Issue
Block a user