git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2085 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/0.8.0-RC1
@@ -72,7 +72,7 @@ class Attachment < ActiveRecord::Base | |||
File.open(diskfile, "wb") do |f| | |||
f.write(@temp_file.read) | |||
end | |||
self.digest = Digest::MD5.hexdigest(File.read(diskfile)) | |||
self.digest = self.class.digest(diskfile) | |||
end | |||
# Don't save the content type if it's longer than the authorized length | |||
if self.content_type && self.content_type.length > 255 | |||
@@ -133,4 +133,11 @@ private | |||
end | |||
df | |||
end | |||
# Returns the MD5 digest of the file at given path | |||
def self.digest(filename) | |||
File.open(filename, 'rb') do |f| | |||
Digest::MD5.hexdigest(f.read) | |||
end | |||
end | |||
end |
@@ -1 +1,2 @@ | |||
this is a text file for upload tests | |||
this is a text file for upload tests | |||
with multiple lines |
@@ -18,7 +18,8 @@ | |||
require File.dirname(__FILE__) + '/../test_helper' | |||
class AttachmentTest < Test::Unit::TestCase | |||
fixtures :issues, :users | |||
def setup | |||
end | |||
@@ -29,4 +30,8 @@ class AttachmentTest < Test::Unit::TestCase | |||
assert_equal 'f8139524ebb8f32e51976982cd20a85d', Attachment.disk_filename("test_accentué")[13..-1] | |||
assert_equal 'cbb5b0f30978ba03731d61f9f6d10011', Attachment.disk_filename("test_accentué.ça")[13..-1] | |||
end | |||
def test_digest | |||
assert_equal '1478adae0d4eb06d35897518540e25d6', Attachment.digest(Test::Unit::TestCase.fixture_path + "/files/testfile.txt") | |||
end | |||
end |