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)