test/test_with_s3.rb in imagery-0.0.2 vs test/test_with_s3.rb in imagery-0.0.3

- old
+ new

@@ -3,16 +3,30 @@ class WithS3Test < Test::Unit::TestCase class WithS3 < Imagery::Model include Imagery::Faking include Imagery::S3 - self.s3_bucket = "tmp-bucket-name" + s3_bucket "tmp-bucket-name" end + class NoBucket < Imagery::Model + include Imagery::Faking + include Imagery::S3 + end + + class WithS3CustomHost < Imagery::Model + include Imagery::Faking + include Imagery::S3 + + s3_bucket "tmp-bucket-name" + s3_host "http://test.host" + end + + SuperSecretPhoto = Class.new(Struct.new(:id)) - test "urls" do + test "default urls" do imagery = WithS3.new(SuperSecretPhoto.new(1001)) imagery.root = '/tmp' imagery.sizes = { :thumb => ["56x56^"], :small => ["100x100^", "100x100"], @@ -26,10 +40,47 @@ assert_equal s % 'thumb', imagery.url(:thumb) assert_equal s % 'small', imagery.url(:small) assert_equal s % 'large', imagery.url(:large) end + test "customized s3_host urls" do + imagery = WithS3CustomHost.new(SuperSecretPhoto.new(1001)) + imagery.root = '/tmp' + imagery.sizes = { + :thumb => ["56x56^"], + :small => ["100x100^", "100x100"], + :large => ["200x200>", "200x200"] + } + + s = 'http://test.host/tmp-bucket-name/supersecretphoto/1001/%s.png' + + assert_equal s % 'original', imagery.url + assert_equal s % 'original', imagery.url(:original) + assert_equal s % 'thumb', imagery.url(:thumb) + assert_equal s % 'small', imagery.url(:small) + assert_equal s % 'large', imagery.url(:large) + end + + test "url when no bucket" do + imagery = NoBucket.new(SuperSecretPhoto.new(1001)) + imagery.sizes = { + :thumb => ["56x56^"], + :small => ["100x100^", "100x100"], + :large => ["200x200>", "200x200"] + } + + assert_raise Imagery::S3::UndefinedBucket do + imagery.url + end + + begin + imagery.url + rescue Imagery::S3::UndefinedBucket => e + assert_equal Imagery::S3::Configs::BUCKET_ERROR_MSG, e.message + end + end + test "urls with a distribution domain" do imagery = WithS3.new(SuperSecretPhoto.new(1001)) imagery.root = '/tmp' imagery.sizes = { :thumb => ["56x56^"], @@ -37,10 +88,10 @@ :large => ["200x200>", "200x200"] } s = 'http://assets.site.com/supersecretphoto/1001/%s.png' - WithS3.s3_distribution_domain = 'http://assets.site.com' + WithS3.s3_distribution_domain 'http://assets.site.com' assert_equal s % 'original', imagery.url assert_equal s % 'original', imagery.url(:original) assert_equal s % 'thumb', imagery.url(:thumb) assert_equal s % 'small', imagery.url(:small)