Fix uploading higher-than-wide GIF profile picture with libvips enabled (#32911)

This commit is contained in:
Claire 2024-11-15 16:35:30 +01:00
parent a5e1b5b466
commit fb44e3eb75
3 changed files with 9 additions and 1 deletions

View File

@ -52,6 +52,7 @@ module Paperclip
# implement. If cropping ever becomes necessary for other situations, this will
# need to be expanded.
crop_width = crop_height = [target_width, target_height].min if @target_geometry&.square?
crop_width = crop_height = "'min(iw,ih)'" if crop_width == 'ih'
filter = begin
if @crop

BIN
spec/fixtures/files/avatar-high.gif vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

View File

@ -2,13 +2,20 @@
RSpec.shared_examples 'AccountAvatar' do |fabricator|
describe 'static avatars', :attachment_processing do
describe 'when GIF' do
describe 'with a square GIF' do
it 'creates a png static style' do
account = Fabricate(fabricator, avatar: attachment_fixture('avatar.gif'))
expect(account.avatar_static_url).to_not eq account.avatar_original_url
end
end
describe 'with a higher-than-wide GIF' do
it 'creates a png static style' do
account = Fabricate(fabricator, avatar: attachment_fixture('avatar-high.gif'))
expect(account.avatar_static_url).to_not eq account.avatar_original_url
end
end
describe 'when non-GIF' do
it 'does not create extra static style' do
account = Fabricate(fabricator, avatar: attachment_fixture('attachment.jpg'))