git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9043 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/1.4.0
def create_user_from_email | def create_user_from_email | ||||
addr = email.from_addrs.to_a.first | addr = email.from_addrs.to_a.first | ||||
if addr && !addr.spec.blank? | if addr && !addr.spec.blank? | ||||
user = self.class.new_user_from_attributes(addr.spec, addr.name) | |||||
user = self.class.new_user_from_attributes(addr.spec, TMail::Unquoter.unquote_and_convert_to(addr.name, 'utf-8')) | |||||
if user.save | if user.save | ||||
user | user | ||||
else | else |
From: =?utf-8?b?w4TDpCDDlsO2?= <foo@example.org> | |||||
Subject: foo | |||||
Content-Type: text/plain; charset=utf-8 | |||||
testing user creation with quoted From-header |
assert_equal 'foo+bar@example.net', user.mail | assert_equal 'foo+bar@example.net', user.mail | ||||
end | end | ||||
def test_new_user_with_utf8_encoded_fullname_should_be_decoded | |||||
assert_difference 'User.count' do | |||||
issue = submit_email( | |||||
'fullname_of_sender_as_utf8_encoded.eml', | |||||
:issue => {:project => 'ecookbook'}, | |||||
:unknown_user => 'create' | |||||
) | |||||
end | |||||
user = User.first(:order => 'id DESC') | |||||
assert_equal "foo@example.org", user.mail | |||||
assert_equal "Ää", user.firstname | |||||
assert_equal "Öö", user.lastname | |||||
end | |||||
private | private | ||||
def submit_email(filename, options={}) | def submit_email(filename, options={}) |