diff options
-rw-r--r-- | lib/mail_handler/backends/mail_backend.rb | 6 | ||||
-rw-r--r-- | spec/lib/mail_handler/backends/mail_backend_spec.rb | 17 |
2 files changed, 20 insertions, 3 deletions
diff --git a/lib/mail_handler/backends/mail_backend.rb b/lib/mail_handler/backends/mail_backend.rb index 9cd802ba9..974873b30 100644 --- a/lib/mail_handler/backends/mail_backend.rb +++ b/lib/mail_handler/backends/mail_backend.rb @@ -362,11 +362,11 @@ module MailHandler raise "invalid email " + email + " passed to address_from_name_and_email" end if name.nil? - return Mail::Address.new(email).to_s + return Mail::Address.new(email.dup).to_s end address = Mail::Address.new - address.display_name = name - address.address = email + address.display_name = name.dup + address.address = email.dup address.to_s end diff --git a/spec/lib/mail_handler/backends/mail_backend_spec.rb b/spec/lib/mail_handler/backends/mail_backend_spec.rb index 588033faf..eb1d4b167 100644 --- a/spec/lib/mail_handler/backends/mail_backend_spec.rb +++ b/spec/lib/mail_handler/backends/mail_backend_spec.rb @@ -142,4 +142,21 @@ DOC end + describe :address_from_name_and_email do + + it 'returns an address string' do + expected = 'Test User <test@example.com>' + address_from_name_and_email('Test User', 'test@example.com').should == expected + end + + it 'does not change the name passed to it' do + original = "brønn" + name = original.dup + address_from_name_and_email(name, 'test@example.com') + name.should == original + end + + end + + end |