Merge branch 'rails5-fix-utf' into 'master'

Use InvalidUTF8ErrorHandler only for rails 4

Closes #51908

See merge request gitlab-org/gitlab-ce!22340
This commit is contained in:
Sean McGivern 2018-10-16 08:35:08 +00:00
commit 59af98f133
2 changed files with 23 additions and 9 deletions

View File

@ -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!

View File

@ -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