Commit dc6be7cfe4acb2ba5483d0e868004b9527ed5a5e

Authored by Joenio Costa
Committed by Daniela Feitosa
1 parent 9731f6e8

Test if has emails to be notified before delivering mails

(ActionItem1811)
app/models/comment.rb
... ... @@ -68,7 +68,7 @@ class Comment < ActiveRecord::Base
68 68 end
69 69  
70 70 after_create do |comment|
71   - if comment.article.notify_comments?
  71 + if comment.article.notify_comments? && !comment.article.profile.notification_emails.empty?
72 72 Comment::Notifier.deliver_mail(comment)
73 73 end
74 74 end
... ... @@ -76,10 +76,7 @@ class Comment < ActiveRecord::Base
76 76 class Notifier < ActionMailer::Base
77 77 def mail(comment)
78 78 profile = comment.article.profile
79   - email = profile.notification_emails
80   - return unless email
81   - recipients email
82   -
  79 + recipients profile.notification_emails
83 80 from "#{profile.environment.name} <#{profile.environment.contact_email}>"
84 81 subject _("[%s] you got a new comment!") % [profile.environment.name]
85 82 body :recipient => profile.nickname || profile.name,
... ...
test/unit/comment_notifier_test.rb
... ... @@ -56,6 +56,15 @@ class CommentNotifierTest &lt; Test::Unit::TestCase
56 56 assert_match /comment body/, sent.body
57 57 end
58 58  
  59 + should 'not deliver mail if has no notification emails' do
  60 + community = fast_create(Community)
  61 + assert_equal [], community.notification_emails
  62 + article = fast_create(Article, :name => 'Article test', :profile_id => community.id, :notify_comments => true)
  63 + assert_no_difference ActionMailer::Base.deliveries, :size do
  64 + article.comments << Comment.new(:author => @profile, :title => 'test comment', :body => 'there is no addresses to send notification')
  65 + end
  66 + end
  67 +
59 68 private
60 69  
61 70 def read_fixture(action)
... ...