diff options
author | Akira Matsuda <ronnie@dio.jp> | 2013-07-26 04:00:56 +0900 |
---|---|---|
committer | Akira Matsuda <ronnie@dio.jp> | 2013-07-26 04:04:51 +0900 |
commit | 64202abc3d15663776b29654e415c2708611e237 (patch) | |
tree | 50a1b00b7d1c6fdd8991ca19da8d7ca8d960f2fe /actionmailer | |
parent | fb97a7d87b296597892ca5282410d6e875bbc3b5 (diff) | |
download | rails-64202abc3d15663776b29654e415c2708611e237.tar.gz rails-64202abc3d15663776b29654e415c2708611e237.tar.bz2 rails-64202abc3d15663776b29654e415c2708611e237.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.rb | 2 | ||||
-rw-r--r-- | actionmailer/test/delivery_methods_test.rb | 3 |
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 |