root/vendor/file-column-0.3.1/test/magick_test.rb @ 2

Revision 2, 2.4 kB (checked in by falcon, 17 years ago)

added plugins

  • Property svn:executable set to *
RevLine 
[2]1require 'abstract_unit'
2require_gem 'rmagick'
3
4class Entry < ActiveRecord::Base
5end
6
7class AbstractRMagickTest < Test::Unit::TestCase
8  def teardown
9    FileUtils.rm_rf File.dirname(__FILE__)+"/public/entry/"
10  end
11
12  def test_truth
13    assert true
14  end
15
16  private
17
18  def read_image(path)
19    Magick::Image::read(path).first
20  end
21
22  def assert_max_image_size(img, s)
23    assert img.columns <= s, "img has #{img.columns} columns, expected: #{s}"
24    assert img.rows <= s, "img has #{img.rows} rows, expected: #{s}"
25    assert_equal s, [img.columns, img.rows].max
26  end
27end
28
29class RMagickSimpleTest < AbstractRMagickTest
30  def setup
31    Entry.file_column :image, :magick => { :geometry => "100x100" }
32  end
33
34  def test_simple_resize_without_save
35    e = Entry.new
36    e.image = upload("kerb.jpg")
37   
38    img = read_image(e.image)
39    assert_max_image_size img, 100
40  end
41
42  def test_simple_resize_with_save
43    e = Entry.new
44    e.image = upload("kerb.jpg")
45    assert e.save
46    e.reload
47   
48    img = read_image(e.image)
49    assert_max_image_size img, 100
50  end
51
52  def test_resize_on_saved_image
53    Entry.file_column :image, :magick => { :geometry => "100x100" }
54   
55    e = Entry.new
56    e.image = upload("skanthak.png")
57    assert e.save
58    e.reload
59    old_path = e.image
60   
61    e.image = upload("kerb.jpg")
62    assert e.save
63    assert "kerb.jpg", File.basename(e.image)
64    assert !File.exists?(old_path), "old image '#{old_path}' still exists"
65
66    img = read_image(e.image)
67    assert_max_image_size img, 100
68  end
69
70  def test_invalid_image
71    e = Entry.new
72    assert_nothing_raised { e.image = upload("invalid-image.jpg") }
73    assert !e.valid?
74  end
75
76  def test_serializable
77    e = Entry.new
78    e.image = upload("skanthak.png")
79    assert_nothing_raised {
80      flash = Marshal.dump(e)
81      e = Marshal.load(flash)
82    }
83    assert File.exists?(e.image)
84  end
85end
86
87class RMagickAlternativesTest < AbstractRMagickTest
88  def setup
89    Entry.file_column :image, :magick => {:geometry => "200x200",
90      :versions => {
91        "thumb" => "50x50", 
92        "medium" => {:geometry => "100x100"}
93      }
94    }
95  end
96
97  def test_thumb_created
98    e = Entry.new("image" => upload("kerb.jpg"))
99   
100    thumb_path = File.join(File.dirname(e.image), "kerb-thumb.jpg")
101    assert_equal thumb_path, e.image("thumb")
102    assert File.exists?(e.image("thumb")), "thumb-nail not created"
103   
104    assert_max_image_size read_image(e.image("thumb")), 50
105  end
106end
Note: See TracBrowser for help on using the browser.