2015-10-11 10:41:23 +01:00
require 'rails_helper'
2013-02-05 14:16:51 -05:00
require 'image_sizer'
describe ImageSizer do
before do
2013-08-26 00:24:24 +02:00
SiteSetting . stubs ( :max_image_width ) . returns ( 500 )
SiteSetting . stubs ( :max_image_height ) . returns ( 500 )
2013-02-05 14:16:51 -05:00
end
2013-08-26 00:24:24 +02:00
it 'returns the same dimensions when smaller than the maximums' do
2015-01-09 13:34:37 -03:00
expect ( ImageSizer . resize ( 400 , 200 ) ) . to eq ( [ 400 , 200 ] )
2013-02-05 14:16:51 -05:00
end
it 'returns nil if the width is nil' do
2015-01-09 13:34:37 -03:00
expect ( ImageSizer . resize ( nil , 100 ) ) . to eq ( nil )
2013-02-05 14:16:51 -05:00
end
it 'returns nil if the height is nil' do
2015-01-09 13:34:37 -03:00
expect ( ImageSizer . resize ( 100 , nil ) ) . to eq ( nil )
2013-02-05 14:16:51 -05:00
end
it 'works with string parameters' do
2015-01-09 13:34:37 -03:00
expect ( ImageSizer . resize ( '100' , '101' ) ) . to eq ( [ 100 , 101 ] )
2013-02-05 14:16:51 -05:00
end
2013-08-26 00:24:24 +02:00
describe 'when larger than the maximum width' do
2013-02-05 14:16:51 -05:00
before do
@w , @h = ImageSizer . resize ( 600 , 123 )
end
it 'returns the maxmimum width if larger than the maximum' do
2015-01-09 13:34:37 -03:00
expect ( @w ) . to eq ( 500 )
2013-02-05 14:16:51 -05:00
end
it 'resizes the height retaining the aspect ratio' do
2015-01-09 13:34:37 -03:00
expect ( @h ) . to eq ( 102 )
2013-02-05 14:16:51 -05:00
end
2013-02-25 19:42:20 +03:00
2013-02-05 14:16:51 -05:00
end
2013-08-26 00:24:24 +02:00
describe 'when larger than the maximum height' do
before do
@w , @h = ImageSizer . resize ( 123 , 600 )
end
it 'returns the maxmimum height if larger than the maximum' do
2015-01-09 13:34:37 -03:00
expect ( @h ) . to eq ( 500 )
2013-08-26 00:24:24 +02:00
end
it 'resizes the width retaining the aspect ratio' do
2015-01-09 13:34:37 -03:00
expect ( @w ) . to eq ( 102 )
2013-08-26 00:24:24 +02:00
end
end
describe 'when larger than the maximums' do
before do
@w , @h = ImageSizer . resize ( 533 , 800 )
end
it 'resizes both dimensions retaining the aspect ratio' do
2015-01-09 13:34:37 -03:00
expect ( @h ) . to eq ( 500 )
expect ( @w ) . to eq ( 333 )
2013-08-26 00:24:24 +02:00
end
end
2013-02-05 14:16:51 -05:00
end