Skip to content

Commit

Permalink
Test helper was incorrectly returning failure body
Browse files Browse the repository at this point in the history
The _process_unauthenticated method in test_helper was returning
the response as the body. When setting rendering the text, it was
calling to_s on the response which would render something like
this: #<ActionDispatch::Response:0x007fb9e1efea00>. This change
renders the body of the response instead of the response itself
  • Loading branch information
diminish7 committed Sep 28, 2012
1 parent 9e096a4 commit b274910
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 4 deletions.
4 changes: 2 additions & 2 deletions lib/devise/test_helpers.rb
Expand Up @@ -107,8 +107,8 @@ def _process_unauthenticated(env, options = {})
env["warden.options"] = options
Warden::Manager._run_callbacks(:before_failure, env, options)

status, headers, body = Devise.warden_config[:failure_app].call(env).to_a
@controller.send :render, :status => status, :text => body,
status, headers, response = Devise.warden_config[:failure_app].call(env).to_a
@controller.send :render, :status => status, :text => response.body,
:content_type => headers["Content-Type"], :location => headers["Location"]
nil # causes process return @response
end
Expand Down
9 changes: 7 additions & 2 deletions test/test_helpers_test.rb
Expand Up @@ -9,7 +9,7 @@ def redirect
self.status = 306
end
end

test "redirects if attempting to access a page unauthenticated" do
get :index
assert_redirected_to new_user_session_path
Expand Down Expand Up @@ -70,7 +70,7 @@ def redirect
get :index
assert_redirected_to new_user_session_path
end

test "respects custom failure app" do
begin
Devise.warden_config.failure_app = CustomFailureApp
Expand All @@ -81,6 +81,11 @@ def redirect
end
end

test "returns the body of a failure app" do
get :index
assert_equal response.body, "<html><body>You are being <a href=\"http://test.host/users/sign_in\">redirected</a>.</body></html>"
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|
Expand Down

0 comments on commit b274910

Please sign in to comment.