diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index bbeaeb7694e..eeabcc0c9bb 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -12,7 +12,9 @@ class ApplicationController < ActionController::Base include WorkhorseHelper include EnforcesTwoFactorAuthentication include WithPerformanceBar - include InvalidUTF8ErrorHandler + # this can be removed after switching to rails 5 + # https://gitlab.com/gitlab-org/gitlab-ce/issues/51908 + include InvalidUTF8ErrorHandler unless Gitlab.rails5? before_action :authenticate_sessionless_user! before_action :authenticate_user! diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb index a8556771edd..be3fc832008 100644 --- a/spec/controllers/application_controller_spec.rb +++ b/spec/controllers/application_controller_spec.rb @@ -685,22 +685,34 @@ describe ApplicationController do end context 'html' do - it 'renders 412' do - get :index, text: "hi \255" + subject { get :index, text: "hi \255" } - expect(response).to have_gitlab_http_status(412) - expect(response).to render_template :precondition_failed + it 'renders 412' do + if Gitlab.rails5? + expect { subject }.to raise_error(ActionController::BadRequest) + else + subject + + expect(response).to have_gitlab_http_status(412) + expect(response).to render_template :precondition_failed + end end end context 'js' do + subject { get :index, text: "hi \255", format: :js } + it 'renders 412' do - get :index, text: "hi \255", format: :js + if Gitlab.rails5? + expect { subject }.to raise_error(ActionController::BadRequest) + else + subject - json_response = JSON.parse(response.body) + json_response = JSON.parse(response.body) - expect(response).to have_gitlab_http_status(412) - expect(json_response['error']).to eq('Invalid UTF-8') + expect(response).to have_gitlab_http_status(412) + expect(json_response['error']).to eq('Invalid UTF-8') + end end end end