Add a couple specs, refactor in connecting
This commit is contained in:
parent
4ce2de55e2
commit
0daffb7fed
3 changed files with 40 additions and 15 deletions
|
|
@ -59,16 +59,7 @@ module Diaspora
|
|||
|
||||
#response from a contact request you sent
|
||||
if original_request = original_request(contact_request)
|
||||
destination_aspect = self.aspect_by_id(original_request.into_id)
|
||||
activate_contact(contact_request.from, destination_aspect)
|
||||
Rails.logger.info("#{self.real_name}'s contact request has been accepted")
|
||||
|
||||
contact_request.destroy
|
||||
|
||||
pending_requests.delete(original_request)
|
||||
original_request.destroy
|
||||
self.save
|
||||
Request.send_request_accepted(self, contact_request.from, destination_aspect)
|
||||
receive_request_acceptance(contact_request, original_request)
|
||||
|
||||
#this is a new contact request
|
||||
elsif !request_from_me?(contact_request)
|
||||
|
|
@ -83,6 +74,18 @@ module Diaspora
|
|||
contact_request
|
||||
end
|
||||
|
||||
def receive_request_acceptance(received_request, sent_request)
|
||||
destination_aspect = self.aspect_by_id(sent_request.into_id)
|
||||
activate_contact(received_request.from, destination_aspect)
|
||||
Rails.logger.info("#{self.real_name}'s contact request has been accepted")
|
||||
|
||||
received_request.destroy
|
||||
pending_requests.delete(sent_request)
|
||||
sent_request.destroy
|
||||
self.save
|
||||
Request.send_request_accepted(self, received_request.from, destination_aspect)
|
||||
end
|
||||
|
||||
def disconnect(bad_contact)
|
||||
Rails.logger.info("#{self.real_name} is disconnecting #{bad_contact.inspect}")
|
||||
retraction = Retraction.for(self)
|
||||
|
|
|
|||
|
|
@ -179,7 +179,6 @@ describe Aspect do
|
|||
it 'deletes a user from the aspect' do
|
||||
user.add_person_to_aspect(user2.person.id, aspect1.id)
|
||||
user.reload
|
||||
aspect1.reload.contacts.include?(contact).should be true
|
||||
user.delete_person_from_aspect(user2.person.id, aspect1.id)
|
||||
user.reload
|
||||
aspect1.reload.contacts.include?(contact).should be false
|
||||
|
|
@ -188,6 +187,15 @@ describe Aspect do
|
|||
it 'should check to make sure you have the aspect ' do
|
||||
proc{user.delete_person_from_aspect(user2.person.id, aspect2.id) }.should raise_error /Can not delete a person from an aspect you do not own/
|
||||
end
|
||||
|
||||
it 'deletes no posts' do
|
||||
user.add_person_to_aspect(user2.person.id, aspect1.id)
|
||||
user.reload
|
||||
user2.post(:status_message, :message => "Hey Dude", :to => aspect2.id)
|
||||
lambda{
|
||||
user.delete_person_from_aspect(user2.person.id, aspect1.id)
|
||||
}.should_not change(Post, :count)
|
||||
end
|
||||
end
|
||||
|
||||
context 'moving and removing posts' do
|
||||
|
|
|
|||
|
|
@ -36,13 +36,27 @@ describe Diaspora::UserModules::Connecting do
|
|||
user.receive_contact_request(r)
|
||||
user.reload.pending_requests.should include r
|
||||
end
|
||||
end
|
||||
|
||||
it 'should autoaccept a request the user sent' do
|
||||
request = user.send_contact_request_to(user2.person, aspect)
|
||||
user.contact_for(user2.person).should be_nil
|
||||
user.receive_request(request.reverse_for(user2), user2.person)
|
||||
describe '#receive_request_accepted' do
|
||||
before do
|
||||
@original_request = user.send_contact_request_to(user2.person, aspect)
|
||||
@acceptance = @original_request.reverse_for(user2)
|
||||
end
|
||||
it 'connects to the acceptor' do
|
||||
user.receive_request(@acceptance, user2.person)
|
||||
user.contact_for(user2.person).should_not be_nil
|
||||
end
|
||||
it 'deletes the original request' do
|
||||
user.receive_request(@acceptance, user2.person)
|
||||
user.pending_requests.include?(@original_request).should be_false
|
||||
Request.find(@original_request.id).should be_nil
|
||||
end
|
||||
it 'deletes the acceptance' do
|
||||
user.receive_request(@acceptance, user2.person)
|
||||
user.pending_requests.include?(@acceptance).should be_false
|
||||
Request.find(@acceptance.id).should be_nil
|
||||
end
|
||||
end
|
||||
|
||||
context 'requests that cross paths' do
|
||||
|
|
|
|||
Loading…
Reference in a new issue