From 7254db5cbc0d88ecad76e9a550f56f91e6e598c6 Mon Sep 17 00:00:00 2001
From: zhitomirskiyi <ilya@joindiaspora.com>
Date: Wed, 5 Jan 2011 14:59:15 -0800
Subject: [PATCH] Revert "Revert "added comment on post mail method""

This reverts commit c9b3066599b7cd1dc7d8c2138778562dac96a009.
---
 app/mailers/notifier.rb          | 13 +++++++++++++
 config/locales/diaspora/en.yml   |  4 ++++
 spec/mailers/notifier_spec.rb    | 27 +++++++++++++++++++++++++++
 spec/models/user/receive_spec.rb |  2 +-
 4 files changed, 45 insertions(+), 1 deletion(-)

diff --git a/app/mailers/notifier.rb b/app/mailers/notifier.rb
index d3f0dd683e..b55e6f75dd 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 b0391a768a..a887a55933 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 e5c7cd1b05..88e2edb6cd 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 33f74a1233..bbaa1f62fa 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
-- 
GitLab