diff --git a/lib/devise/test/controller_helpers.rb b/lib/devise/test/controller_helpers.rb index a5447f09..3e461c34 100644 --- a/lib/devise/test/controller_helpers.rb +++ b/lib/devise/test/controller_helpers.rb @@ -139,6 +139,7 @@ module Devise status, headers, response = Devise.warden_config[:failure_app].call(env).to_a @controller.response.headers.merge!(headers) + @controller.response.content_type = headers["Content-Type"] unless Devise::Test.rails5? @controller.status = status @controller.response.body = response.body nil # causes process return @response diff --git a/test/test/controller_helpers_test.rb b/test/test/controller_helpers_test.rb index 5ca59f3c..857fa12b 100644 --- a/test/test/controller_helpers_test.rb +++ b/test/test/controller_helpers_test.rb @@ -100,6 +100,11 @@ class TestControllerHelpersTest < Devise::ControllerTestCase assert_equal response.body, "
You are being redirected." end + test "returns the content type of a failure app" do + get :index, params: { format: :xml } + assert response.content_type.include?('application/xml') + end + test "defined Warden after_authentication callback should not be called when sign_in is called" do begin Warden::Manager.after_authentication do |user, auth, opts|