From 8cf72441b455aae4c8aecfe0bf32bc7acf7c5002 Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 11 Oct 2010 10:13:52 -0700 Subject: [PATCH] Make intended behavior on hcard action clearer, return 404 on nonexistent person --- app/controllers/publics_controller.rb | 4 +++- spec/controllers/publics_controller_spec.rb | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/controllers/publics_controller.rb b/app/controllers/publics_controller.rb index 0e99d32ed..c9c964623 100644 --- a/app/controllers/publics_controller.rb +++ b/app/controllers/publics_controller.rb @@ -12,6 +12,8 @@ class PublicsController < ApplicationController @person = Person.find_by_id params[:id] unless @person.nil? || @person.owner.nil? render 'hcard' + else + render :nothing => true, :status => 404 end end @@ -24,7 +26,7 @@ class PublicsController < ApplicationController unless @person.nil? || @person.owner.nil? render 'webfinger', :content_type => 'application/xrd+xml' else - render :nothing => true + render :nothing => true, :status => 404 end end diff --git a/spec/controllers/publics_controller_spec.rb b/spec/controllers/publics_controller_spec.rb index 19c95a705..a7d745985 100644 --- a/spec/controllers/publics_controller_spec.rb +++ b/spec/controllers/publics_controller_spec.rb @@ -34,6 +34,20 @@ describe PublicsController do end end + describe '#hcard' do + it 'queries by person id' do + post :hcard, :id => user.person.id + assigns[:person].should == user.person + response.code.should == '200' + end + + it 'does not query by user id' do + post :hcard, :id => user.id + assigns[:person].should be_nil + response.code.should == '404' + end + end + describe 'webfinger' do it 'should not try to webfinger out on a request to webfinger' do Redfinger.should_not_receive :finger