From 6be63b88f0c04c9e1c1092b7450e25d8df67960e Mon Sep 17 00:00:00 2001
From: zhitomirskiyi <ilya@joindiaspora.com>
Date: Tue, 8 Feb 2011 18:49:33 -0800
Subject: [PATCH] added the pending request to the finder

---
 app/views/services/_remote_friend.html.haml |  9 +++++++-
 spec/models/services/facebook_spec.rb       | 25 ++++++++++++++++-----
 2 files changed, 27 insertions(+), 7 deletions(-)

diff --git a/app/views/services/_remote_friend.html.haml b/app/views/services/_remote_friend.html.haml
index 183cd6886a..02705ce836 100644
--- a/app/views/services/_remote_friend.html.haml
+++ b/app/views/services/_remote_friend.html.haml
@@ -2,8 +2,15 @@
   .right
     -if friend[:contact] && !friend[:contact].pending
       = t('people.person.already_connected')
-    - elsif (friend[:contact] && friend[:contact].pending)
+    - elsif (friend[:contact] && friend[:contact].pending) || (friend[:request] && friend[:request].sender != friend[:person])
       = t('people.person.pending_request')
+    - elsif (friend[:request] && friend[:request].sender == friend[:person])
+      = link_to t('people.show.incoming_request', :name => truncate(person.name, :length => 20, :separator => ' ', :omission => '')),
+        {:controller => "people",
+        :action => "show",
+        :id => friend[:person].id,
+        :share_with => true},
+        :class => 'button'
     - elsif friend[:invitation_id]
       = t('invitations.new.already_invited')
       %br
diff --git a/spec/models/services/facebook_spec.rb b/spec/models/services/facebook_spec.rb
index 84cd5ad105..39a67a4eac 100644
--- a/spec/models/services/facebook_spec.rb
+++ b/spec/models/services/facebook_spec.rb
@@ -86,13 +86,26 @@ JSON
         @service.finder["#{@user2_fb_id}"][:person].should be_nil
       end
 
-      it 'contains a request object if one has been sent' do
-        request = Request.diaspora_initialize(:from => @user2.person, :to => @user.person, :into => @user2.aspects.first)
-        Postzord::Receiver.new(@user, :object => request, :person => @user2.person).receive_object
-        Request.count.should == 1
-        @service.finder["#{@user2_fb_id}"][:request].should == request
+      context "request" do
+        before do
+          @request = Request.diaspora_initialize(:from => @user2.person, :to => @user.person, :into => @user2.aspects.first)
+          Postzord::Receiver.new(@user, :object => @request, :person => @user2.person).receive_object
+          Request.count.should == 1
+        end
+        it 'contains a request object if one has been sent' do
+          @service.finder["#{@user2_fb_id}"][:request].should == @request
+        end
+
+        it 'caches the profile' do
+          @service.finder["#{@user2_fb_id}"][:request].sender.profile.loaded?.should be_true
+        end
+
+        it 'caches the sender' do
+          @service.finder["#{@user2_fb_id}"][:request].sender.loaded?.should be_true
+        end
+        
       end
-      
+
       it 'contains a contact object if connected' do
         connect_users(@user, @user.aspects.first, @user2, @user2.aspects.first)
         @service.finder["#{@user2_fb_id}"][:contact].should == @user.reload.contact_for(@user2.person)
-- 
GitLab