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
|
#response from a contact request you sent
|
||||||
if original_request = original_request(contact_request)
|
if original_request = original_request(contact_request)
|
||||||
destination_aspect = self.aspect_by_id(original_request.into_id)
|
receive_request_acceptance(contact_request, original_request)
|
||||||
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)
|
|
||||||
|
|
||||||
#this is a new contact request
|
#this is a new contact request
|
||||||
elsif !request_from_me?(contact_request)
|
elsif !request_from_me?(contact_request)
|
||||||
|
|
@ -83,6 +74,18 @@ module Diaspora
|
||||||
contact_request
|
contact_request
|
||||||
end
|
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)
|
def disconnect(bad_contact)
|
||||||
Rails.logger.info("#{self.real_name} is disconnecting #{bad_contact.inspect}")
|
Rails.logger.info("#{self.real_name} is disconnecting #{bad_contact.inspect}")
|
||||||
retraction = Retraction.for(self)
|
retraction = Retraction.for(self)
|
||||||
|
|
|
||||||
|
|
@ -179,7 +179,6 @@ describe Aspect do
|
||||||
it 'deletes a user from the aspect' do
|
it 'deletes a user from the aspect' do
|
||||||
user.add_person_to_aspect(user2.person.id, aspect1.id)
|
user.add_person_to_aspect(user2.person.id, aspect1.id)
|
||||||
user.reload
|
user.reload
|
||||||
aspect1.reload.contacts.include?(contact).should be true
|
|
||||||
user.delete_person_from_aspect(user2.person.id, aspect1.id)
|
user.delete_person_from_aspect(user2.person.id, aspect1.id)
|
||||||
user.reload
|
user.reload
|
||||||
aspect1.reload.contacts.include?(contact).should be false
|
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
|
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/
|
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
|
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
|
end
|
||||||
|
|
||||||
context 'moving and removing posts' do
|
context 'moving and removing posts' do
|
||||||
|
|
|
||||||
|
|
@ -36,13 +36,27 @@ describe Diaspora::UserModules::Connecting do
|
||||||
user.receive_contact_request(r)
|
user.receive_contact_request(r)
|
||||||
user.reload.pending_requests.should include r
|
user.reload.pending_requests.should include r
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
it 'should autoaccept a request the user sent' do
|
describe '#receive_request_accepted' do
|
||||||
request = user.send_contact_request_to(user2.person, aspect)
|
before do
|
||||||
user.contact_for(user2.person).should be_nil
|
@original_request = user.send_contact_request_to(user2.person, aspect)
|
||||||
user.receive_request(request.reverse_for(user2), user2.person)
|
@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
|
user.contact_for(user2.person).should_not be_nil
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
context 'requests that cross paths' do
|
context 'requests that cross paths' do
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue