diff options
-rw-r--r-- | app/controllers/request_controller.rb | 11 | ||||
-rw-r--r-- | spec/integration/errors_spec.rb | 4 |
2 files changed, 11 insertions, 4 deletions
diff --git a/app/controllers/request_controller.rb b/app/controllers/request_controller.rb index fbd7d24d4..65ce9c88a 100644 --- a/app/controllers/request_controller.rb +++ b/app/controllers/request_controller.rb @@ -118,11 +118,14 @@ class RequestController < ApplicationController def details long_cache @info_request = InfoRequest.find_by_url_title(params[:url_title]) - if !@info_request.user_can_view?(authenticated_user) - render :template => 'request/hidden', :status => 410 # gone - return + if @info_request.nil? + raise ActiveRecord::RecordNotFound.new("Request not found") + else + if !@info_request.user_can_view?(authenticated_user) + render :template => 'request/hidden', :status => 410 # gone + return + end end - @columns = ['id', 'event_type', 'created_at', 'described_state', 'last_described_at', 'calculated_state' ] end diff --git a/spec/integration/errors_spec.rb b/spec/integration/errors_spec.rb index f8f9162c1..8084bb35a 100644 --- a/spec/integration/errors_spec.rb +++ b/spec/integration/errors_spec.rb @@ -49,5 +49,9 @@ describe "When rendering errors" do get("/request/5/response/4/attach/html/3/" ) response.code.should == "403" end + it "should render a 404 for non-existent 'details' pages for requests" do + get("/details/request/wobble" ) + response.code.should == "404" + end end |