@@ -413,7 +413,7 class Attachment < ActiveRecord::Base | |||||
413 | def self.disk_filename(filename, directory=nil) |
|
413 | def self.disk_filename(filename, directory=nil) | |
414 | timestamp = DateTime.now.strftime("%y%m%d%H%M%S") |
|
414 | timestamp = DateTime.now.strftime("%y%m%d%H%M%S") | |
415 | ascii = '' |
|
415 | ascii = '' | |
416 | if filename =~ %r{^[a-zA-Z0-9_\.\-]*$} |
|
416 | if filename =~ %r{^[a-zA-Z0-9_\.\-]*$} && filename.length <= 50 | |
417 | ascii = filename |
|
417 | ascii = filename | |
418 | else |
|
418 | else | |
419 | ascii = Digest::MD5.hexdigest(filename) |
|
419 | ascii = Digest::MD5.hexdigest(filename) |
@@ -81,6 +81,19 class AttachmentTest < ActiveSupport::TestCase | |||||
81 | assert_nil a.content_type |
|
81 | assert_nil a.content_type | |
82 | end |
|
82 | end | |
83 |
|
83 | |||
|
84 | def test_shorted_filename_if_too_long | |||
|
85 | file = uploaded_test_file("testfile.txt", "text/plain") | |||
|
86 | file.instance_variable_set('@original_filename', "#{'a'*251}.txt") | |||
|
87 | assert 255, file.original_filename.length | |||
|
88 | ||||
|
89 | a = Attachment.new(:container => Issue.find(1), | |||
|
90 | :file => file, | |||
|
91 | :author => User.find(1)) | |||
|
92 | assert a.save | |||
|
93 | a.reload | |||
|
94 | assert_equal 12 + 1 + 32 + 4, a.disk_filename.length | |||
|
95 | end | |||
|
96 | ||||
84 | def test_copy_should_preserve_attributes |
|
97 | def test_copy_should_preserve_attributes | |
85 | a = Attachment.find(1) |
|
98 | a = Attachment.find(1) | |
86 | copy = a.copy |
|
99 | copy = a.copy |
General Comments 0
You need to be logged in to leave comments.
Login now