aboutsummaryrefslogtreecommitdiffstats
path: root/actionmailer/test/message_delivery_test.rb
Commit message (Collapse)AuthorAgeFilesLines
* Use frozen string literal in actionmailer/Kir Shatrov2017-07-231-0/+2
|
* Revert "Merge pull request #29540 from kirs/rubocop-frozen-string"Matthew Draper2017-07-021-1/+0
| | | | | This reverts commit 3420a14590c0e6915d8b6c242887f74adb4120f9, reversing changes made to afb66a5a598ce4ac74ad84b125a5abf046dcf5aa.
* Enforce frozen string in RubocopKir Shatrov2017-07-011-0/+1
|
* Allow mailers to configure their delivery jobMatthew Mongeau2017-06-151-0/+13
| | | | | | | | | | | Setting delivery_job on a mailer class will cause MessageDelivery to use the specified job instead of ActionMailer::DeliveryJob: class MyMailer < ApplicationMailer self.delivery_job = MyCustomDeliveryJob ... end
* Use better duration aliases in testsAndrew White2017-03-151-2/+2
|
* Don't cast to float unnecessarilyAndrew White2017-03-151-2/+2
| | | | Adding durations to `Time` instances is perfectly okay.
* Deprecate implicit coercion of `ActiveSupport::Duration`Andrew White2017-03-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently `ActiveSupport::Duration` implicitly converts to a seconds value when used in a calculation except for the explicit examples of addition and subtraction where the duration is the receiver, e.g: >> 2 * 1.day => 172800 This results in lots of confusion especially when using durations with dates because adding/subtracting a value from a date treats integers as a day and not a second, e.g: >> Date.today => Wed, 01 Mar 2017 >> Date.today + 2 * 1.day => Mon, 10 Apr 2490 To fix this we're implementing `coerce` so that we can provide a deprecation warning with the intent of removing the implicit coercion in Rails 5.2, e.g: >> 2 * 1.day DEPRECATION WARNING: Implicit coercion of ActiveSupport::Duration to a Numeric is deprecated and will raise a TypeError in Rails 5.2. => 172800 In Rails 5.2 it will raise `TypeError`, e.g: >> 2 * 1.day TypeError: ActiveSupport::Duration can't be coerced into Integer This is the same behavior as with other types in Ruby, e.g: >> 2 * "foo" TypeError: String can't be coerced into Integer >> "foo" * 2 => "foofoo" As part of this deprecation add `*` and `/` methods to `AS::Duration` so that calculations that keep the duration as the receiver work correctly whether the final receiver is a `Date` or `Time`, e.g: >> Date.today => Wed, 01 Mar 2017 >> Date.today + 1.day * 2 => Fri, 03 Mar 2017 Fixes #27457.
* Add more rubocop rules about whitespacesRafael Mendonça França2016-10-291-1/+1
|
* applies new string literal convention in actionmailer/testXavier Noria2016-08-061-30/+30
| | | | | The current code base is not uniform. After some discussion, we have chosen to go with double quotes by default.
* Action Mailer: Declarative exception handling with `rescue_from`.Jeremy Daer2016-05-151-1/+50
| | | | | | | | | | | | | | | | | | | | | | | Follows the same pattern as controllers and jobs. Exceptions raised in delivery jobs (enqueued by `#deliver_later`) are also delegated to the mailer's rescue_from handlers, so you can handle the DeserializationError raised by delivery jobs: ```ruby class MyMailer < ApplicationMailer rescue_from ActiveJob::DeserializationError do … end ``` ActiveSupport::Rescuable polish: * Add the `rescue_with_handler` class method so exceptions may be handled at the class level without requiring an instance. * Rationalize `exception.cause` handling. If no handler matches the exception, fall back to the handler that matches its cause. * Handle exceptions raised elsewhere. Pass `object: …` to execute the `rescue_from` handler (e.g. a method call or a block to instance_exec) against a different object. Defaults to `self`.
* Disallow calling `#deliver_later` after local message modifications.Jeremy Daer2016-04-071-0/+8
| | | | | | | | | | | | | | | | | | | They would be lost when the delivery job is enqueued, otherwise. Prevents a common, hard-to-find bug like: ```ruby message = Notifier.welcome(user, foo) message.message_id = my_generated_message_id message.deliver_later ``` The message_id is silently lost here! *Only the mailer arguments are passed to the delivery job.* This raises an exception now. Make modifications to the message within the mailer method or use a custom Active Job to manage delivery instead of using #deliver_later.
* Removed duplicate requiring minitest/mock as it is already required in ↵Ronak Jangir2015-08-261-1/+0
| | | | method_call_assertions
* Revert "Merge pull request #20758 from ↵Kasper Timm Hansen2015-07-071-14/+6
| | | | | | | xijo/action_mailer_message_delivery_respects_i18n_locale" This reverts commit f2a8c23654d69dd8f294971487b5abf0e5d891c3, reversing changes made to 3046c9bbe154aa717a5147091be8b495ed8969c4.
* ActionMailer::MessageDelivery respects current I18n.localeJohannes Opper2015-07-051-6/+14
| | | | | | | | | | | | | | | | | | When #deliver_now is called all translations within the generated email will be looked up for the current I18n locale. I18n.locale = ‘de’ mail.deliver_now # Generates german email, correct In #enqueue_delivery the locale was not considered and the resulting job uses the default locale. I18n.locale = ‘de’ mail.deliver_later # Generate english email, incorrect In order to achieve a consistent behaviour the current locale is now always passed to `ActionMailer::DeliveryJob`.
* Merge pull request #18587 from ↵Rafael Mendonça França2015-06-031-0/+14
|\ | | | | | | | | | | chrismcg/allow_deliver_later_queue_name_to_be_configured Allow configuration of ActionMailer queue name
| * Allow configuration of ActionMailer queue nameChris McGrath2015-06-021-0/+14
| |
* | not needed require'sAnkit Gupta2015-05-101-1/+0
| | | | | | | | | | - as core_ext is not used and test pass locally - mail is already required in abstract_unit
* | Removed magic comments # encoding: utf-8 , since its default from ruby 2.0 ↵Vipul A M2015-02-031-1/+0
|/ | | | onwards.
* Remove deprecated ActionMailer deliver & deliver!claudiob2015-01-041-19/+0
| | | | | These methods were deprecated in Rails 4.2 (see f4ee1147) so they can be safely removed in Rails 5.0.
* Rename remaining :in / :at to :wait / :wait_untilCristian Bica2014-09-041-3/+5
|
* Active Job refactoringCristian Bica2014-09-031-12/+12
|
* Make test:isolated run without bundler for Action MailerRobin Dupret2014-08-291-3/+2
| | | | | | | | Action Mailer tests weren't able to run in isolation without the bundle exec prefix since we were requiring gems before requiring abstract_unit. We don't need the `gem` call thus and the require_relative since the test directory should be present in the load path when we run any test.
* Fix SyntaxErrorAkira Matsuda2014-08-211-1/+1
|
* Deprecated .deliver / .deliver! to .deliver_now / .deliver_now!Cristian Bica2014-08-201-5/+24
|
* Clear deliveries in order not to affect other testsAkira Matsuda2014-08-201-2/+4
|
* [ActionMailer] Rename ActionMailer::DelayedDeliveryJob to ↵Abdelkader Boudih2014-08-171-4/+4
| | | | ActionMailer::DeliveryJob
* [ActiveJob] Fix test syntaxAbdelkader Boudih2014-08-171-10/+10
|
* Refactor DeliverLater into MessageDeliveryAbdelkader Boudih2014-08-141-0/+82