From 10aef7a0a3fabcd6cf21bf833dfa77cb97e59338 Mon Sep 17 00:00:00 2001 From: Raphael Date: Wed, 18 Aug 2010 11:46:28 -0700 Subject: [PATCH] Begin rescue on publics controller to make the post for nonexistent user error more readable --- app/controllers/publics_controller.rb | 6 +++++- spec/models/album_spec.rb | 3 --- spec/models/user/receive_spec.rb | 12 ++++++++++++ 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/app/controllers/publics_controller.rb b/app/controllers/publics_controller.rb index 91edf995d..e7ab1ea1b 100644 --- a/app/controllers/publics_controller.rb +++ b/app/controllers/publics_controller.rb @@ -22,7 +22,11 @@ class PublicsController < ApplicationController end def receive - @user = Person.first(:id => params[:id]).owner + begin + @user = Person.first(:id => params[:id]).owner + rescue NoMethodError => e + Rails.logger.error("Received post #{params[:xml]} for nonexistent person #{params[:id}") + end Rails.logger.debug "PublicsController has received: #{params[:xml]}" @user.receive params[:xml] if params[:xml] render :nothing => true diff --git a/spec/models/album_spec.rb b/spec/models/album_spec.rb index f5038ec1c..e31dc5e4a 100644 --- a/spec/models/album_spec.rb +++ b/spec/models/album_spec.rb @@ -88,8 +88,5 @@ describe Album do it 'should have an id' do @xml.include?(@album.id.to_s).should be true end - end - - end diff --git a/spec/models/user/receive_spec.rb b/spec/models/user/receive_spec.rb index 4919e66f4..a657f41e8 100644 --- a/spec/models/user/receive_spec.rb +++ b/spec/models/user/receive_spec.rb @@ -25,6 +25,18 @@ describe User do Post.all(:person_id => person.id).first.message.should == 'store this!' StatusMessage.all.size.should == 1 end + + it 'should not create new groups on message receive' do + num_groups = @user.groups.size + + (0..5).each{ |n| + status_message = @user2.post :status_message, :message => "store this #{n}!" + xml = status_message.to_diaspora_xml + @user.receive( xml ) + } + + @user.groups.size.should == num_groups + end describe 'post refs' do before do