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,6 +27,10 @@ class Comment < ActiveRecord::Base | ||
27 | end | 27 | end |
28 | end | 28 | end |
29 | 29 | ||
30 | + def author_email | ||
31 | + author ? author.email : email | ||
32 | + end | ||
33 | + | ||
30 | def url | 34 | def url |
31 | article.url.merge(:anchor => anchor) | 35 | article.url.merge(:anchor => anchor) |
32 | end | 36 | end |
@@ -57,8 +61,9 @@ class Comment < ActiveRecord::Base | @@ -57,8 +61,9 @@ class Comment < ActiveRecord::Base | ||
57 | recipients profile.email | 61 | recipients profile.email |
58 | from "#{profile.environment.name} <#{profile.environment.contact_email}>" | 62 | from "#{profile.environment.name} <#{profile.environment.contact_email}>" |
59 | subject _("%s - New comment in '%s'") % [profile.environment.name, comment.article.title] | 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 | :title => comment.title, | 67 | :title => comment.title, |
63 | :body => comment.body, | 68 | :body => comment.body, |
64 | :article_url => comment.url, | 69 | :article_url => comment.url, |
test/unit/comment_notifier_test.rb
@@ -37,6 +37,14 @@ class CommentNotifierTest < Test::Unit::TestCase | @@ -37,6 +37,14 @@ class CommentNotifierTest < Test::Unit::TestCase | ||
37 | assert_match /user_comment_test/, sent.body | 37 | assert_match /user_comment_test/, sent.body |
38 | end | 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 | should 'display unauthenticated author name and email in delivered mail' do | 48 | should 'display unauthenticated author name and email in delivered mail' do |
41 | p = create_user('user_comment_test').person | 49 | p = create_user('user_comment_test').person |
42 | a = Article.create!(:name => 'Article test', :profile => p, :notify_comments => true) | 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,6 +78,15 @@ class CommentTest < Test::Unit::TestCase | ||
78 | assert_equal 'anonymous coward', Comment.new(:name => 'anonymous coward').author_name | 78 | assert_equal 'anonymous coward', Comment.new(:name => 'anonymous coward').author_name |
79 | end | 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 | should 'provide url to comment' do | 90 | should 'provide url to comment' do |
82 | art = Article.new | 91 | art = Article.new |
83 | art.expects(:url).returns({ :controller => 'lala', :action => 'something' }) | 92 | art.expects(:url).returns({ :controller => 'lala', :action => 'something' }) |