From c6fe614e45a4ae40bb635c1259423ef9e776dd40 Mon Sep 17 00:00:00 2001 From: Jon Atack Date: Sun, 6 Dec 2015 15:14:27 +0100 Subject: Show redirect response code in assert_response messages Follow-up to PR #19977, which helpfully added the redirection path to the error message of assert_response if response is a redirection, but which removed the response code, obscuring the type of redirect. This PR: - brings back the response code in the error message, - updates the tests so the new messages can be tested, - and adds test cases for the change. --- .../lib/action_dispatch/testing/assertions/response.rb | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'actionpack/lib/action_dispatch/testing') diff --git a/actionpack/lib/action_dispatch/testing/assertions/response.rb b/actionpack/lib/action_dispatch/testing/assertions/response.rb index cc2a2fb119..c138660a21 100644 --- a/actionpack/lib/action_dispatch/testing/assertions/response.rb +++ b/actionpack/lib/action_dispatch/testing/assertions/response.rb @@ -85,17 +85,15 @@ module ActionDispatch end end - def generate_response_message(type) - message = "Expected response to be a <#{type}>, but was" - - if @response.redirection? - redirect_is = normalize_argument_to_redirection(@response.location) - message << " a redirect to <#{redirect_is}>" - else - message << " <#{@response.response_code}>" - end + def generate_response_message(type, code = @response.response_code) + "Expected response to be a <#{type}>, but was a <#{code}>" + .concat location_if_redirected + end - message + def location_if_redirected + return '' unless @response.redirection? && @response.location.present? + location = normalize_argument_to_redirection(@response.location) + " redirect to <#{location}>" end end end -- cgit v1.2.3