diff --git a/lib/diaspora/user/receiving.rb b/lib/diaspora/user/receiving.rb index 1c6c4088c..586fcc904 100644 --- a/lib/diaspora/user/receiving.rb +++ b/lib/diaspora/user/receiving.rb @@ -27,6 +27,7 @@ module Diaspora e.on_person { |person| if person.class == Person + object.person = person sender_in_xml = sender(object, xml, person) if (salmon_author != sender_in_xml) raise "Malicious Post, #{salmon_author.real_name} with id #{salmon_author.id} is sending a #{object.class} as #{sender_in_xml.real_name} with id #{sender_in_xml.id} " @@ -71,7 +72,6 @@ module Diaspora sender = Diaspora::Parser.owner_id_from_xml xml else - object.person = webfingered_person if object.is_a?(Comment) sender = (owns?(object.post))? object.person : object.post.person else @@ -96,7 +96,7 @@ module Diaspora def receive_request request, person request.person = person - request.person.save + request.person.save! old_request = Request.find(request.id) Rails.logger.info("I got a reqest_id #{request.id} with old request #{old_request.inspect}") request.aspect_id = old_request.aspect_id if old_request diff --git a/spec/lib/diaspora/parser_spec.rb b/spec/lib/diaspora/parser_spec.rb index fc2a021fa..1c9d19e9f 100644 --- a/spec/lib/diaspora/parser_spec.rb +++ b/spec/lib/diaspora/parser_spec.rb @@ -44,21 +44,22 @@ describe Diaspora::Parser do end it "should create a new person upon getting a person request" do - webfinger_mock = EMWebfinger.new(person.diaspora_handle) - webfinger_mock.should_receive(:on_person) - - EMWebfinger.should_receive(:new).and_return(webfinger_mock) - - - request = Request.instantiate(:to =>"http://www.google.com/", :from => person) + new_person = Factory.build(:person) + puts new_person.persisted? + Person.should_receive(:by_account_identifier).and_return(new_person) + puts new_person.persisted? + request = Request.instantiate(:to =>"http://www.google.com/", :from => new_person) + puts new_person.persisted? xml = request.to_diaspora_xml - user3.delete - person.delete - Person.should_receive(:by_account_identifier).exactly(2).times.and_return(person) user - lambda { user.receive xml, person }.should change(Person, :count).by(1) + + puts Person.count + user.receive xml, new_person + + puts Person.count + #lambda { user.receive xml, new_person }.should change(Person, :count).by(1) end diff --git a/spec/lib/encryptor_spec.rb b/spec/lib/encryptor_spec.rb index e0c9f5ca9..eba23e6e5 100644 --- a/spec/lib/encryptor_spec.rb +++ b/spec/lib/encryptor_spec.rb @@ -10,38 +10,6 @@ describe 'user encryption' do @aspect = @user.aspects.create(:name => 'dudes') end - describe 'key exchange on friending' do - - it 'should receive and marshal a public key from a request' do - remote_user = Factory.build(:user) - remote_user.encryption_key.nil?.should== false - - deliverable = Object.new - deliverable.stub!(:deliver) - Notifier.stub!(:new_request).and_return(deliverable) - Person.should_receive(:by_account_identifier).and_return(remote_user.person) - remote_user.should_receive(:push_to_people).and_return(true) - #should move this to friend request, but i found it here - id = remote_user.person.id - original_key = remote_user.exported_key - - request = remote_user.send_friend_request_to( - @user.person, remote_user.aspects.create(:name => "temp")) - - xml = remote_user.salmon(request).xml_for(@user) - - remote_user.person.delete - remote_user.delete - - person_count = Person.all.count - @user.receive_salmon xml - - Person.all.count.should == person_count + 1 - new_person = Person.first(:id => id) - new_person.exported_key.should == original_key - end - end - describe 'encryption' do it 'should encrypt a string' do string = "Secretsauce" diff --git a/spec/misc_spec.rb b/spec/misc_spec.rb index e518a23a3..d4d9a20cd 100644 --- a/spec/misc_spec.rb +++ b/spec/misc_spec.rb @@ -37,6 +37,10 @@ describe 'making sure the spec runner works' do it 'does not save a built user' do Factory.build(:user).persisted?.should be_false end + + it 'does not save a built person' do + Factory.build(:person).persisted?.should be_false + end end end