Commit 1b41eda76883b1b908b656d464245e60c1f5af69
1 parent
9d33b5cb
Exists in
master
and in
28 other branches
ActionItem870: enhancing the feature
Showing
3 changed files
with
24 additions
and
2 deletions
Show diff stats
app/models/comment.rb
| ... | ... | @@ -27,6 +27,10 @@ class Comment < ActiveRecord::Base |
| 27 | 27 | end |
| 28 | 28 | end |
| 29 | 29 | |
| 30 | + def author_email | |
| 31 | + author ? author.email : email | |
| 32 | + end | |
| 33 | + | |
| 30 | 34 | def url |
| 31 | 35 | article.url.merge(:anchor => anchor) |
| 32 | 36 | end |
| ... | ... | @@ -57,8 +61,9 @@ class Comment < ActiveRecord::Base |
| 57 | 61 | recipients profile.email |
| 58 | 62 | from "#{profile.environment.name} <#{profile.environment.contact_email}>" |
| 59 | 63 | subject _("%s - New comment in '%s'") % [profile.environment.name, comment.article.title] |
| 60 | - body :name => (comment.author.nil? ? comment.name : comment.author.name), | |
| 61 | - :email => (comment.author.nil? ? comment.email : comment.author.email), | |
| 64 | + headers['Reply-To'] = comment.author_email | |
| 65 | + body :name => comment.author_name, | |
| 66 | + :email => comment.author_email, | |
| 62 | 67 | :title => comment.title, |
| 63 | 68 | :body => comment.body, |
| 64 | 69 | :article_url => comment.url, | ... | ... |
test/unit/comment_notifier_test.rb
| ... | ... | @@ -37,6 +37,14 @@ class CommentNotifierTest < Test::Unit::TestCase |
| 37 | 37 | assert_match /user_comment_test/, sent.body |
| 38 | 38 | end |
| 39 | 39 | |
| 40 | + should "add a Reply-To header set to the commenter e-mail" do | |
| 41 | + p = create_user('user_comment_test', :email => 'my@email.com').person | |
| 42 | + a = Article.create!(:name => 'Article test', :profile => p, :notify_comments => true) | |
| 43 | + a.comments << Comment.new(:author => p, :title => 'test comment', :body => 'you suck!') | |
| 44 | + sent = ActionMailer::Base.deliveries.first | |
| 45 | + assert_equal ['my@email.com'], sent.reply_to | |
| 46 | + end | |
| 47 | + | |
| 40 | 48 | should 'display unauthenticated author name and email in delivered mail' do |
| 41 | 49 | p = create_user('user_comment_test').person |
| 42 | 50 | a = Article.create!(:name => 'Article test', :profile => p, :notify_comments => true) | ... | ... |
test/unit/comment_test.rb
| ... | ... | @@ -78,6 +78,15 @@ class CommentTest < Test::Unit::TestCase |
| 78 | 78 | assert_equal 'anonymous coward', Comment.new(:name => 'anonymous coward').author_name |
| 79 | 79 | end |
| 80 | 80 | |
| 81 | + should "provide author e-mail for athenticated authors" do | |
| 82 | + owner = create_user('testuser').person | |
| 83 | + assert_equal owner.email, Comment.new(:author => owner).author_email | |
| 84 | + end | |
| 85 | + | |
| 86 | + should "provide author e-mail for unauthenticated author" do | |
| 87 | + assert_equal 'my@email.com', Comment.new(:email => 'my@email.com').author_email | |
| 88 | + end | |
| 89 | + | |
| 81 | 90 | should 'provide url to comment' do |
| 82 | 91 | art = Article.new |
| 83 | 92 | art.expects(:url).returns({ :controller => 'lala', :action => 'something' }) | ... | ... |