aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/mail_handler/backends/mail_backend.rb6
-rw-r--r--spec/lib/mail_handler/backends/mail_backend_spec.rb17
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