Commit 31d74d66 by Prem Sichanugrist

Split test cases for multiple storages

parent 1738f3c8
require 'helper'
class FileSystemTest < Test::Unit::TestCase
context "Filesystem" do
setup do
rebuild_model :styles => { :thumbnail => "25x25#" }
@dummy = Dummy.create!
@dummy.avatar = File.open(File.join(File.dirname(__FILE__), "..", "fixtures", "5k.png"))
end
should "allow file assignment" do
assert @dummy.save
end
should "store the original" do
@dummy.save
assert File.exists?(@dummy.avatar.path)
end
should "store the thumbnail" do
@dummy.save
assert File.exists?(@dummy.avatar.path(:thumbnail))
end
should "clean up file objects" do
File.stubs(:exist?).returns(true)
Paperclip::Tempfile.any_instance.expects(:close).at_least_once()
Paperclip::Tempfile.any_instance.expects(:unlink).at_least_once()
@dummy.save!
end
end
end
require 'helper'
require 'aws/s3'
class S3LiveTest < Test::Unit::TestCase
unless ENV["S3_TEST_BUCKET"].blank?
context "Using S3 for real, an attachment with S3 storage" do
setup do
rebuild_model :styles => { :thumb => "100x100", :square => "32x32#" },
:storage => :s3,
:bucket => ENV["S3_TEST_BUCKET"],
:path => ":class/:attachment/:id/:style.:extension",
:s3_credentials => File.new(File.join(File.dirname(__FILE__), "..", "s3.yml"))
Dummy.delete_all
@dummy = Dummy.new
end
should "be extended by the S3 module" do
assert Dummy.new.avatar.is_a?(Paperclip::Storage::S3)
end
context "when assigned" do
setup do
@file = File.new(File.join(File.dirname(__FILE__), '..', 'fixtures', '5k.png'), 'rb')
@dummy.avatar = @file
end
teardown { @file.close }
should "still return a Tempfile when sent #to_file" do
assert_equal Paperclip::Tempfile, @dummy.avatar.to_file.class
end
context "and saved" do
setup do
@dummy.save
end
should "be on S3" do
assert true
end
should "generate a tempfile with the right name" do
file = @dummy.avatar.to_file
assert_match /^original.*\.png$/, File.basename(file.path)
end
end
end
end
end
end
require './test/helper' require 'helper'
require 'aws/s3' require 'aws/s3'
class StorageTest < Test::Unit::TestCase class S3Test < Test::Unit::TestCase
def rails_env(env) def rails_env(env)
silence_warnings do silence_warnings do
Object.const_set(:Rails, stub('Rails', :env => env)) Object.const_set(:Rails, stub('Rails', :env => env))
end end
end end
context "filesystem" do
setup do
rebuild_model :styles => { :thumbnail => "25x25#" }
@dummy = Dummy.create!
@dummy.avatar = File.open(File.join(File.dirname(__FILE__), "fixtures", "5k.png"))
end
should "allow file assignment" do
assert @dummy.save
end
should "store the original" do
@dummy.save
assert File.exists?(@dummy.avatar.path)
end
should "store the thumbnail" do
@dummy.save
assert File.exists?(@dummy.avatar.path(:thumbnail))
end
should "clean up file objects" do
File.stubs(:exist?).returns(true)
Paperclip::Tempfile.any_instance.expects(:close).at_least_once()
Paperclip::Tempfile.any_instance.expects(:unlink).at_least_once()
@dummy.save!
end
end
context "Parsing S3 credentials" do context "Parsing S3 credentials" do
setup do setup do
@proxy_settings = {:host => "127.0.0.1", :port => 8888, :user => "foo", :password => "bar"} @proxy_settings = {:host => "127.0.0.1", :port => 8888, :user => "foo", :password => "bar"}
...@@ -129,7 +98,7 @@ class StorageTest < Test::Unit::TestCase ...@@ -129,7 +98,7 @@ class StorageTest < Test::Unit::TestCase
} }
@dummy = Dummy.new @dummy = Dummy.new
@dummy.avatar = File.new(File.join(File.dirname(__FILE__), 'fixtures', '5k.png'), 'rb') @dummy.avatar = File.new(File.join(File.dirname(__FILE__), '..', 'fixtures', '5k.png'), 'rb')
end end
should "return a url containing the correct original file mime type" do should "return a url containing the correct original file mime type" do
...@@ -345,7 +314,7 @@ class StorageTest < Test::Unit::TestCase ...@@ -345,7 +314,7 @@ class StorageTest < Test::Unit::TestCase
context "when assigned" do context "when assigned" do
setup do setup do
@file = File.new(File.join(File.dirname(__FILE__), 'fixtures', '5k.png'), 'rb') @file = File.new(File.join(File.dirname(__FILE__), '..', 'fixtures', '5k.png'), 'rb')
@dummy = Dummy.new @dummy = Dummy.new
@dummy.avatar = @file @dummy.avatar = @file
end end
...@@ -436,7 +405,7 @@ class StorageTest < Test::Unit::TestCase ...@@ -436,7 +405,7 @@ class StorageTest < Test::Unit::TestCase
context "when assigned" do context "when assigned" do
setup do setup do
@file = File.new(File.join(File.dirname(__FILE__), 'fixtures', '5k.png'), 'rb') @file = File.new(File.join(File.dirname(__FILE__), '..', 'fixtures', '5k.png'), 'rb')
@dummy = Dummy.new @dummy = Dummy.new
@dummy.avatar = @file @dummy.avatar = @file
end end
...@@ -471,7 +440,7 @@ class StorageTest < Test::Unit::TestCase ...@@ -471,7 +440,7 @@ class StorageTest < Test::Unit::TestCase
rails_env('test') rails_env('test')
rebuild_model :storage => :s3, rebuild_model :storage => :s3,
:s3_credentials => Pathname.new(File.join(File.dirname(__FILE__))).join("fixtures/s3.yml") :s3_credentials => Pathname.new(File.join(File.dirname(__FILE__))).join("../fixtures/s3.yml")
Dummy.delete_all Dummy.delete_all
@dummy = Dummy.new @dummy = Dummy.new
...@@ -493,7 +462,7 @@ class StorageTest < Test::Unit::TestCase ...@@ -493,7 +462,7 @@ class StorageTest < Test::Unit::TestCase
rails_env('test') rails_env('test')
rebuild_model :storage => :s3, rebuild_model :storage => :s3,
:s3_credentials => File.new(File.join(File.dirname(__FILE__), "fixtures/s3.yml")) :s3_credentials => File.new(File.join(File.dirname(__FILE__), "../fixtures/s3.yml"))
Dummy.delete_all Dummy.delete_all
...@@ -521,7 +490,7 @@ class StorageTest < Test::Unit::TestCase ...@@ -521,7 +490,7 @@ class StorageTest < Test::Unit::TestCase
context "when assigned" do context "when assigned" do
setup do setup do
@file = File.new(File.join(File.dirname(__FILE__), 'fixtures', '5k.png'), 'rb') @file = File.new(File.join(File.dirname(__FILE__), '..', 'fixtures', '5k.png'), 'rb')
@dummy = Dummy.new @dummy = Dummy.new
@dummy.avatar = @file @dummy.avatar = @file
end end
...@@ -560,7 +529,7 @@ class StorageTest < Test::Unit::TestCase ...@@ -560,7 +529,7 @@ class StorageTest < Test::Unit::TestCase
context "when assigned" do context "when assigned" do
setup do setup do
@file = File.new(File.join(File.dirname(__FILE__), 'fixtures', '5k.png'), 'rb') @file = File.new(File.join(File.dirname(__FILE__), '..', 'fixtures', '5k.png'), 'rb')
@dummy = Dummy.new @dummy = Dummy.new
@dummy.avatar = @file @dummy.avatar = @file
end end
...@@ -605,7 +574,7 @@ class StorageTest < Test::Unit::TestCase ...@@ -605,7 +574,7 @@ class StorageTest < Test::Unit::TestCase
context "when assigned" do context "when assigned" do
setup do setup do
@file = File.new(File.join(File.dirname(__FILE__), 'fixtures', '5k.png'), 'rb') @file = File.new(File.join(File.dirname(__FILE__), '..', 'fixtures', '5k.png'), 'rb')
@dummy = Dummy.new @dummy = Dummy.new
@dummy.avatar = @file @dummy.avatar = @file
end end
...@@ -632,51 +601,4 @@ class StorageTest < Test::Unit::TestCase ...@@ -632,51 +601,4 @@ class StorageTest < Test::Unit::TestCase
end end
end end
end end
unless ENV["S3_TEST_BUCKET"].blank?
context "Using S3 for real, an attachment with S3 storage" do
setup do
rebuild_model :styles => { :thumb => "100x100", :square => "32x32#" },
:storage => :s3,
:bucket => ENV["S3_TEST_BUCKET"],
:path => ":class/:attachment/:id/:style.:extension",
:s3_credentials => File.new(File.join(File.dirname(__FILE__), "s3.yml"))
Dummy.delete_all
@dummy = Dummy.new
end
should "be extended by the S3 module" do
assert Dummy.new.avatar.is_a?(Paperclip::Storage::S3)
end
context "when assigned" do
setup do
@file = File.new(File.join(File.dirname(__FILE__), 'fixtures', '5k.png'), 'rb')
@dummy.avatar = @file
end
teardown { @file.close }
should "still return a Tempfile when sent #to_file" do
assert_equal Paperclip::Tempfile, @dummy.avatar.to_file.class
end
context "and saved" do
setup do
@dummy.save
end
should "be on S3" do
assert true
end
should "generate a tempfile with the right name" do
file = @dummy.avatar.to_file
assert_match /^original.*\.png$/, File.basename(file.path)
end
end
end
end
end
end end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment