Respond with errors and appropriate content type on /issues API calls with invalid query params (#8883).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@6309 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
2ce3191639
commit
fdd5367eba
|
@ -96,8 +96,10 @@ class IssuesController < ApplicationController
|
|||
format.pdf { send_data(issues_to_pdf(@issues, @project, @query), :type => 'application/pdf', :filename => 'export.pdf') }
|
||||
end
|
||||
else
|
||||
# Send html if the query is not valid
|
||||
render(:template => 'issues/index.rhtml', :layout => !request.xhr?)
|
||||
respond_to do |format|
|
||||
format.any(:html, :atom, :csv, :pdf) { render(:template => 'issues/index.rhtml', :layout => !request.xhr?) }
|
||||
format.api { render_validation_errors(@query) }
|
||||
end
|
||||
end
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
render_404
|
||||
|
|
|
@ -101,6 +101,16 @@ class ApiTest::IssuesTest < ActionController::IntegrationTest
|
|||
}
|
||||
end
|
||||
end
|
||||
|
||||
context "with invalid query params" do
|
||||
should "return errors" do
|
||||
get '/issues.xml', {:f => ['start_date'], :op => {:start_date => '='}}
|
||||
|
||||
assert_response :unprocessable_entity
|
||||
assert_equal 'application/xml', @response.content_type
|
||||
assert_tag 'errors', :child => {:tag => 'error', :content => "Start date can't be blank"}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context "/index.json" do
|
||||
|
|
Loading…
Reference in New Issue