Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

89 lines (70 sloc) 2.473 kb
require './test/helper'
class FileAdapterTest < Test::Unit::TestCase
context "a new instance" do
context "with normal file" do
setup do
@file = File.new(fixture_file("5k.png"))
@file.binmode
@subject = Paperclip.io_adapters.for(@file)
end
teardown { @file.close }
should "get the right filename" do
assert_equal "5k.png", @subject.original_filename
end
should "force binmode on tempfile" do
assert @subject.instance_variable_get("@tempfile").binmode?
end
should "get the content type" do
assert_equal "image/png", @subject.content_type
end
should "return content type as a string" do
assert_kind_of String, @subject.content_type
end
should "get the file's size" do
assert_equal 4456, @subject.size
end
should "return false for a call to nil?" do
assert ! @subject.nil?
end
should "generate a MD5 hash of the contents" do
expected = Digest::MD5.file(@file.path).to_s
assert_equal expected, @subject.fingerprint
end
should "read the contents of the file" do
expected = @file.read
assert expected.length > 0
assert_equal expected, @subject.read
end
context "file with multiple possible content type" do
setup do
MIME::Types.stubs(:type_for).returns([MIME::Type.new('image/x-png'), MIME::Type.new('image/png')])
end
should "prefer officially registered mime type" do
assert_equal "image/png", @subject.content_type
end
should "return content type as a string" do
assert_kind_of String, @subject.content_type
end
end
context "file with content type derived from file command on *nix" do
setup do
MIME::Types.stubs(:type_for).returns([])
Paperclip.stubs(:run).returns("application/vnd.ms-office\n")
end
should "return content type without newline character" do
assert_equal "application/vnd.ms-office", @subject.content_type
end
end
end
context "empty file" do
setup do
@file = Tempfile.new("file_adapter_test")
@subject = Paperclip.io_adapters.for(@file)
end
teardown { @file.close }
should "provide correct mime-type" do
assert_equal "application/x-empty", @subject.content_type
end
end
end
end
Jump to Line
Something went wrong with that request. Please try again.