diff --git a/app/mailers/notifier.rb b/app/mailers/notifier.rb index d3f0dd683e29be595473ecd2c47911fa7959846f..b55e6f75ddb1bdfc8dd52d6857c97fa2a76ff7ef 100644 --- a/app/mailers/notifier.rb +++ b/app/mailers/notifier.rb @@ -1,4 +1,5 @@ class Notifier < ActionMailer::Base + helper :application default :from => AppConfig[:smtp_sender_address] @@ -45,6 +46,18 @@ class Notifier < ActionMailer::Base :subject => I18n.t('notifier.request_accepted.subject', :name => @sender.name), :host => AppConfig[:pod_uri].host) end + def comment_on_post(recipient_id, sender_id, comment) + @receiver = User.find_by_id(recipient_id) + @sender = Person.find_by_id(sender_id) + + log_mail(recipient_id, sender_id, 'comment_on_post') + + attachments.inline['diaspora_white_on_grey.png'] = ATTACHMENT + + mail(:to => "\"#{@receiver.name}\" <#{@receiver.email}>", + :subject => I18n.t('notifier.comment_on_post.subject', :name => @sender.name), :host => AppConfig[:pod_uri].host) + end + private def log_mail recipient_id, sender_id, type log_string = "event=mail mail_type=#{type} db_name=#{MongoMapper.database.name} recipient_id=#{recipient_id} sender_id=#{sender_id}" diff --git a/config/locales/diaspora/en.yml b/config/locales/diaspora/en.yml index b0391a768a6496dd283cb31275d84fbf10632d1f..a887a55933fc7ec0c7b61bc34c2cb8d50be3a40b 100644 --- a/config/locales/diaspora/en.yml +++ b/config/locales/diaspora/en.yml @@ -432,6 +432,10 @@ en: request_accepted: subject: "%{name} has accepted your contact request on Diaspora*" accepted: "has accepted your contact request!" + comment_on_post: + subject: "%{name} has commented on your post." + commented: "has commented on your post!" + sign_in: "Sign in to view it." home: show: share_what_you_want: "Share what you want, with whom you want." diff --git a/spec/mailers/notifier_spec.rb b/spec/mailers/notifier_spec.rb index e5c7cd1b05bee5ace2c4dfe5254f0909fd841db7..88e2edb6cdf2b278676ea897707da9ac05976743 100644 --- a/spec/mailers/notifier_spec.rb +++ b/spec/mailers/notifier_spec.rb @@ -4,6 +4,10 @@ require 'spec_helper' describe Notifier do let!(:user) {make_user} + let!(:user2) {make_user} + + let!(:aspect) {user.aspects.create(:name => "win")} + let!(:aspect2) {user2.aspects.create(:name => "win")} let!(:person) {Factory.create :person} before do @@ -76,4 +80,27 @@ describe Notifier do request_accepted_mail.body.encoded.include?(person.name).should be true end end + + describe "#comment_on_post" do + let!(:connect) { connect_users(user, aspect, user2, aspect2)} + let!(:sm) {user.post(:status_message, :message => "Sunny outside", :to => :all)} + let!(:comment) { user2.comment("Totally is", :on => sm )} + let!(:comment_mail) {Notifier.comment_on_post(user.id, person.id, comment)} + + it 'goes to the right person' do + comment_mail.to.should == [user.email] + end + + it 'has the receivers name in the body' do + comment_mail.body.encoded.include?(user.person.profile.first_name).should be true + end + + it 'has the name of person commenting' do + comment_mail.body.encoded.include?(person.name).should be true + end + + it 'has the post link in the body' do + comment_mail.body.encoded.should match "/#{object_path(@sm)}/" + end + end end diff --git a/spec/models/user/receive_spec.rb b/spec/models/user/receive_spec.rb index 33f74a1233777ad357bcebcc17875225f417860f..bbaa1f62fa4bf37966591b23b35fa443b707ffec 100644 --- a/spec/models/user/receive_spec.rb +++ b/spec/models/user/receive_spec.rb @@ -92,7 +92,7 @@ describe User do it 'removes posts upon disconnecting' do user.disconnect(user2.person) user.reload - user.raw_visible_posts.should_not include @status_message + user.raw_visibNotification.notify(self, oble_posts.should_not include @status_message end it 'deletes a post if the noone links to it' do