/amexsbs/railsapp/vendor/plugins/paperclip/test/style_test.rb
Ruby | 141 lines | 118 code | 22 blank | 1 comment | 1 complexity | 012be76ccbe74141ee55f3869a6261b7 MD5 | raw file
Possible License(s): GPL-2.0, MPL-2.0-no-copyleft-exception, MIT
- # encoding: utf-8
- require 'test/helper'
- class StyleTest < Test::Unit::TestCase
- context "A style rule" do
- setup do
- @attachment = attachment :path => ":basename.:extension",
- :styles => { :foo => {:geometry => "100x100#", :format => :png} }
- @style = @attachment.styles[:foo]
- end
- should "be held as a Style object" do
- assert_kind_of Paperclip::Style, @style
- end
- should "get processors from the attachment definition" do
- assert_equal [:thumbnail], @style.processors
- end
- should "have the right geometry" do
- assert_equal "100x100#", @style.geometry
- end
- should "be whiny if the attachment is" do
- @attachment.expects(:whiny).returns(true)
- assert @style.whiny?
- end
- should "respond to hash notation" do
- assert_equal [:thumbnail], @style[:processors]
- assert_equal "100x100#", @style[:geometry]
- end
- end
- context "A style rule with properties supplied as procs" do
- setup do
- @attachment = attachment :path => ":basename.:extension",
- :whiny_thumbnails => true,
- :processors => lambda {|a| [:test]},
- :styles => {
- :foo => lambda{|a| "300x300#"},
- :bar => {
- :geometry => lambda{|a| "300x300#"}
- }
- }
- end
- should "defer processing of procs until they are needed" do
- assert_kind_of Proc, @attachment.styles[:foo].instance_variable_get("@geometry")
- assert_kind_of Proc, @attachment.styles[:bar].instance_variable_get("@geometry")
- assert_kind_of Proc, @attachment.instance_variable_get("@processors")
- end
- should "call procs when they are needed" do
- assert_equal "300x300#", @attachment.styles[:foo].geometry
- assert_equal "300x300#", @attachment.styles[:bar].geometry
- assert_equal [:test], @attachment.styles[:foo].processors
- assert_equal [:test], @attachment.styles[:bar].processors
- end
- end
- context "An attachment with style rules in various forms" do
- setup do
- @attachment = attachment :path => ":basename.:extension",
- :styles => {
- :aslist => ["100x100", :png],
- :ashash => {:geometry => "100x100", :format => :png},
- :asstring => "100x100"
- }
- end
- should "have the right number of styles" do
- assert_kind_of Hash, @attachment.styles
- assert_equal 3, @attachment.styles.size
- end
- should "have styles as Style objects" do
- [:aslist, :ashash, :aslist].each do |s|
- assert_kind_of Paperclip::Style, @attachment.styles[s]
- end
- end
- should "have the right geometries" do
- [:aslist, :ashash, :aslist].each do |s|
- assert_equal @attachment.styles[s].geometry, "100x100"
- end
- end
- should "have the right formats" do
- assert_equal @attachment.styles[:aslist].format, :png
- assert_equal @attachment.styles[:ashash].format, :png
- assert_nil @attachment.styles[:asstring].format
- end
- end
- context "An attachment with :convert_options" do
- setup do
- @attachment = attachment :path => ":basename.:extension",
- :styles => {:thumb => "100x100", :large => "400x400"},
- :convert_options => {:all => "-do_stuff", :thumb => "-thumbnailize"}
- @style = @attachment.styles[:thumb]
- @file = StringIO.new("...")
- @file.stubs(:original_filename).returns("file.jpg")
- end
- before_should "not have called extra_options_for(:thumb/:large) on initialization" do
- @attachment.expects(:extra_options_for).never
- end
- should "call extra_options_for(:thumb/:large) when convert options are requested" do
- @attachment.expects(:extra_options_for).with(:thumb)
- @attachment.styles[:thumb].convert_options
- end
- end
- context "A style rule with its own :processors" do
- setup do
- @attachment = attachment :path => ":basename.:extension",
- :styles => {
- :foo => {
- :geometry => "100x100#",
- :format => :png,
- :processors => [:test]
- }
- },
- :processors => [:thumbnail]
- @style = @attachment.styles[:foo]
- end
- should "not get processors from the attachment" do
- @attachment.expects(:processors).never
- assert_not_equal [:thumbnail], @style.processors
- end
- should "report its own processors" do
- assert_equal [:test], @style.processors
- end
- end
- end