aboutsummaryrefslogtreecommitdiffstats
path: root/actionmailer
diff options
context:
space:
mode:
authorAkira Matsuda <ronnie@dio.jp>2013-07-26 04:00:56 +0900
committerArun Agrawal <arunagw@gmail.com>2013-09-10 18:10:48 +0200
commit0c93a48904bcededd6093138ed81f3c13ac5e63f (patch)
tree8431a556281de17eb4368e2e24cf453767d65a58 /actionmailer
parent05f88b7b0499781f87e9e79cbec4d01193db2352 (diff)
downloadrails-0c93a48904bcededd6093138ed81f3c13ac5e63f.tar.gz
rails-0c93a48904bcededd6093138ed81f3c13ac5e63f.tar.bz2
rails-0c93a48904bcededd6093138ed81f3c13ac5e63f.zip
Don't mutate the Base settings by merge!ing the given value
Diffstat (limited to 'actionmailer')
-rw-r--r--actionmailer/lib/action_mailer/delivery_methods.rb2
-rw-r--r--actionmailer/test/delivery_methods_test.rb3
2 files changed, 4 insertions, 1 deletions
diff --git a/actionmailer/lib/action_mailer/delivery_methods.rb b/actionmailer/lib/action_mailer/delivery_methods.rb
index 9a1a27c8ed..aedcd81e52 100644
--- a/actionmailer/lib/action_mailer/delivery_methods.rb
+++ b/actionmailer/lib/action_mailer/delivery_methods.rb
@@ -64,7 +64,7 @@ module ActionMailer
raise "Delivery method cannot be nil"
when Symbol
if klass = delivery_methods[method]
- mail.delivery_method(klass,(send(:"#{method}_settings") || {}).merge!(options || {}))
+ mail.delivery_method(klass, (send(:"#{method}_settings") || {}).merge(options || {}))
else
raise "Invalid delivery method #{method.inspect}"
end
diff --git a/actionmailer/test/delivery_methods_test.rb b/actionmailer/test/delivery_methods_test.rb
index 61a037ea18..20412c7bb2 100644
--- a/actionmailer/test/delivery_methods_test.rb
+++ b/actionmailer/test/delivery_methods_test.rb
@@ -152,6 +152,9 @@ class MailDeliveryTest < ActiveSupport::TestCase
assert_equal "overridden", delivery_method_instance.settings[:user_name]
assert_equal "somethingobtuse", delivery_method_instance.settings[:password]
assert_equal delivery_method_instance.settings.merge(overridden_options), delivery_method_instance.settings
+
+ # make sure that overriding delivery method options per mail instance doesn't affect the Base setting
+ assert_equal settings, ActionMailer::Base.smtp_settings
end
test "non registered delivery methods raises errors" do