Fix uploading higher-than-wide GIF profile picture with libvips enabled (#32911)
This commit is contained in:
		@@ -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
									
								
							
							
						
						
									
										
											BIN
										
									
								
								spec/fixtures/files/avatar-high.gif
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 73 KiB  | 
@@ -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'))
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user